Đây là code mình viết. Đề bài là: có 2 nút nhấn UP, DOWN. Khi nhấn UP thì cộng thêm 2 đơn vị. Nhấn DOWN thì trừ 2 đơn vị. Số lớn nhất hiên thị là 9, nhỏ nhất là 1. Ban đầu hiển thị số 1. hiển thị led 7 đoạn. các pro chỉ mình với. sao mình nhấn nút thì led không sáng gì hết. Thanks các pro nhiều nha!
Lần đầu tiên post bài, có gì mong các bạn thông cảm!!! Viết bằng assembly 89c51
org 0000h
DEM EQU R0
mov DPTR,#CODE7DOAN
MOV DEM,#0F9H
MOV P2,DEM
SW1 BIT P1.0
SW2 BIT P1.1
DEMLEN:
JB SW1,$
JNB SW1,$
MOV DEM,P2
MOV A,DEM
CJNE A,#9,DEMLEN1
MOV P2,#90H
DEMLEN1:
ADD A,#2
CALL HIENTHI
CALL DELAY
JMP $
DEMXUONG:
JNB P1.1,DEMLEN
JB P1.1,$
CJNE DEM,#1,DEMXUONG1
MOV P2,#090H
JMP $
DEMXUONG1:
MOV A,DEM
SUBB A,#2
CALL HIENTHI
CALL DELAY
JMP $
HIENTHI:
MOVC A,@A+DPTR
MOV P2,A
RET
DELAY:
MOV R1,#50
DELAY1:
MOV TMOD,#10H
MOV TH1,#HIGH(-10000)
MOV TL1,#LOW(-10000)
SETB TR1
JNB TF1,$
CLR TF1
CLR TR1
DJNZ R1,DELAY1
RET
CODE7DOAN:
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
end
Lần đầu tiên post bài, có gì mong các bạn thông cảm!!! Viết bằng assembly 89c51
org 0000h
DEM EQU R0
mov DPTR,#CODE7DOAN
MOV DEM,#0F9H
MOV P2,DEM
SW1 BIT P1.0
SW2 BIT P1.1
DEMLEN:
JB SW1,$
JNB SW1,$
MOV DEM,P2
MOV A,DEM
CJNE A,#9,DEMLEN1
MOV P2,#90H
DEMLEN1:
ADD A,#2
CALL HIENTHI
CALL DELAY
JMP $
DEMXUONG:
JNB P1.1,DEMLEN
JB P1.1,$
CJNE DEM,#1,DEMXUONG1
MOV P2,#090H
JMP $
DEMXUONG1:
MOV A,DEM
SUBB A,#2
CALL HIENTHI
CALL DELAY
JMP $
HIENTHI:
MOVC A,@A+DPTR
MOV P2,A
RET
DELAY:
MOV R1,#50
DELAY1:
MOV TMOD,#10H
MOV TH1,#HIGH(-10000)
MOV TL1,#LOW(-10000)
SETB TR1
JNB TF1,$
CLR TF1
CLR TR1
DJNZ R1,DELAY1
RET
CODE7DOAN:
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
end
Comment