1.包括流水燈,時鐘,計時器,簡易的用4x4鍵盤控制的計算器
2.四個按鍵選擇功能,直接對應那種一般開發板配套的紅外遙控器的1234鍵(試過是可以的)當然仿真中不包括紅外,紅外選項是多余的
仿真中不包括紅外
3.計時器,上鍵運行,下鍵清零,右鍵暫停,右鍵長按切換時鐘
4.時鐘的右鍵切換調整,長按到計時器,調整位會閃爍
5計算器用4x4按鍵控制
6.代碼用的匯編
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- LCD_RS EQU P2.0 ;1602控制
- LCD_RW EQU P2.1 ;......
- LCD_E EQU P2.2 ;脈沖
- LCD_D7 EQU P0.7 ;
- LCD_DATA EQU P0 ;1602數據口
- LCD_JISHU EQU 20H ;1602寫數據計數
- LCD_CAIDAN EQU 21H ;1602菜單編號
- LCD_CAIDAN_YE EQU 22H ;1602頁編號
- KEY_UP EQU P2.3 ;上鍵
- KEY_DOWN EQU P2.4 ;下鍵
- KEY_OK EQU P2.5 ;確認鍵
- KEY_EXIT EQU P2.6 ;退出鍵
- LCD_BEI EQU P2.7 ;1602背光
- EXIT_BIAOZHI EQU 23H.0 ;計時器,中按退出會置一標志位
- OK_BIAOZHI EQU 23H.1
- UP_BIAOZHI EQU 23H.2
- DOWN_BIAOZHI EQU 23H.3
- DINGSHI_JISHU EQU 24H ;用定時器延時計數
- LED EQU P1 ;
- ;數碼管595 ;
- MINGXIANG EQU P3.3
- HC595_DATA EQU P3.4 ;數碼管數據,移位輸出,,,復用hc164數據口
- HC595_SLCP EQU P3.5 ;讀入數據端
- HC595_SHCP EQU P3.6 ;刷新顯示端,、、復用hc164的clk
- HC595_SHI EQU 25H ;時鐘的時分秒
- HC595_FEN EQU 26H ;
- HC595_MIAO EQU 27H ;
- ;矩陣鍵盤.......
- JIANPAN1 EQU P3.0
- JIANPAN2 EQU P3.1
- HC164_DATA EQU P3.4
- HC164_CLK EQU P3.7
- JIANSHUXU EQU 28H ;矩陣鍵盤按下的順序,
- JISUANQI_DATA1 EQU 29H ;
- JISUANQI_YUNSUAN EQU 2AH ;
- JISUANQI_DATA2 EQU 2BH ;
- JISUANQI_JIEGUO1 EQU 2CH ;
- JISUANQI_JIEGUO2 EQU 2DH ;
- ANJIAN_CHANGAN EQU 2FH
- OKCHANGAN_BIAOZHI EQU 23H.4 ;
- HONGWAIZ_ EQU P3.2
- HONGWAIZ_MA EQU 30H
- LEDYANSHI_JISHU EQU 31H
- ORG 0000H
- AJMP MAIN
- ORG 03H
- LJMP WAIBU0
- ORG 0BH
- LJMP T0DINGSHI
- ORG 001BH
- LJMP T1DINGSHI;定時器中斷
- ORG 0030H
- MAIN:
- LCALL SHUMA_JIANCE
- LCALL SHUMA_QINGLING
- MOV HONGWAIZ_MA,#00H
- CLR LCD_BEI
- LCALL LCD_XIANSHI ;1602初始化,歡迎界面
- SETB PT0 ;把定時器t1設置為高優先級
- MOV TMOD,#11H ;T1為工作方式一
- MOV IE,#8BH ;允許T1中斷,T0,外部中斷0
- MOV TH1,#0D8H ;放入數據
- MOV TL1,#0F0H
- MOV TH0,#0DBH
- MOV TL0,#0F0H
- SETB TR1 ;啟動T1定時器
- LOOP0:
- LCALL ANJIAN_RENYI ;按鍵判斷
- SJMP LOOP0
- SJMP $
- WAIBU0:
- CLR EA
- PUSH 01H
- PUSH 02H
- PUSH 03H
- PUSH 04H
- PUSH ACC
- MOV A,HONGWAIZ_MA
- CJNE A,#0,WAIBU0_JIESHU
- ;MOV ANJIAN_CHANGAN,#10
- WAIBU0_LOOP8:
- MOV R3,#10
- WAIBU0_LOOP7:
- LCALL DELAY840US
- JB HONGWAIZ_,WAIBU0_JIESHU
- DJNZ R3,WAIBU0_LOOP7
- WAIBU0_LOOP13:
- ;MOV R1,ANJIAN_CHANGAN
- ;CJNE R1,#00H,WAIBU0_LOOP9
- ;WAIBU0_JIESHU_1:
- ;LJMP WAIBU0_JIESHU
- WAIBU0_LOOP9:
- JNB HONGWAIZ_,WAIBU0_LOOP13
- LCALL DELAY4MS750US
- MOV R4,#8H
- MOV R3,#4H
- WAIBU0_LOOP1:
- ;MOV R1,ANJIAN_CHANGAN
- ;CJNE R1,#00H,WAIBU0_LOOP10
- ;LJMP WAIBU0_JIESHU
- WAIBU0_LOOP10:
- JNB HONGWAIZ_,WAIBU0_LOOP1
- LCALL DELAY840US
- JB HONGWAIZ_,WAIBU0_LOOP0
- CLR ACC.0
- RLC A
- DJNZ R4,WAIBU0_LOOP1
- LJMP WAIBU0_LOOP2
- WAIBU0_LOOP0:
- SETB ACC.0
- RLC A
- WAIBU0_LOOP11:
- ;MOV R1,ANJIAN_CHANGAN
- ;CJNE R1,#00H,WAIBU0_LOOP12
- ;LJMP WAIBU0_JIESHU
- WAIBU0_LOOP12:
- JB HONGWAIZ_,WAIBU0_LOOP11
- DJNZ R4,WAIBU0_LOOP1
- WAIBU0_LOOP2:
- RRC A
- CJNE R3,#04H,WAIBU0_LOOP3
- CJNE A,#00H,WAIBU0_JIESHU
- LJMP WAIBU0_LOOP6
- WAIBU0_LOOP3:
- CJNE R3,#03H,WAIBU0_LOOP4
- CJNE A,#0FFH,WAIBU0_JIESHU
- LJMP WAIBU0_LOOP6
- WAIBU0_LOOP4:
- CJNE R3,#02H,WAIBU0_LOOP5
- MOV R2,A
- LJMP WAIBU0_LOOP6
- WAIBU0_LOOP5:
- CJNE R3,#01H,WAIBU0_LOOP6
- ADD A,R2
- CJNE A,#0FFH,WAIBU0_JIESHU
- CJNE R2,#30H,WAIBU0_HONGWAI_J2
- MOV HONGWAIZ_MA,#01H
- WAIBU0_HONGWAI_J2:
- CJNE R2,#18H,WAIBU0_HONGWAI_J3
- MOV HONGWAIZ_MA,#02H
- WAIBU0_HONGWAI_J3:
- CJNE R2,#7AH,WAIBU0_HONGWAI_J4
- MOV HONGWAIZ_MA,#03H
- WAIBU0_HONGWAI_J4:
- CJNE R2,#10H,WAIBU0_JIESHU
- MOV HONGWAIZ_MA,#04H
- LJMP WAIBU0_JIESHU
- WAIBU0_LOOP6:
- MOV R4,#08H
- DJNZ R3,WAIBU0_LOOP1
- LJMP WAIBU0_JIESHU
- WAIBU0_JIESHU:
- POP ACC
- POP 04H
- POP 03H
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
顯示鍵盤.zip
(173.42 KB, 下載次數: 28)
2020-12-18 18:51 上傳
點擊文件名下載附件
|