




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.。由51单片机控制、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、超时报警、超次报警并锁定键盘。具有超级管理密码解锁功能。调电存储,声光提示开锁,修改密码等功能。求大虾的帮助。邮箱290028737问题补充: 求助大虾啊。推荐答案 2011-5-4 09:52 1实验任务 根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。2电路原理图 图4.32.13系统板上硬件连线 (1) 把“单片机系统”区
2、域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;(2) 把“音频放大模块”区域中的SPK OUT端子接喇叭和;(3) 把“单片机系统”区域中的P2.0/A8P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;(4) 把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;(5) 把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;4程序设计内容 (1) 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5
3、位密码。(2) 密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。(3) 按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。5C语言源程序 #include <AT89X52.H> unsigned char code ps=; unsigne
4、d char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40; unsigned char pslen=9; unsigned char templen; unsigned char digit; unsigned char funcount; unsigned char digitcount; unsigned char psbuf9; bit cmpflag; bit hibitflag; bit errorflag; bit rightflag; unsigned int second3
5、; unsigned int aa; unsigned int bb; bit alarmflag; bit exchangeflag; unsigned int cc; unsigned int dd; bit okflag; unsigned char oka; unsigned char okb; void main(void) unsigned char i,j; P2=dispcodedigitcount; TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1; ET0=1; EA=1; while(1) if(cmpf
6、lag=0) if(P3_6=0) /function key for(i=10;i>0;i-) for(j=248;j>0;j-); if(P3_6=0) if(hibitflag=0) /按键是否被锁 funcount+; if(funcount=pslen+2) /前面有按下功能键1次和按数字键1次,来完成密码长度的输入 funcount=0; cmpflag=1; P1=dispcodefuncount; /可以由灯判断按键是否按下, else second3=0; while(P3_6=0); if(P3_7=0) /digit key for(i=10;i>0;i
7、-) for(j=248;j>0;j-); if(P3_7=0) if(hibitflag=0) digitcount+; if(digitcount=10) digitcount=0; P2=dispcodedigitcount; if(funcount=1) /按下功能键后,开始输入密码长度 pslen=digitcount; templen=pslen; else if(funcount>1) /开始记录各位密码 psbuffuncount-2=digitcount; else second3=0; while(P3_7=0); /原文少了这个“”else /进行比较 cmp
8、flag=0; for(i=0;i<pslen;i+) if(psi!=psbufi) hibitflag=1; /密码输入不正确,按键禁止功能被激活 i=pslen; errorflag=1; rightflag=0; cmpflag=0; second3=0; goto a; cc=0; errorflag=0; rightflag=1; hibitflag=0; a: cmpflag=0; void t0(void) interrupt 1 using 0 TH0=(65536-500)/256; TL0=(65536-500)%256; if(errorflag=1) &
9、& (rightflag=0) bb+; if(bb=800) bb=0; alarmflag=alarmflag; if(alarmflag=1) P0_0=P0_0; /报警声 aa+; if(aa=800) aa=0; P0_1=P0_1; /LED2发光二极管闪 second3+; if(second3=6400) /闪4次后(8次变换),自动复位到按ENTER前的状态 second3=0; hibitflag=0; errorflag=0; rightflag=0; cmpflag=0; P0_1=1; alarmflag=0; bb=0; aa=0; if(errorfla
10、g=0) && (rightflag=1) /发出“叮咚”声 P0_1=0; /LED2发光二极管亮 cc+; if(cc<1000) okflag=1; else if(cc<2000) okflag=0; else /自动复位到按ENTER前的状态 errorflag=0; rightflag=0; hibitflag=0; cmpflag=0; P0_1=1; /LED2发光二极管灭 cc=0; oka=0; okb=0; okflag=0; P0_0=1; if(okflag=1) oka+; if(oka=2) oka=0; P0_0=P0_0; else
11、 okb+; if(okb=3) okb=0; P0_0=P0_0; 赞同0| 评论 向TA求助 回答者: 乜半云 | 二级采纳率:20% 擅长领域: 暂未定制 参加的活动: 暂时没有参加的活动 相关内容 · 2011-7-29 你好 看到你有问 基于单片机电子密码锁设计 这个问题 我也是即将. · 2011-4-3 基于单片机电子密码锁设计 8 · 2011-5-24 基于单片机的电子密码锁设计 1 · 2010-12-30 求告诉解决下基于单片机的电子密码锁毕业设计论文。 发邮箱2858300. · 2010-10-17 求助:基于51单片
12、机的电子密码锁设计。 更多关于基于单片机的密码锁设定的问题>> · 电子密码锁:论文 · 电子密码锁:程序 · 电子密码锁:电路图 · 电子密码锁:仿真 · 2012-1-22论文发表选lw100f网基于单片机用汇编语言实现电子密码锁的优秀论文。.· 2012-1-2求一份6进制电子密码锁的密码毕业设计论文、 很急很急、 小女子求求.· 2011-12-7急求:智能电子密码锁的毕业设计论文(多些方案)需要图,不需要太细.· 2011-11-20qiu电子密码锁设计论文一篇 万分感谢· 2011
13、-11-9求基于51单片机的电子密码锁的设计论文。任务书,开题报告,源程序等.7更多关于电子密码锁:论文的问题>>其他回答 共4条 2011-5-3 16:39 nongjianjun | 八级 你好,我来帮你搞定! 赞同0| 评论 2011-5-3 17:32 wlz19880606 | 三级 做毕业设计吧?给你一个吧,记者接受啊! 赞同0| 评论 2011-5-9 09:32 艾尔戈 | 二级 LED1 EQU 6FH BUFF EQU 6EH TIMERS1 EQU 6DH ;输入回车的次数 TIMERS2 EQU 6CH ;报警的次数 TIMERS EQU 6BH ;输入数
14、字的位数 ;LED6 EQU 6AH ;密码缓冲区 PS1 EQU 69H PS2 EQU 68H PS3 EQU 67H PS4 EQU 66H PS5 EQU 65H PS6 EQU 64H ;AT24C02读取缓冲区 AT1 EQU 63H AT2 EQU 62H AT3 EQU 61H AT4 EQU 60H AT5 EQU 5FH AT6 EQU 5EH ;按键标志位 F_1 BIT 20H F_2 BIT 21H F_3 BIT 22H F_4 BIT 23H BUF_FULL BIT 24H ;密码已经够六位的标志位,为1表示满 CH_STATE BIT 25H ;系统更改的状态
15、标志位,为1表示busy FLAG1 BIT 26H ;功能键标志位,为1表示功能按键。 F_F1 BIT 27H F_F2 BIT 28H PSW_F BIT 29H ;密码是否正确的标志位 ;口资源定义 SPK BIT P2.1 JDQ BIT P2.3 SDA BIT P2.4 ;定义串口数据端 SCL BIT P2.5 ;发光二极管灯 L1 BIT P1.0 L2 BIT P1.1 L3 BIT P1.2 ; ORG 0000H AJMP MAIN ORG 000BH ;AJMP TIMER0 ORG 001BH ;AJMP TIMER1 ORG 0030H MAIN:MOV SP,
16、#70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H CLR F_1 ;清除标志位 CLR F_2 CLR F_3 CLR F_4 CLR BUF_FULL CLR CH_STATE CLR FLAG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;调用 LCALL INITPS ;初始化环境 LCALL INITAT LCALL XSA ;调用默认显示 MOV TIMERS1,#00H NOP MOV PS1, #11H ;初始化密码830620 MO
17、V PS2, #0AH MOV PS3, #02H MOV PS4, #13H MOV PS5, #0BH MOV PS6, #02HSTART:NOP ;程序开始 LCALL CH_KEY ;检查键盘 AJMP START ;返回CH_KEY:LCALL KS ;检查有没有按键按下 JNZ LK1 AJMP CH_KEY LK1: LCALL T12MS ACALL KS JNZ LK2 RET LK2: NOP LCALL SBIE ;按键识别子程序 MOV BUFF, A ;送缓冲区以识别是数字键还是功能键? LCALL CH_KF ;判断按键功能。 JB FLAG1 ,KEY_FUN
18、;标志为1,则为功能键;*数字按键输入并且存放到缓冲区内等待比较*KEY_DIG:NOP ;设一标志,辨别输入是否满 ;SETB TR0 INC TIMERS ;输入数字的位数 MOV A, TIMERS CLR C SUBB A, #01H JNZ PS_2 MOV PS1, BUFF ;依照顺序存放密码 AJMP NEXT PS_2:MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3 MOV PS2, BUFF AJMP NEXT PS_3:MOV A, TIMERS CLR C SUBB A, #03H JNZ PS_4 MOV PS3, BUFF AJM
19、P NEXT PS_4:MOV A, TIMERS CLR C SUBB A, #04 JNZ PS_5 MOV PS4, BUFF AJMP NEXT PS_5:MOV A, TIMERS CLR C SUBB A, #05 JNZ PS_6 MOV PS5, BUFF AJMP NEXT PS_6:MOV A, TIMERS CLR C SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT:LCALL XSC MOV R7, TIMERS ;比较输入的次数。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MO
20、V TIMERS,#06H CLR L3 NOP CLR P2.1 LCALL T100MSD SETB P2.1 NOP AJMP CH_KEYNEXT9:CLR P2.1 ;密码输入一位,鸣叫一声。 CLR L3 LCALL T100MSD ;延时100ms SETB L3 SETB P2.1 AJMP CH_KEY;*功能按键比较并且跳转*KEY_FUN: CLR FLAG1 CLR C MOV A, BUFF SUBB A, #03H ;按键CL跳转 JNZ EN_C AJMP CL EN_C:CLR C MOV A, BUFF ;按键EN跳转 SUBB A, #00H JNZ F1_
21、C AJMP EN F1_C:CLR C MOV A, BUFF SUBB A, #1BH JNZ F2_C AJMP FU1 F2_C:CLR C MOV A, BUFF SUBB A, #1AH JNZ F3_C AJMP FU2 F3_C:CLR C MOV A, BUFF SUBB A, #19H JNZ F4_C AJMP FU3 F4_C:CLR C MOV A, BUFF SUBB A, #18H JZ FU4EXIT8:NOP LJMP CH_KEY;*开门子程序 * CL:NOP SETB L3 MOV BUFF, #00H ;消密码缓冲 MOV TIMERS,#00H LC
22、ALL INITPS ;消除AT缓冲,加调电存储后一定要加上 LCALL XSC LCALL BP LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU3:NOP LCALL BP LCALL T100MSD LCALL BP LCALL KILLXS ;关闭显示 CLR FL
23、AG1 AJMP CH_KEY FU1:NOP LCALL XSC JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEYNEXT_F1:SETB L1 LCALL BP CLR F_F1 ;LCALL CH_STATE ;查看现在的状态以防误按 ;SETB TR1 ;报警限制暂时不开 ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP JB F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEYNEXT_F2:SETB L2 LCALL BP CLR F_F2 C
24、LR FLAG1 AJMP CH_KEY;*按键的功能描述* EN:NOP JB BUF_FULL, GOON AJMP EXIT GOON:CLR BUF_FULL JB F_F2, AT_WRON ;F2按键标志,若为1,则调用修改密码子程序。 LCALL AT_RADE LCALL C_PSW ;比较密码子程序 JB PSW_F,OPEN ;密码比较正确,则调用开锁子程序 LCALL XSD INC TIMERS2 MOV R7,TIMERS2 ;密码错误,调入输入密码输入次数,准备锁定键盘 CJNE R7,#03H,D0 D0:JC NEXT1 ;错误次数小3次 LCALL XSE ;
25、锁定5分钟 LCALL WARN2S LCALL LOCK_1MNEXT1:LCALL WARN2S ;报警2分钟 LCALL XSA EXIT:LCALL INITPS MOV BUFF, #00H CLR FLAG1 MOV TIMERS, #00H AJMP CH_KEY ;跳出 AT_WRON:LCALL AT_WR LCALL XSF LCALL BP LCALL T100MSD LCALL BP LCALL T500MSD LCALL KILLXS LCALL T500MSD LCALL XSF LCALL T500MSD LCALL KILLXS LCALL T500MSD LC
26、ALL XSF LCALL T500MSD NOP NOP LCALL XSA AJMP EXIT OPEN:MOV A, TIMERS1 CJNE A, #09H,CLT1 CLT1:JC GOON1 MOV TIMERS1,#00H GOON1:INC TIMERS1 ;输入回车的次数 MOV TIMERS2,#00H SETB L3 CLR PSW_F LCALL XSB CLR JDQ ;开门 LCALL BP LCALL BP LCALL BP LCALL BP LCALL SEC LCALL SEC LCALL SEC LCALL SEC LCALL SEC LCALL SEC L
27、CALL SEC LCALL SEC SETB JDQ LCALL XSA NOP AJMP EXIT;*各类子程序*;* 注意清楚缓冲区时AT1.AT6不应在初始化中执行,以 *;* 防两缓冲区都为0,相同开锁 *;*CLR_BUF:MOV R7, #06H MOV R0, #6FHLOOP1:MOV A, #00H MOV R0, A DEC R0 DJNZ R7,LOOP1 RET;*初始化显示缓冲区以及其他缓冲区*INITPS:PUSH ACC PUSH PSW MOV R7, #06H MOV R1, #PS1 MOV A, #00HINIT_PS:MOV R1, A DEC R1
28、DJNZ R7, INIT_PS POP PSW POP ACC NOP RETINITAT:PUSH ACC PUSH PSW MOV R7,#06H MOV R1,#AT1 MOV A, #00HINIT_AT:MOV R1, A DEC R1 DJNZ R7, INIT_AT MOV TIMERS,#00H ;密码输入的次数清零。 POP PSW POP ACC RET;* 按键识别子程序 * SBIE:MOV R2, #0EFH ;识别按键子程序,数据送A保存,课本P146页。 MOV R4, #00H LK4:MOV A, R2 MOV P0, A NOP MOV A, P0 JB
29、ACC.0,LONE MOV A, #00H AJMP LKP LONE:JB ACC.1,LTWO MOV A, #08H AJMP LKP LTWO:JB ACC.2,LTHR MOV A, #10H AJMP LKP LTHR:JB ACC.3,NEXTT ;判断下一列 MOV A, #18H LKP:ADD A, R4 PUSH ACC LK3:ACALL KS JNZ LK3 POP ACC RETNEXTT:INC R4 MOV A, R2 JNB ACC.7,KND RL A MOV R2, A AJMP LK4 KND:AJMP CH_KEY KS:MOV P0, #0FH N
30、OP MOV A, P0 CPL A ANL A, #0FH NOP RETCH_KF:CLR C MOV A, BUFF ;判断是数字按键还是功能按键,为1表示功能键 CJNE A, #17H, KY KY:JC SET_CH ;假若是数字按键则标志置为0 SETB FLAG1 ;假若是功能按键则标志置为1 AJMP CHKE_ENDSET_CH:CLR C MOV A, BUFF SUBB A, #00H JNZ EN_CH SETB FLAG1 AJMP CH_ENDEN_CH:MOV A, BUFF SUBB A, #03H JNZ DIG SETB FLAG1 AJMP CH_END
31、 DIG:CLR FLAG1CH_END:NOPCHKE_END:RET T12MS:MOV R7, #18H TM1:MOV R6, #0FFH TM66:DJNZ R6, TM66 DJNZ R7, TM1 RET;*检验密码正误* C_PSW:PUSH PSW PUSH ACC MOV R2,#06H MOV R0,#PS1 MOV R1,#AT1 C_P:CLR C MOV A,R0 SUBB A,R1 JNZ RETURN DEC R0 DEC R1 DJNZ R2,C_P NOP SETB PSW_F AJMP EXIT7RETURN:CLR PSW_F EXIT7:NOP POP
32、 ACC POP PSW RET;×××××××××××××××××锁定,鸣笛子程序××××××××××××LOCK_1M:MOV R4,#3CH ;锁定1分钟M1_LOOP:LCALL SEC DJNZ R4,M1_LOOP NOP RET WARN2S:PUSH PSW PUSH ACC MOV R5, #14H ;调用20次BP,报警2s WARN:LCALL BP DJNZ R5,WARN NOP POP ACC POP PSW NOP RET BP:CLR SPK ;鸣笛子程序 LCALL T100MSD SETB SPK NOP希望可以帮到你的忙 追问有没有c的编程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植产品购销协议
- 跨境电商市场调研方案
- 专业技术咨询服务项目合作协议
- 行政管理创新管理试题及答案提纲
- 城市空间治理的国际经验借鉴试题及答案
- 2025废料交易合同模板
- 行政管理中的绩效评估方法试题及答案
- 2025年提前终止个人租房合同协议书
- 社会组织参与市政学试题及答案
- 幼儿深度学习能力培养:理论基础与实践策略
- 静脉炎的预防及处理-李媛
- 政治经济学重点讲义
- 羊水拴塞应急演练
- 公司章程模板五篇
- OBE理念下生成式AI技术在高校财会教育中的应用路径研究
- 2024年云服务器运维服务合同样本
- 创业人生学习通超星期末考试答案章节答案2024年
- 超职数配备干部整改方案
- 中药材、中药饮片分类贮存常温库货品名称目录
- 中考模拟考试实施方案
- (部编版)统编版小学语文教材目录(一至六年级上册下册齐全)
评论
0/150
提交评论