Upload
van-quan-luu
View
162
Download
0
Embed Size (px)
Citation preview
;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT
ORG 0000H
LB: MOV P0,#11111111B ;8 LED TAT
LB1: CALL DELAY100MS
CLR C ;XOA C DE DICH VAO
MOV A,P0
RRC A ;XOAY CHI DUNG CHO TG A
MOV P0,A
JC LB1 ;NHAY VE "LB1" NEU C = 1
;SANG HET - TAT DAN
LB2: SETB C ; SET C DE DICH VAO
MOV A,P0
RRC A ;XOAY CHI DUNG CHO TG A
MOV P0,A
CALL DELAY100MS
JNC LB2 ;NHAY VE "LB2" NEU C = 0
JMP LB
$INCLUDE(TV_DELAY.ASM)
END
;CHTR DK 1 LED 7 DOAN DEM TU 0 DEN 9
(H1) DEM EQU R4
(H2) ORG 0H
(H3)LB: MOV DPTR,#MA7DOAN
(H4) MOV DEM,#0
(H5)LB1: MOV A,DEM
(H6) MOVC A,@A+DPTR ;LẤY MÃ
(H7) MOV P0,A ;HIỂN THỊ
(H8) CALL DELAY1S
(H9) INC DEM
(H10) CJNE DEM,#10,LB1
(H11) JMP LB
(H13)MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
;CHTR DK 1 LED 7 DOAN DEM TU 9 DEN 0
DEM EQU R2
ORG 0000H
LB: MOV DPTR,#1000H
MOV DEM,#9
LB1: MOV A,DEM
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY1S
DEC DEM
CJNE DEM,#-1,LB1
JMP LB
ORG 1000H
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
;CHTR DK 2 LED 7 DOAN DEM TU 00 LEN 99
DEM EQU R2
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00H
LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#100,LB1
JMP LB
HEXTOBCD_GIAIMA:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = BCD_CHUC, (B)=BCD_DONVI
MOVC A,@A+DPTR ;LAY MA CHUC
MOV P2,A ;HIEN THI HANG CHUC
MOV A,B ;BCD DONVI => A
MOVC A,@A+DPTR ;LAY MA DONVI
MOV P0,A ;HIEN THI HANG DON VI
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
;CHTR DK 2 LED 7 DOAN DEM TU 00 LEN 99 ROI DEM XUONG 00
DEM EQU R2
ORG 0000H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00H
LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#100,LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
LB2: DEC DEM
CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
CJNE DEM,#-1,LB2
JMP LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HEXTOBCD_GIAIMA:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = BCD CHUC, (B)=BCD DONVI
MOVC A,@A+DPTR ;LAY MA CHUC
MOV P2,A ;HIEN THI HANG CHUC
MOV A,B ;BCD DONVI => A
MOVC A,@A+DPTR ;LAY MA DONVI
MOV P0,A ;HIEN THI HANG DON VI
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
CTDK LED 7 ÑOAÏN ÑEÁM THÔØI GIAN TÖØ 000 ÑEÁN 250 – DUØNG P0 – LED ÑÔN
VÒ, P1 – LED CHUÏC VAØ P2 – LED TRAÊM.
;CHTR DK 2 LED 7 DOAN DEM TU 000 LEN 250
DEM EQU R2
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00H
LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#251,LB1
JMP LB
HEXTOBCD_GIAIMA:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = KQ1, (B)=BCD_DONVI
MOV 20H,B ;LUU BCD_DVI VAO ON CO ÑC 20H
MOV B,#10
DIV AB ; (A) = BCD_TRAM, (B)=BCD_CHUC
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MOVC A,@A+DPTR ;LAY MA TRAM
MOV P2,A ;HIEN THI HANG TRAM
MOV A,B ;BCD_CHUC => A
MOVC A,@A+DPTR ;LAY MA CHUC
MOV P1,A ;HIEN THI HANG CHUC
MOV A,20H ;BCD_DVI => A
MOVC A,@A+DPTR ;LAY MA DVI
MOV P0,A ;HIEN THI HANG DVI
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
$INCLUDE(TV_DELAY.ASM)
END
CAÙC CHÖÔNG TRÌNH CON TOÅNG QUAÙT
CHUYEÅN SOÁ HEX 8 BIT SANG 3 SOÁ BCD LÖU VAØO 3 ON 20H, 21H, 22H:
HEXTOBCD: MOV A,HEX8BIT
MOV B,#10
DIV AB
MOV 20H,B ;LUU BCD_DVI
MOV B, #10
DIV AB
MOV 21H,B ;LUU BCD_CHUC
MOV 22H,A ;LUU BCD_TRAM
RET
GIAIMA: MOV DPTR,#MA7DOAN
MOV A,20H
MOVC A,@A+DPTR
MOV 30H,A ;LUU MA_DVI
MOV A,21H
MOVC A,@A+DPTR
MOV 31H,A ;LUU MA_CHUC
MOV A,22H
MOVC A,@A+DPTR
MOV 32H,A ; LUU MA_TRAM
RET
HIENTHI_TT: MOV P0,30H
MOV P1,31H
MOV P2,32H
RET
CTDK 2 LED 7 ÑOAÏN ÑEÁM THÔØI GIAN TÖØ 00 ÑEÁN 99 – DUØNG P0 KEÁT NOÁI
VÔÙI 2 IC GIAÛI MAÕ 74247
DEM EQU R2
ORG 0H
LB: MOV DEM,#00H
LB1: CALL HEXTOBCD_HTHI ;MOI THEM VAO
CALL DELAY100MS
INC DEM
CJNE DEM,#100,LB1
JMP LB
HEXTOBCD_HTHI:
MOV A,DEM
MOV B,#10
DIV AB ;(A) = BCD_CHUC, (B)=BCD_DONVI
SWAP A ;CHUYEN HANG CHUC LEN 4 BIT CAO
ORL A,B
MOV P0,A ;GOI RA 2 IC GIAI MA DE HIEN THI
RET
$INCLUDE(TV_DELAY.ASM)
END
CAÙCH VIEÁT TREÂN SÖÛ DUÏNG HEÁT 8LED – TA COÙ CAÙCH THÖÙ 2
;CHTR DK 8 LED 7 DOAN QUET SANG SO 0 DEN SO 7
ORG 0H
LB: MOV P0,#0C0H ;0
CLR P2.0 ;TRANSISTOR T0 DAN
CALL DELAYX
SETB P2.0 ;TRANSISTOR T0 TAT
MOV P0,#0F9H ;1
CLR P2.1 ;TRANSISTOR T1 DAN
CALL DELAYX
SETB P2.1 ;TRANSISTOR T1 TAT
…
JMP LB
DELAYX: CALL DELAY1MS
RET
$INCLUDE(TV_DELAY.ASM)
END
CT ÑEÁM GIAÂY TÖØ 00 ÑEÁN 59 – HIEÅN THÒ TREÂN 2 LED 7 ÑOAÏN QUEÙT
;CHTR DK DEM GIAY
GIAY EQU R1
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV GIAY,#00
LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD
CALL GIAIMA ;CHUYEN SO BCD SANG MA 7 DOAN
CALL DELAY_HTHI ;VUA DELAY VA VUA HIEN THI
INC GIAY ;01H,02
CJNE GIAY,#60,LB1
JMP LB
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HEXTOBCD: MOV A,GIAY
MOV B,#10 ;KHI BIEN DICH THANH 0000 1010B
DIV AB ;(A)=BCD CHUC, (B)=BCD DONVI
RET ;TRO LAI CH TR CHINH
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
GIAIMA: MOVC A,@A+DPTR ;GIAI MA HANG CHUC
MOV 31H,A ;CAT TAM MA 7 DOAN CUA CHUC VAO 31H
MOV A,B ;CHUYEN BCD DONVI SANG A
MOVC A,@A+DPTR ;GIAI MA HANG DON VI
MOV 30H,A
RET
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY_HTHI: MOV 78H,#200
DELHT: CALL HIENTHI
DJNZ 78H,DELHT
RET
HIENTHI: MOV P0,30H
CLR P2.0
CALL DELAY1MS
SETB P2.0
MOV P0,31H
CLR P2.1
CALL DELAY1MS
SETB P2.1
RET
$INCLUDE(TV_DELAY.ASM)
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
CT ÑEÁM TÖØ 00 ÑEÁN 99 – HIEÅN THÒ TREÂN 2 LED 7 ÑOAÏN QUEÙT
;CHTR DK DEM GIAY
DEM EQU R1
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV DEM,#00
LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD
CALL GIAIMA ;CHUYEN SO BCD SANG MA 7 DOAN
CALL DELAY_HTHI ;VUA DELAY VA VUA HIEN THI
INC DEM ;01H,02
CJNE DEM,#100,LB1
JMP LB
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HEXTOBCD: MOV A,DEM
MOV B,#10 ;KHI BIEN DICH THANH 0000 1010B
DIV AB ;(A)=BCD CHUC, (B)=BCD DONVI
RET ;TRO LAI CH TR CHINH
GIAIMA: MOVC A,@A+DPTR ;GIAI MA HANG CHUC
MOV 31H,A ;CAT TAM MA 7 DOAN CUA CHUC VAO 36H
MOV A,B ;CHUYEN BCD DONVI SANG A
MOVC A,@A+DPTR ;GIAI MA HANG DON VI
MOV 30H,A
RET
DELAY_HTHI: MOV 78H,#200
DELHT: CALL HIENTHI
DJNZ 78H,DELHT
RET
HIENTHI: MOV P0,30H
CLR P2.0
CALL DELAY1MS
SETB P2.0
MOV P0,31H
CLR P2.1
CALL DELAY1MS
SETB P2.1
RET
$INCLUDE(TV_DELAY.ASM)
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
DELAY204µS: MOV 70H,#100 ;2T
DJNZ 70H,$ ;2T × 100
RET ;2T
DELAY500µS: MOV 70H,#248 ;2T
DJNZ 70H,$ ;2T × 248
RET ;2T
DELAY1000µS: MOV 70H,#249 ;2T
XX: NOP ;1T× 249
NOP ;1T× 249
DJNZ 70H,XX ;2T × 249
RET ;2T
CT ÑEÁM PHUÙT GIAÂY – DUØNG PORT 0, 1
;CHTR DK DEM PHUT GIAY
PHUT EQU R2
GIAY EQU R1
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV PHUT,#00
LB2: MOV GIAY,#00
LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD
CALL GIAIMA
CALL DELAY_HTHI
INC GIAY
CJNE GIAY,#60,LB1
INC PHUT
CJNE PHUT,#60,LB2
JMP LB
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HEXTOBCD: MOV A,GIAY
MOV B,#10
DIV AB ;(A)=CHUC GIAY, (B)=DONVI GIAY
MOV 20H,B
MOV 21H,A
MOV A,PHUT
MOV B,#10
DIV AB ;(A)=CHUC PHUT, (B)=DONVI PHUT
MOV 23H,B
MOV 24H,A
RET
GIAIMA: MOV A,20H
MOVC A,@A+DPTR ;GIAI MA HANG DON VI GIAY
MOV 30H,A ;(30H) LUU MA7DOAN DVI GIAY
MOV A,21H
MOVC A,@A+DPTR ;CHUC GIAY
MOV 31H,A ;(31H) LUU MA7DOAN CHUC GIAY
MOV A,23H
MOVC A,@A+DPTR ;DON VI PHUT
MOV 33H,A ;(33H) LUU MA7DOAN DVI PHUT
MOV A,24H
MOVC A,@A+DPTR ;CHUC PHUT
MOV 34H,A ;(34H) LUU MA7DOAN CHUC PHUT
RET
DELAY_HTHI: MOV 78H,#100
DELHT: CALL HIENTHI
DJNZ 78H,DELHT
RET
HIENTHI: MOV P0,30H ;HTHI DV GIAY
CLR P2.0
CALL DELAY1MS
SETB P2.0
MOV P0,31H ;HTHI CHUC GIAY
CLR P2.1
CALL DELAY1MS
SETB P2.1
MOV P0,33H ;HTHI DV PHUT
CLR P2.3
CALL DELAY1MS
SETB P2.3
MOV P0,34H ;HTHI CHUC PHUT
CLR P2.4
CALL DELAY1MS
SETB P2.4
RET
$INCLUDE(TV_DELAY.ASM)
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
CT ÑEÁM GIÔØ PHUÙT GIAÂY – DUØNG PORT 0, 1
;CHTR DK DEM PHUT GIAY
GIO EQU R3
PHUT EQU R2
GIAY EQU R1
ORG 0H
MOV DPTR,#MA7DOAN
LB: MOV GIO,#10
LB3: MOV PHUT,#01
LB2: MOV GIAY,#00
LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD
CALL GIAIMA
CALL DELAY_HTHI
INC GIAY
CJNE GIAY,#60,LB1
INC PHUT
CJNE PHUT,#60,LB2
INC GIO
CJNE GIO,#24,LB3
JMP LB
HEXTOBCD: MOV A,GIAY
MOV B,#10
DIV AB ;(A)=CHUC GIAY, (B)=DONVI GIAY
MOV 20H,B
MOV 21H,A
MOV A,PHUT
MOV B,#10
DIV AB ;(A)=CHUC PHUT, (B)=DONVI PHUT
MOV 23H,B
MOV 24H,A
MOV A,GIO
MOV B,#10
DIV AB ;(A)=CHUC GIO, (B)=DONVI GIO
MOV 26H,B
MOV 27H,A
RET
GIAIMA: MOV A,20H
MOVC A,@A+DPTR ;GIAI MA HANG DON VI GIAY
MOV 30H,A ;(37H) LUU MA7DOAN DVI GIAY
MOV A,21H
MOVC A,@A+DPTR ;CHUC GIAY
MOV 31H,A ;(36H) LUU MA7DOAN CHUC GIAY
MOV A,23H
MOVC A,@A+DPTR ;DON VI PHUT
MOV 33H,A ;(35H) LUU MA7DOAN DVI PHUT
MOV A,24H
MOVC A,@A+DPTR ;CHUC PHUT
MOV 34H,A ;(34H) LUU MA7DOAN CHUC PHUT
MOV A,26H
MOVC A,@A+DPTR ;DON VI PHUT
MOV 36H,A ;(35H) LUU MA7DOAN DVI PHUT
MOV A,27H
MOVC A,@A+DPTR ;CHUC PHUT
MOV 37H,A ;(34H) LUU MA7DOAN CHUC PHUT
RET
DELAY_HTHI: MOV 78H,#100
DELHT: CALL HIENTHI
DJNZ 78H,DELHT
RET
HIENTHI: MOV P0,30H ;HTHI DV GIAY
CLR P2.0
CALL DELAY1MS
SETB P2.0
MOV P0,31H ;HTHI CHUC GIAY
CLR P2.1
CALL DELAY1MS
SETB P2.1
MOV P0,33H ;HTHI DV PHUT
CLR P2.3
CALL DELAY1MS
SETB P2.3
MOV P0,34H ;HTHI CHUC PHUT
CLR P2.4
CALL DELAY1MS
SETB P2.4
MOV P0,36H ;HTHI CHUC PHUT
CLR P2.6
CALL DELAY1MS
SETB P2.6
MOV P0,37H ;HTHI CHUC PHUT
CLR P2.7
CALL DELAY1MS
SETB P2.7
RET
$INCLUDE(TV_DELAY.ASM)
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
CTDK 8 LED SAÙNG TAÉT –P1 – DUØNG TIMER0 ÑEÅ DELAY 50000µS=50MS
;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 1 SANG TAT
ORG 0000H
MOV TMOD,#000000001B ;TIMER0 MOD1 DEM 16 BIT
LB1: MOV P1,#00H
CALL DELAY50MS
MOV P1,#0FFH
CALL DELAY50MS
JMP LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY50MS: MOV TH0,#3CH ;NAP GIA TRI BAT DAU LA 15536
MOV TL0,#0B0H ;3CB0H
SETB TR0 ;CHO TIMER0 DEM
JNB TF0,$
CLR TR0 ;NGUNG TIMER
CLR TF0 ;XOA CO TRAN DE BAO LAN SAU
RET
END
CTDK 8 LED SAÙNG TAÉT – DUØNG P1 –TIMER0 ÑEÅ DELAY 1S
;CHUONG TRINH DIEU KHIEN 8 LED CUA PORT 0 SANG TAT
ORG 0H
MOV TMOD,#00000001B ;TIMER0 MOD1 DEM 16 BIT
LB1: MOV P1,#00H
CALL DELAY1S
MOV P1,#0FFH
CALL DELAY1S
JMP LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY1S: MOV R7,#20
DEL1S: CALL DELAY50MS ;50MS×20=1S
DJNZ R7,DEL1S
RET
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY50MS: MOV TH0,#3CH
MOV TL0,#0B0H ;3CB0H
SETB TR0 ;CHO TIMER0 DEM
JNB TF0,$
CLR TR0 ;NGUNG TIMER
CLR TF0 ;XOA CO TRAN DE BAO LAN SAU
RET
DELAY20S: MOV R6,#20
DEL20S: CALL DELAY1S
DJNZ R6,DEL20S
RET
;CT DEM XUNG NGOAI - DUNG COUNTER0 - HIEN THI KET QUA RA LED DON
ORG 0
MOV TMOD,#00000101B ;COUNTER0 C/T=1
SETB TR0 ;CHO TIMER0/COUNTER0 DEM
LB: MOV P1,TL0 ;LAY KQ DEM GOI RA HIEN THI
JMP LB
END
;CT DEM XUNG NGOAI - DUNG COUNTER0 - HIEN THI KET QUA 16 BIT RA LED DON
ORG 0
MOV TMOD,#00000101B ;COUNTER0 C/T=1
SETB TR0 ;CHO TIMER0/COUNTER0 DEM
MOV TL0,#240
LB: MOV P0,TL0 ;LAY KQ DEM GOI RA HIEN THI
MOV P1,TH0
JMP LB
END
CT ĐẾM XUNG NGOẠI HIỂN THỊ SỐ THẬP PHÂN TRÊN 3 LED 7 ĐOẠN KẾT
NỐI TRỰC TIẾP VỚI 3 PORT 0, 1, 2 –DÙNG COUNTER0 – KẾT QUẢ ĐẾM TỪ 0 ĐẾN 255
;CHTR DEM XUNG NGOAI HIEN THI TREN LED 7 DOAN
ORG 0H
MOV DPTR,#MA7DOAN
MOV TMOD,#00000101B ;COUNTER 0, MOD 1
SETB TR0 ;CHO TIMER DEM
LB: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD
CALL GIAIMA_HTHI
JMP LB
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CHUYỂN KẾT QUẢ ĐẾM TRONG THANH GHI TL0 SANG SỐ BCD
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HEXTOBCD: MOV A,TL0
MOV B,#10
DIV AB ;CHIA LAN 1
MOV 20H,B ;LUU BCD_DVI VAO ON 20H
MOV B,#10
DIV AB ;CHIA LAN 2
MOV 21H,B ;LUU BCD_CHUC VAO ON 21H
MOV 22H,A ;LUU BCD_TRAM VAO ON 22H
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;GIAI MA HIỂN THỊ: CHUYỂN SỐ BCD SANG MÃ 7 ĐOẠN
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GIAIMA_HTHI: MOV A,20H
MOVC A,@A+DPTR ;GIAI MA DVI
MOV P0,A
MOV A,21H
MOVC A,@A+DPTR ;GIAI MA CHUC
MOV P1,A
MOV A,22H
MOVC A,@A+DPTR ;GIAI MA TRAM
MOV P2,A
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END
;CHTR DEM XUNG NGOAI HIEN THI TREN LED 7 DOAN
ORG 0H
MOV DPTR,#MA7DOAN
MOV TMOD,# 01010000B ;COUNTER 1, MOD 1
SETB TR1 ;CHO TIMER DEM
LB: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD
CALL GIAIMA
CALL HIENTHI
JMP LB
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HEXTOBCD:
MOV A,TL1
MOV B,#10
DIV AB
MOV 20H,B ;LUU TAM VAO O NHO 27H
MOV B,#10
DIV AB
MOV 21H,B
MOV 22H,A
RET
ĐÈN GIAO THÔNG XANH 1, VÀNG 1, ĐỎ 1, XANH 2, VÀNG 2, ĐỎ 2
XANH SÁNG 10 S, VÀNG SÁNG 5S VÀ ĐỎ SÁNG 15 GIÂY.
;CHUONG TRINH DIEU KHIEN DEN GIAO THONG XANH VANG DO DUNG P1
X1D2 EQU 10000100B ;=84H
V1D2 EQU 01000100B
D1X2 EQU 00100001B
D1V2 EQU 00100010B
ORG 0H
MOV TMOD,#000000001B ;TIMER0 MOD1 DEM 16 BIT
LB1: MOV P1,# X1D2
CALL DELAY10S
MOV P1,# V1D2
CALL DELAY5S
MOV P1,# D1X2
CALL DELAY10S
MOV P1,# D1V2
CALL DELAY5S
JMP LB1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY10S:CALL DELAY5S
CALL DELAY5S
RET
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY12S:MOV R6,#12
DEL12S: CALL DELAY1S
DJNZ R6,DEL12S
RET
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY5S: MOV R6,#5
DEL5S: CALL DELAY1S
DJNZ R6,DEL5S
RET
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DELAY1S: MOV R7,#20
DEL1S: MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R7,DEL1S
RET
END
CTR DK ĐÈN GIAO THÔNG XANH 1, VÀNG 1, ĐỎ 1, XANH 2, VÀNG 2, ĐỎ 2
XANH SÁNG 10 S, VÀNG SÁNG 5S VÀ ĐỎ SÁNG 15 GIÂY. HIỂN THỊ ĐƯỢC THỜI GIAN
BẰNG 4 LED 7 ĐOẠN
;CT DIEU KHIEN DEN GIAO THONG - DUNG DINH THOI TIMER0
;CO HIEN THI THOI GIAN
X1D2 EQU 84H ;1000 0100B
V1D2 EQU 44H ;0100 0100B
D1X2 EQU 21H ;0010 0001B
D1V2 EQU 22H ;0010 0010B
TG1 EQU R2
TG2 EQU R3
TGX EQU 20 ;THONG SO THOI GIAN XANH
TGV EQU 5 ;THONG SO THOI GIAN VANG
ORG 0
MOV DPTR,#MA7DOAN
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LB: MOV P1,# X1D2
MOV TG1,#TGX ;TG X1=20
MOV TG2,#(TGX+TGV+1) ;TG D2=25
LB1: CALL HEXGM_HTHI
CJNE TG1,#-1,LB1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MOV P1,#V1D2
MOV TG1,#TGV
; MOV TG2,#TGV
LB2: CALL HEXGM_HTHI
CJNE TG1,#-1,LB2
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MOV P1,#D1X2
MOV TG1,#(TGX+TGV+1)
MOV TG2,#TGX
LB3: CALL HEXGM_HTHI
CJNE TG2,#-1,LB3
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MOV P1,#D1V2
; MOV TG1,#TGV
MOV TG2,#TGV
LB4: CALL HEXGM_HTHI
CJNE TG2,#-1,LB4
JMP LB
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HEXGM_HTHI: CALL HEXTOBCD
CALL GIAIMA
CALL DELAY_HIENTHI
DEC TG1 ;DECREMENT - GIAM
DEC TG2
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HEXTOBCD: MOV A,TG1
MOV B,#10
DIV AB
MOV 20H,B
MOV 21H,A
MOV A,TG2
MOV B,#10
DIV AB
MOV 26H,B
MOV 27H,A
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON GIAI MA SO BCD SANG MA 7 DOAN TUONG UNG
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GIAIMA: MOV A,20H
MOVC A,@A+DPTR
MOV 30H,A
MOV A,21H
MOVC A,@A+DPTR
MOV 31H,A
MOV A,26H
MOVC A,@A+DPTR
MOV 36H,A
MOV A,27H
MOVC A,@A+DPTR
MOV 37H,A
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON DELAY CO KEM HIEN THI
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DELAY_HIENTHI: MOV 6FH,#01
DEL2: MOV 6EH,#0FFH
DEL1: CALL HIENTHI
DJNZ 6EH,DEL1
DJNZ 6FH,DEL2
RET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;CT CON HIEN THI
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
HIENTHI: MOV P0,30H
CLR P2.0 ;T0 ON
CALL DELAY1MS
SETB P2.0 ;T0 OFF
MOV P0,31H
CLR P2.1 ;T1 ON
CALL DELAY1MS
SETB P2.1 ;T1 OFF
MOV P0,35H
CLR P2.6 ;T6 ON
CALL DELAY1MS
SETB P2.6 ;T6 OFF
MOV P0,34H
CLR P2.7 ;T7 ON
CALL DELAY1MS
SETB P2.7 ;T7 OFF
RET
MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
$INCLUDE(TV_DELAY.ASM)
END
MOÄT HEÄ THOÁNG DUØNG VĐK COÙ 2 PORT ÑIEÀU KHIEÅN 16 LED ĐƠN
1. P0 ÑIEÀU KHIEÅN 8 LED SAÙNG TAÉT DAÀN VÔÙI TGIAN TREÅ LAØ 50MS (TIMER0)
2. P1 COÙ 1 ÑIEÅM SAÙNG DI CHUYEÅN VÔÙI TGIAN TREÅ LAØ 1S (TIMER1)
;CHUONG TRINH DIEU KHIEN
BDN EQU R2
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ORG 0000H ;DC CUA CHÖÔNG TRÌNH CHÍNH
JMP MAIN
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ORG 001BH ;DC CUA CT NGAT TIMER1
MOV TH1,#HIGH(-50000)
MOV TL1,#LOW(-50000)
INC BDN
CJNE BDN,#20,INT0EXIT
MOV BDN,#0
MOV A,P1
RL A
MOV P1,A
INT0EXIT: RETI ;RETURN FROM INTERRUPT
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MAIN: MOV IE,#10001000B ;CHO PHEP NGAT EA=1, ET1=1
MOV TMOD,#00010001B ;
SETB TR1 ;CHO TIMER1 DEM
MOV P1,#00000001B
MOV P3,#00H
MOV BDN,#0
MAIN1: CALL DELAY50MS
SETB C
MOV A,P3
RLC A
MOV P3,A
JNC MAIN1
MAIN2: CALL DELAY50MS
CLR C
MOV A,P3
RLC A
MOV P3,A
JC MAIN2
JMP MAIN1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DELAY50MS:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END
;chtr dieu khien step motor quay lien tuc theo 1 chieu, thoi gian delay dai thi dong co quay cham
;thoi gain nho thi dong co quay nhanh, thoi gian qua nho thi dong co khong dap ung duoc se dung yen
;dung 1 port de dieu khien motor qua ic giao tiep 2803 - dung 4 bit thap hoac 4 bit cao
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
outstep equ p1
org 0000h
main: mov outstep,#10001000b
lcall delay
mov outstep,#01000100b
lcall delay
mov outstep,#00100010b
lcall delay
mov outstep,#00010001b
lcall delay
sjmp main
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;chuong trinh con delay
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
delay: mov r6,#0
del: mov r7,#0
djnz r7,$
djnz r6,del
ret
end
;chtr dieu khien step motor quay 1 vong roi ngung luon
;dung 1 port de dieu khien motor qua ic giao tiep 2803
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
outstep equ p1
sobuoc equ 50 ;loai dco: 50x4=200 buoc
org 0000h
mov dptr,#datastep ;nap dia chi quan ly ma
mov r0,#0
mov r2,#sobuoc ;50 chu ky la vong
main2: mov r1,#4 ;1 chu ky 8 buoc
main1: mov a,r0
movc a,@a+dptr
mov outstep,a
lcall delay
inc r0
anl 00h,#03h ;anl r0 voi 00000011b
djnz r1,main1
djnz r2,main2
sjmp $ ;dung lai
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;chtr con delay
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
delay: mov r6,#10h
del: mov r7,#0
djnz r7,$
djnz r6,del
ret
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;khai du lieu dieu khien dong co buoc
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
datastep: db 10001000b
db 01000100b
db 00100010b
db 00010001b
end