如下,用匯編語言編寫:
利用單片機AT89S52、7個按鍵以及3個LED指示燈組成I/O控制實驗系統。P0.0-P0.7與8個開關鍵相連,P1.0~P1.2與3個LED燈相連;利用按鍵控制LED指示燈亮與滅,完成如下功能:001 010 011 100 101 110 111
1.當P0.1開關鍵被按下時,P1.0~P1.2燈的狀態依次為滅滅亮,即1的二進制狀態001;
2.以此類推,當P0.7開關鍵被按下時,P1.0~P1.2燈的狀態依次為亮亮亮,即7的二進制狀態111;
代碼如下:
ORG 0000H
START:
JNB P0.1,K2
JNB P0.2,K3
JNB P0.3,K4
JNB P0.4,K5
JNB P0.5,K6
JNB P0.6,K7
JNB P0.7,K8
SJMP START
;-------------
K2:
CALL DL10MS
JB P0.1,START
JNB P0.1,$
CLR P1.2
SJMP START
;--------------
K3:
CALL DL10MS
JB P0.2,START
JNB P0.2,$
CLR P1.1
SJMP START
;--------------
K4:
CALL DL10MS
JB P0.3,START
JNB P0.3,$
CLR P1.1
CLR P1.2
SJMP START
;--------------
K5:
CALL DL10MS
JB P0.4,START
JNB P0.4,$
CLR P1.0
SJMP START
;--------------
K6:
CALL DL10MS
JB P0.5,START
JNB P0.5,$
CLR P1.0
CLR P1.2
SJMP START
;--------------
K7:
CALL DL10MS
JB P0.6,START
JNB P0.6,$
CLR P1.0
CLR P1.1
SJMP START
;--------------
K8:
CALL DL10MS
JB P0.6,START
JNB P0.6,$
MOV P1,#0
SJMP START
;---------------
DL10MS:
MOV R6,#10
DJNZ R7,$
DJNZ R7,$
DJNZ R6,$-4
RET
;-------------
END
運行仿真沒錯誤,但寫入Proteus仿真卻沒有現象,求大佬幫忙看下
|