em tìm được trên mạng một mạch đếm từ 000-255 sử dụng 8051,dùng ngắt ngoài, nhưng mạch nó lại dùng con led 7 thanh gồm có 4 con led ấy ạ, e muốn vẽ lại mạch dùng 3 con led 7 đoạn thôi...em vẽ như hình sau các bác xem giúp em có sai ko ạ, e add code vào ko chạy các bác ạ,
Đây là code của nó ạ:
ORG 000H
MOV TMOD,#05H
MOV TH0,#0
MOV TL0,#0
CLR TF0
SETB TR0
MAIN:
CALL HEX_BCD
CALL BCD_7DOAN
CALL HIENTHI
JMP MAIN
HEX_BCD:
MOV A,TL0
MOV B,#10
DIV AB
MOV 10H,B
MOV B,#10
DIV AB
MOV 11H,B
MOV 12H,A
RET
BCD_7DOAN:
MOV DPTR,#MA7DOAN
MOV R0,#10H
MOV R1,#20H
GM: MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
CJNE R0,#13H,GM
RET
HIENTHI:
MOV R0,#20H
MOV A,#08H
HT: MOV P0,@R0
MOV P2,A
CALL DELAY
MOV P2,#00H
INC R0
RR A
CJNE A,#01H,HT
RET
DELAY:
MOV R7,#0FFH
DJNZ R7,$
RET
MA7DOAN:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Đây là code của nó ạ:
ORG 000H
MOV TMOD,#05H
MOV TH0,#0
MOV TL0,#0
CLR TF0
SETB TR0
MAIN:
CALL HEX_BCD
CALL BCD_7DOAN
CALL HIENTHI
JMP MAIN
HEX_BCD:
MOV A,TL0
MOV B,#10
DIV AB
MOV 10H,B
MOV B,#10
DIV AB
MOV 11H,B
MOV 12H,A
RET
BCD_7DOAN:
MOV DPTR,#MA7DOAN
MOV R0,#10H
MOV R1,#20H
GM: MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
CJNE R0,#13H,GM
RET
HIENTHI:
MOV R0,#20H
MOV A,#08H
HT: MOV P0,@R0
MOV P2,A
CALL DELAY
MOV P2,#00H
INC R0
RR A
CJNE A,#01H,HT
RET
DELAY:
MOV R7,#0FFH
DJNZ R7,$
RET
MA7DOAN:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Comment