Mạch Vi điều khiển sử dung atmel 89C52 kết hợp 3 nút bấm cùng với 3 TZT nối vào 3 chân VĐK.điều khiển 3 led sáng tắt hiển thị số nút đã bấm ra led 7 đoạn,đếm thời gian 1 phút cho 1 nút bấm để chuyển sang nút kế tiếp.Yêu cầu khởi động 3 led đều tắt,nhấn nút 1 chân TranZiTor 1 được set bit lên 1 và đèn 1 sáng,hiển thị số 1 ra led 7 đoạn,đếm 60s...bấm nút 2 đèn 1 tắt đèn 2 sáng hiển thị số 2,đếm 60s,nhấn nút 3 đèn 3 sáng hiển thị số 3 đếm 60s..kết thúc..
SƠ ĐỒ NGUYÊN LÝ:
CODE CHƯƠNG TRÌNH ASM:
SƠ ĐỒ NGUYÊN LÝ:
SƠ ĐỒ MẠCH MÔ PHỎNG TRÊN PROTUES
CODE CHƯƠNG TRÌNH ASM:
ORG 00H;BAN QUYEN CHIPKOOL
MAIN:
CLR P1.0
CLR P1.1
CLR P1.2
KEY0:
JNB P1.5,KEY0OK
SJMP KEY1
KEY0OK:
CALL CT1
KEY1:
JNB P1.6,KEY1OK
SJMP KEY2
KEY1OK:
CALL CT2
KEY2:
JNB P1.7,KEY2OK
SJMP KEY0
KEY2OK:
CALL CT3
JMP MAIN
CT1:
SETB P1.0
CLR P1.1
CLR P1.2
MOV P3,#11111001B
CALL DELAYLED
MOV R0,#0
LAP:CALL HIENTHI7SEG
INC R0
CJNE R0,#60,LAP
CLR P1.0
MOV P3,#0FFH
RET
CT2:
CLR P1.0
SETB P1.1
CLR P1.2
MOV P3,#10100100B
CALL DELAYLED
MOV R0,#0
LAPD:CALL HIENTHI7SEG
INC R0
CJNE R0,#60,LAPD
CLR P1.1
MOV P3,#0FFH
RET
CT3:
CLR P1.0
CLR P1.1
SETB P1.2
MOV P3,#10110000B
CALL DELAYLED
MOV R0,#0
LAP2:CALL HIENTHI7SEG
INC R0
CJNE R0,#60,LAP2
CLR P1.2
MOV P3,#0FFH
RET
HIENTHI7SEG:
MOV R7,#20
QUET:MOV P2,#00H
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY60
SETB P1.3
CALL DELAY60
CLR P1.3
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
SETB P1.4
CALL DELAY60
CLR P1.4
CALL DELAY60
RET
DJNZ R7,QUET
MALED:DB 11000000B,11111001B,10100100B,10110000B,10011001B,10010010B,10000010B,11111000B,10000000B,10010000B
RET
DELAYLED:
MOV R5,#200
LAPXI:
MOV R6,#100
LAPYI:
NOP
DJNZ R6,LAPYI
DJNZ R5,LAPXI
RET
DELAY60:
MOV R3,#100
LAPBB:
MOV R2,#50
LAPAA:
NOP
NOP
NOP
DJNZ R2,LAPAA
DJNZ R3,LAPBB
RET
END
MAIN:
CLR P1.0
CLR P1.1
CLR P1.2
KEY0:
JNB P1.5,KEY0OK
SJMP KEY1
KEY0OK:
CALL CT1
KEY1:
JNB P1.6,KEY1OK
SJMP KEY2
KEY1OK:
CALL CT2
KEY2:
JNB P1.7,KEY2OK
SJMP KEY0
KEY2OK:
CALL CT3
JMP MAIN
CT1:
SETB P1.0
CLR P1.1
CLR P1.2
MOV P3,#11111001B
CALL DELAYLED
MOV R0,#0
LAP:CALL HIENTHI7SEG
INC R0
CJNE R0,#60,LAP
CLR P1.0
MOV P3,#0FFH
RET
CT2:
CLR P1.0
SETB P1.1
CLR P1.2
MOV P3,#10100100B
CALL DELAYLED
MOV R0,#0
LAPD:CALL HIENTHI7SEG
INC R0
CJNE R0,#60,LAPD
CLR P1.1
MOV P3,#0FFH
RET
CT3:
CLR P1.0
CLR P1.1
SETB P1.2
MOV P3,#10110000B
CALL DELAYLED
MOV R0,#0
LAP2:CALL HIENTHI7SEG
INC R0
CJNE R0,#60,LAP2
CLR P1.2
MOV P3,#0FFH
RET
HIENTHI7SEG:
MOV R7,#20
QUET:MOV P2,#00H
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY60
SETB P1.3
CALL DELAY60
CLR P1.3
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
SETB P1.4
CALL DELAY60
CLR P1.4
CALL DELAY60
RET
DJNZ R7,QUET
MALED:DB 11000000B,11111001B,10100100B,10110000B,10011001B,10010010B,10000010B,11111000B,10000000B,10010000B
RET
DELAYLED:
MOV R5,#200
LAPXI:
MOV R6,#100
LAPYI:
NOP
DJNZ R6,LAPYI
DJNZ R5,LAPXI
RET
DELAY60:
MOV R3,#100
LAPBB:
MOV R2,#50
LAPAA:
NOP
NOP
NOP
DJNZ R2,LAPAA
DJNZ R3,LAPBB
RET
END
Đăng nhận xét