em có 2 nút bấm SW1 và SW2 điều khiển 2led 7thanh chung anode. Ấn SW1 hoặc SW2 tăng hoặc giảm đi 1 đơn vị.đếm từ 00-99, tăng lên 99 thì về 00 hoặc giảm về 00 thì lên 99 và lại lặp lại quá trình. Nhưng e ko hiểu sao khi chạy mô phỏng xuất hiện mấy lỗi sau:
- đặt vị trí ban đầu là 00 mà cứ hiện 80
- khi ấn tăng hoặc giảm 1 lần mà nó nhảy nhanh tới mấy số (VD đang ở 80 e ấn SW1 tăng nó nhảy nhanh tới tận 84)
hjc.các bác giúp e với.
mã lệnh và sơ đồ mô phỏng đây ạ
MOV R0,#0
SJMP HIENTHI
MAIN:
JNB P3.0,SW1
JNB P3.1,SW2
SJMP MAIN
SW1:
INC R0
MOV A,R0
CJNE A,#100,HIENTHI
MOV R0,#0
SJMP HIENTHI
;////////////////////
SW2:
DEC R0
MOV A,R0
CJNE A,#255,HIENTHI
MOV R0,#99
SJMP HIENTHI
;///////////////
HIENTHI:
;///////////////HIEN THI HANG CHUC//////////////
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED
MOC A,@A+DPTR
MOV P2,A
CLR P1.0
SETB P1.0
;///////////HIEN THI HANG DON VI//////////////
MOV A,B
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P2,A
CLR P1.1
SETB P1.1
CALL DELAY
SJMP MAIN
;//////////////
MALED:
DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
;//////////////////
DELAY:
PUSH 07
PUSH 06
MOV r6,#100
DELAY1:
MOV r7,#255
DJNZ r7,$
DJNZ r6,delay1
POP 06
POP 07
RET
END
- đặt vị trí ban đầu là 00 mà cứ hiện 80
- khi ấn tăng hoặc giảm 1 lần mà nó nhảy nhanh tới mấy số (VD đang ở 80 e ấn SW1 tăng nó nhảy nhanh tới tận 84)
hjc.các bác giúp e với.
mã lệnh và sơ đồ mô phỏng đây ạ
MOV R0,#0
SJMP HIENTHI
MAIN:
JNB P3.0,SW1
JNB P3.1,SW2
SJMP MAIN
SW1:
INC R0
MOV A,R0
CJNE A,#100,HIENTHI
MOV R0,#0
SJMP HIENTHI
;////////////////////
SW2:
DEC R0
MOV A,R0
CJNE A,#255,HIENTHI
MOV R0,#99
SJMP HIENTHI
;///////////////
HIENTHI:
;///////////////HIEN THI HANG CHUC//////////////
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED
MOC A,@A+DPTR
MOV P2,A
CLR P1.0
SETB P1.0
;///////////HIEN THI HANG DON VI//////////////
MOV A,B
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P2,A
CLR P1.1
SETB P1.1
CALL DELAY
SJMP MAIN
;//////////////
MALED:
DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
;//////////////////
DELAY:
PUSH 07
PUSH 06
MOV r6,#100
DELAY1:
MOV r7,#255
DJNZ r7,$
DJNZ r6,delay1
POP 06
POP 07
RET
END
Comment