我的第一個(gè)單片機(jī)程序設(shè)計(jì),當(dāng)時(shí)花費(fèi)一周做匯編編程及Proteus仿真,后面一周做硬件的實(shí)物焊接。同各位電子愛(ài)好者懷念下玩51單片機(jī)的日子,匯編編程完全就是依靠對(duì)底層硬件的理解,去思考實(shí)現(xiàn)一個(gè)功能需要用到的匯編指令組合。每一句都值得推敲,雖然沒(méi)有像C編程一樣的demo,能夠快速實(shí)現(xiàn)。工作近3年后的我才發(fā)現(xiàn)能夠保持讀書(shū)時(shí)代的不急不燥、勇敢面對(duì)未知、追求最好的心性是多么的珍貴。
附件中包含了詳細(xì)的設(shè)計(jì)要求、設(shè)計(jì)原理圖、仿真過(guò)程、實(shí)物驗(yàn)收。文檔末尾有最重要的匯編源代碼。
密碼鎖長(zhǎng)度為6位數(shù)字,初始密碼為系統(tǒng)預(yù)設(shè)。
密碼輸入正確后,輸出一個(gè)電磁鎖開(kāi)鎖信號(hào),開(kāi)鎖指示燈亮,并發(fā)出兩聲“滴”提示,4秒后開(kāi)鎖信號(hào)與已開(kāi)鎖指示清零。
密碼輸入錯(cuò)誤時(shí),發(fā)出一聲長(zhǎng)“滴”聲提示密碼錯(cuò)誤,密碼錯(cuò)誤指示燈亮。
三次密碼錯(cuò)誤時(shí),發(fā)出長(zhǎng)鳴警報(bào)聲,密碼錯(cuò)誤指示燈亮,報(bào)警指示燈亮,此后15秒內(nèi)無(wú)法再次輸入密碼,15秒后清楚所有報(bào)警和指示。
5秒內(nèi)無(wú)任何操作,清除所有輸入內(nèi)容,等待下一次輸入。
擴(kuò)展功能:
密碼可以任意修改。
修改的密碼斷電后可以長(zhǎng)期保存。
(1)初始化界面 (2)當(dāng)密碼輸入正確后 (3)當(dāng)密碼輸入正確后按下改密
(4)當(dāng)密碼輸入錯(cuò)誤后 (5)當(dāng)密碼連續(xù)三次輸入錯(cuò)誤后
4.2.2 實(shí)物調(diào)試 (1)初始界面 (2)輸入密碼正確 (3)密碼輸入錯(cuò)誤 (4)三次密碼錯(cuò)誤 附錄1:元件清單
附錄2 安裝圖 附錄3 實(shí)物驗(yàn)收
單片機(jī)源程序如下: - ORG 0000H
- MOV 70H,#0;????
- MOV 71H,#0
- MOV 72H,#0
- MOV 73H,#0
- MOV 74H,#0
- MOV 75H,#0
- LJMP MAIN
- ORG 001BH
- LJMP T1ZD
- ORG 0100H
- RS EQU P0.5
- RW EQU P0.6
- E EQU P0.7
- LCD EQU P2
- BF EQU P2.7
- MAIN: MOV P1,#0FH
- SETB P3.7
- SETB P0.0
- SETB P0.1
- SETB P0.2
- LCALL T1ZDCSH
- LCALL ChuShiHua
- LCALL ShuRuXianShi
- LCALL JianYan
- LJMP MAIN
- T1ZD: MOV TH1,#3CH
- MOV TL1,#0B0H
- CLR TF1
- DJNZ 44H,FH
- LCALL QingPing
- MOV 60H,#0
- MOV 61H,#0
- MOV 62H,#0
- MOV 63H,#0
- MOV 64H,#0
- MOV 65H,#0
- MOV R0,#60H
- CLR TR1
- LCALL ChuShiHua
- FH: RETI
- T1ZDCSH: SETB EA
- SETB ET1
- MOV TMOD,#10H
- MOV TH1,#3CH
- MOV TL1,#0B0H
- RET
- ShuRuXianShi: MOV R0,#60H;XIANSHIMIMA:???????????,??????60h
- CunMiMa: LCALL JianPan
- MOV A,43H
- XRL A,#13H
- JZ ShanChu
- MOV @R0,43H
- MOV A,@R0
- ADD A,#30H
- LCALL WDATA
- INC R0
- LCALL D500MS
- INC 46H
- CJNE R0,#66H,CunMiMa
- LCALL JianPan
- MOV A,43H
- XRL A,#29H
- JZ FanHui
- LOOP: SJMP LOOP
- FanHui: RET
- ShanChu: DEC R0
- MOV A,R0
- ADD A,#69H
- LCALL WCMD
- MOV A,#30
- LCALL WDATA
- LCALL D500MS
- MOV A,R0
- ADD A,#69H
- LCALL WCMD
- LJMP CunMiMa
- JianYan: CLR TR1
- LCALL QingPing
- LCALL BiJiao
- RET
- BiJiao: MOV R1,#60H
- MOV R0,#70H
- HL: MOV A,@R0
- XRL A,@R1
- JNZ JRMMCW;??? ??????
- INC R0
- INC R1
- CJNE R1,#66H,HL
- LCALL MiMaZhengQue
- RET
- JRMMCW: LCALL MiMaCuoWu
- RET
- MiMaZhengQue: MOV 44H,#80
- SETB TR1
- MOV 79H,#0
- MOV A,#80H
- LCALL WCMD
- MOV DPTR,#ZhengQueTiShi
- MOV R2,#0
- D00001: MOV A,R2
- MOVC A,@A+DPTR
- LCALL WDATA
- INC R2
- CJNE R2,#16,D00001
- CLR P0.0
- CLR P3.7
- LCALL D100MS
- SETB P3.7
- LCALL D500MS
- CLR P3.7
- LCALL D100MS
- SETB P3.7
- LCALL ShiFouXiuGai
- LCALL D1S
- SETB P0.0
- RET
- ShiFouXiuGai: LCALL QingPing
- MOV DPTR,#XiuGaiTiShi
- MOV A,#83H
- LCALL WCMD
- MOV R7,#0
- LL: MOV A,R7
- MOVC A,@A+DPTR
- LCALL WDATA
- INC R7
- CJNE R7,#10,LL
- MOV A,#0C1H
- LCALL WCMD
- LLL: MOV A,R7
- MOVC A,@A+DPTR
- LCALL WDATA
- INC R7
- CJNE R7,#24,LLL
- MOV A,#0CEH
- LCALL WCMD
- LCALL JianPan
- LCALL D1S
- MOV A,43H
- XRL A,#29H
- JZ XiuGaiMiMa
- RET
- XiuGaiTiShi:DB'Change ThePassword?(Y/N)'
- XiuGaiMiMa: CLR TR1
- LCALL QingPing
- MOV DPTR,#XGTiShi
- MOV A,#82H
- LCALL WCMD
- MOV R7,#0
- XIU:MOV A,R7
- MOVC A,@A+DPTR
- LCALL WDATA
- INC R7
- CJNE R7,#12,XIU
- MOV A,#0C1H
- LCALL WCMD
- EXIU: MOV A,R7
- MOVC A,@A+DPTR
- LCALL WDATA
- INC R7
- CJNE R7,#28H,EXIU
- MOV A,#0C9H
- LCALL WCMD
- MOV R1,#50H
- XC: LCALL JianPan
- MOV A,43H
- XRL A,#13H
- JZ ShanChuXiuGai
- MOV @R1,43H
- MOV A,@R1
- ADD A,#30H
- LCALL WDATA
- INC R1
- LCALL D500MS
- CJNE R1,#56H,XC
- LCALL D1S
- LCALL ShiFouBaoCun
- RET
- ShanChuXiuGai: DEC R1
- MOV A,R1
- ADD A,#79H
- LCALL WCMD
- MOV A,#30
- LCALL WDATA
- LCALL D500MS
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
以上代碼51hei提供下載:
|