实现的效果如下
单片机源程序如下:
- KEY DATA 30H
- LED0 BIT P2^0
- LED1 BIT P2^1
- LED2 BIT P2^2
- LED3 BIT P2^3
- LED4 BIT P2^4
- LED5 BIT P2^5
- LED6 BIT P2^6
- LED7 BIT P2^7
- ORG 0000H
- AJMP START
- ORG 0030H
- START:
- ACALL KEYSCAN
- MOV A,KEY
- CJNE A,#1,M1
- CLR LED1
- AJMP START
- M1: CJNE A,#2,M2
- CLR LED2
- AJMP START
- M2: CJNE A,#3,M3
- CLR LED3
- AJMP START
- M3: CJNE A,#4,M4
- CLR LED4
- AJMP START
- M4: MOV P2,#0FFH
- AJMP START
- KEYSCAN:ORL P3,#0FH ;读前先写1
- MOV A,P3 ;读取扫描码
- ORL A,#0F0H ;屏蔽高4位
-
- CJNE A,#0FEH,KS1
- MOV KEY,#1
- SJMP KSRE
- KS1: CJNE A,#0FDH,KS2
- MOV KEY,#2
- SJMP KSRE
- KS2: CJNE A,#0FBH,KS3
- MOV KEY,#3
- SJMP KSRE
- KS3: CJNE A,#0F7H,KS4
- MOV KEY,#4
- SJMP KSRE
- KS4: MOV KEY,#0FFH
- KSRE: RET
- DELAY: MOV R5,#2
- DEL1: MOV R4,#200
- DEL2: MOV R3,#250
- DJNZ R3,[ DISCUZ_CODE_1 ]nbsp; //500us
- DJNZ R4,DEL2 //200x500us=100ms
- DJNZ R5,DEL1
- RET
- TAB: DB 0FFH,0FEH,0FCH,0F8H,0F0H,0E1H,0C3H,87H,0FH,1FH,3FH,7FH
- END
复制代码
Proteus7.5版本的仿真图下载(dsn文件只能用这个版本打开):
03_2 独立按键.zip
(88.09 KB, 下载次数: 8)
|