ImageVerifierCode 换一换
格式:DOC , 页数:35 ,大小:966.50KB ,
资源ID:5279461      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5279461.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于STC89C51单片机的密码锁END.doc)为本站会员(myw993772)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于STC89C51单片机的密码锁END.doc

1、1基于 STC89C51 单片机的电子密码锁学生姓名: 赵丽丽 宋 帅 高秋利学生学号: 1104101005 1104101021 1104101001 院(系): 机电工程学院 年级专业: 11 级电子信息工程 1 班 指导教师: 王秀山 二一五一月2目 录1 绪论1.1 电子密码锁简介32 设计方案43 主要元器件53.1 主控芯片 STC89C5153.2 晶体振荡器53.3 LCD 显示密码模块的设计73.3.1 LCD1602 简介73.3.2 LCD1602 液晶显示模块与单片机连接电路84 硬件系统设计94.1 设计原理94.2 电源输入电路94.3 矩阵键盘104.4 复位电

2、路104.5 晶振电路114.6 报警电路124.7 显示电路124.8 开锁电路124.9 电路总体构成135 软件程序设计145.1 主程序流程介绍145.2 键盘模块流程图15 5.3 显示模块流程图175.4 修改密码流程图185.5 开锁和报警模块流程图196 电子密码锁的系统调试及仿真216.1 硬件电路调试及结果分析216.2 软件调试及功能分析216.2.1 调试过程216.2.2 仿真结果分226.3 仿真全图247 结论25参考文献26附录:2731 绪论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电

3、子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1) 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码锁操作简单易行,一学即会。42 设计方案采用以单片机为核心的控制方案。由于单片机种类繁多,各种型号都

4、有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O 口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机 STC89C51 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的 I/O 端口,及其控制的

5、准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接 LCD1602 液晶显示屏用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键 09 输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确则重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确开锁后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。53 主要元器件3.1 主控芯片 STC89C511)STC89C51 单片机的主要特性如下: STC89C51 是一种带 4K 字节闪烁可编

6、程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,STC 的 STC89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,STC89C51 芯片引脚图如图 3-1所示。图 3-1 STC89C51 芯片引脚图3.2 晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的

7、时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,6要实现对模拟信号 44.1kHz 或 48kHz 的采样,频率发生器就必须提供一个44.1kHz 或 48kHz 的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用 SCR 将输出的采样频率固定在 48kHz,但是 SRC 会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代 L

8、C 谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等) ,在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。只要在

9、晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51 单片机内部有一个用于构成振荡器的高增益反向放大器,引脚 XTAL1 和 XTAL2 分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷

10、谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。外接晶体以及电容 C2和 C3 构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF 左右,晶振频率选 11.0592MHz 73.3 LCD 显示密码模块的设计显示模块主要由 LCD1602 显示屏组成,他显示的是键盘输入的密码,以及密码正确与错误的提示。当输入密码时,出于安全性的考虑,显示的密码是有*号代替,为暗密。当输入六位密码后按下确认键,系统会与存于 ROM 的密码对比, 若密码错误,显示屏会显示 Error,若密码正确,显示屏会显示 Right。3.3.1 LCD1602 简介1) 1602 功能介绍1602 液晶也

11、叫 1602 字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字) 。 2) 1602LCD 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如下表 3-2 所示: 表 3-2 引脚功能说明编号 符号 引脚说明 编号 符号 引脚说明1 VSS 电源地 9 D2 数据2 V

12、DD 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令选择 12 D5 数据5 R/W 读/写选择 13 D6 数据6 E 使能信号 14 D7 数据7 D0 数据 15 BLA 背光源正极8 D1 数据 16 BLK 背光源负极其引脚图如下图 3-2 所示:8图 3-2 LCD1602 引脚图3) LCD 寄存器的选择表 3-3 LCD 寄存器的选择E R/W RS 功能说明1 1 0 写入命令寄存器1 1 1 写入数据寄存器1 1 0 读取忙碌标志及 RAM 地址1 1 1 读取 RAM 数据0 X 1 不动作3.3.2 LCD1602 液晶显示模块与

13、单片机连接电路图 3-3 LCD1602 液晶显示模块与单片机连接电路94 硬件系统设计4.1 设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部

14、分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD 显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM 读写程序和延时程序等组成。复位电路振荡电路键盘电路开锁电路STC89C51单片机显示电路报警电路图 4-1 组成原理4.2 电源输入电路三端集成稳压器 LM7805 和 LM7905 是作为固定输出电压的典型应用。正常工作时,输入、输出电压差为 2-3V。电容 C 为输入稳定电容,其作用是减小纹波,消振、抑制高频和脉冲干扰,它一般为 0.1-1uF。电容 C 为输出稳定电容,其作用是改善负载的瞬态

15、响应,它一般为 1uF。使用三端稳压器时要根据10输出电流的大小选择加散热器,否则会由于过热而无法工作到额定电流。图 4-2 电源输入电路4.3 矩阵键盘由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O 口。本设计中使用的这个 4*4 键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置 。其大体功能(看键盘按键上的标记)及与单片机引脚接法。图 4-3 矩阵键盘4.4 复位电路单片机复位是使

16、 CPU 和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后 PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。11在复位期间(即 RST 为高电平期间) ,P0 口为高组态,P1P3 口输出高电平;外部程序存储器读选通信号 PSEN 无效。地址锁存信号 ALE 也为高电平。根据实际情况选择如图 2-8 所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容 C1 上的电压很小,复位下拉电阻上的电压接近电源电压,即 RST 为高电平,在电容充电的过程中 RST 端电压逐渐下降,当

17、 RST 端的电压小于某一数值后,CPU 脱离复位状态,由于电容 C1 足够大,可以保证 RST 高电平有效时间大于 24 个振荡周期,CPU 能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容 C1 通过 R5放电。当电容 C1 放电结束后,RST 端的电位由 R11 与 R15 分压比决定。由于R113?报警程序修改程序YNNY图 5-1 主程序流程5.2 键盘模块流程图键盘输入模块主要包含键盘的扫描、延时去抖、找到键值以及返回键值。键盘扫描时循环的,程序编写是会使其进入是循环,这样可以检验出是否有按键按下,如果无按键按下就会进入等待有按键按下的状态,如果有按

18、键按下的话就进入延时去抖的步骤,这样可以肯定的确定扫描到的按键是否被按下。经过去抖之后就是确定按键的位置即是第几行和第几列,找到按键后,就是确定键值并返回按键值,每一次扫描到有键按下后,最后都要有释放闭合按键的步骤,这是为了避免影响下一次键盘的扫描和按键值的读取。流程图如图 5-2 所示16键盘扫描返回键值闭合键释放计算键值找到闭合键延时去抖有键闭合?YN图 5-2 键盘模块流程按键的消抖子程序所示:if(press_on!=0XF0)/-按键消抖- (时间自定)delay(50);press_on=KEY_IO;确定键值的子程序如下所示:switch(row)case 0xe0:row=0;

19、break;case 0xd0:row=1;break;case 0xb0:row=2;break;case 0x70:row=3;break;switch(col)case 0x07:col=0;break;case 0x0b:col=1;break;case 0x0d:col=2;break;case 0x0e:col=3;break;recieve=key_valuerowcol; 175.3 显示模块流程图LCD 显示模块的软件设计主要包含开始、初始化 LCD、清除 LCD、写 LCD 四个过程。其中写包含写数据和写字符。写数据的部分程序:/写数 (5 位数据)void printf_

20、data(uchar row,uchar col,uchar count,uint dat)uchar sh1,sh2,sh3,sh4,sh5;sh5=dat/10000;sh4=dat%10000/1000;sh3=dat%1000/100;sh2=dat%100/10;sh1=dat%10;write_adr(0x0c);switch(row)case 1:row=0x80;break;case 2:row=0xc0;break;default:break;write_adr(row+col-1);delay(500);if(count=5)write_data(sh5+48);if(co

21、unt=4) write_data(sh4+48);if(count=3)write_data(sh3+48);if(count=2) write_data(sh2+48);if(count=1)write_data(sh1+48);写字符的小程序为:/写一段字符void printf_char(uchar row,uchar col,uchar Inbuffer31)uchar i;write_adr(0x0c);switch(row)18case 1:row=0x80;break;流程图 5-3 如下:初始化 LCD开始清除 LCD写 LCD结束图 5-3 显示模块流程图5.4 修改密码流

22、程图修改密码模块主要是在输入密码正确之后,按下 14 键即是修改密码键就能进入修改密码界面,其流程分为四个步骤,分别为按下 14 键并启动定时、输入修改的密码、按下确认键 11 键、LCD 的显示。修改密码的部分程序如下:/改密码void ch_word(void)unsigned char recieve=0xff,b10,j=0;LCD_CLR();printf_char(1,1,“new_password%d“);while(recieve!=11)recieve=keypad();delay(10000);if(recieve=0)bj=recieve;printf_data(2,j+

23、1,1,recieve);j+;else if(recieve=12)19if(j!=0) aj=0;printf_char(2,j,“ %d“); j-; 流程图如图 5-4 所示:按下 14键启动定时输入密码存入缓冲按下确认1111 键比较密码调用 LED调用显示图 5-4 修改密码流程图5.5 开锁和报警模块流程图开锁和报警模块主要任务是把从键盘输入到单片机的密码和本身保存在单片机中的密码进行对比,如果正确就开锁,如果错误的话就进行计数并显示在LCD 液晶显示屏上,当输入密码的错误次数达到 3 次就进入报警模式,启动蜂鸣器报警。其流程图如图 5-5 所示。20图 5-5 报警流程图216

24、 电子密码锁的系统调试及仿真6.1 硬件电路调试及结果分析硬件调试首先检查电路板焊接是否有误,检查有是否出现虚焊、漏焊、线路短接、元器件引脚是否错误焊接等等问题,然后检查电路中某些元器件是否起作用,最后利用一些小程序测试 LCD1602 是否完好无损。检测单片机是否工作可通过观察示波器显示的波形是否衰减,或者利用万用表测一下 18,19 脚的电压,应该有个 2-3V 就说明起振了,另外,ALE 如果有信号或者有电压也说明单片机工作了。我采用利用万用表侧 18、19 脚的电压,其结果显示为 2.3V。检测电路有无虚焊可用万用表的二极管档来检测,当把万用表的红黑两表笔接触在焊接线路的两端后,万用表

25、发出声音,则说明没有虚焊。检查电路是否短路也是利用同一原理。6.2 软件调试及功能分析软件调试即是把已经写好的 C 语言程序载入到软件调试工具,检查软件是否有设法错误,再根据软件提示对本程序进行修改,直到没有错误再生成单片机能运行的机器码,再用 51 开发板或其它单片机写入工具把机器码写入单片机进行实际的程序调试,根据实际情况再对程序的不足加以修改,直到满足设计要求。本设计采用 Proteus 和 KEIL 软件进行仿真、调试,首先在在 Proteus 软件上进行硬件电路的描绘,其次在 KEIL 软件编写电子密码锁的源程序,源程序经过汇编后产生 Hex 文件,最后将生成的目标文件添加到单片机中

26、仿真调试。6.2.1 调试过程首先打开 KEIL C51 主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成 51 单片机可执行的 HEX 文件。然后用与 51 开发板相匹配的写入软件把 HEX 文件写入单片机。22图 6-1 KEIL c51 调试介面图 6-2 程序写入界面6.2.2 仿真结果分析当系统通电进入初始化状态后,LCD 显示屏会显示 Welcome,结果如图 6-3所示。图 6-3 系统初始化23当进入输入密码阶段时,依次按下按键上的数字键 1,2,3,4,5,6 后,LCD 显示屏显示如图 6-4 所示。图 6-4 输入密码阶段仿真图当

27、按下确定键 11 键后,显示屏上显示正确且二极管灯亮,表示密码正确开门,如图 6-5 所示。图 6-5 输入密码正确时仿真图按下确认键后,二极管不亮且显示屏上显示 Error,表示密码输入错误,门的锁不会打开。如图 6-6 所示。图 6-6 输入密码错误仿真图当需要修改密码时,只需按下 14 键即可进入到修改密码界面,修改成功后显示 success,修改错误后显示屏会显示 fail。图 6-7 修改密码仿真图24图 6-8 修改失败仿真图6.3 仿真全图图 6-9 仿真全图257 结论本次设计通过硬件电路设计、软件编程、硬件调试、软件调试以及系统调试完成了设计要求,达到了设计目的。本次设计最终

28、的结果如下: 电子密码锁通过键盘能成功进行输入密码; LCD 液晶显示屏上能显示输入的密码; 能判断输入的密码是否正确并且能显示判断结果; 能在密码输入正确后开门; 能在密码输入错误次数达到三次以上后进行报警; 能在开门后通过一按键对原有密码进行更改; 能用*代替显示输入的密码数字,隐藏了密码,这实现了密码保护。但是在实现上述功能时,也存在许多不足。第一,在密码输入正确时除了要使代表电磁吸合器的发光二极管发光以外,还应该加上语音模块,提示门开,这样更人性化一些。第二,密码输入错误次数小于三次时,也应该采取措施提醒。第三,密码修改部分,本次设计实现的不是很好,密码能进行修改但是只能修改第一个密码

29、。第四,本次设计的电子密码锁,安全方面还可以提高进步。本设计中的报警系统只是一个简单的系统,要应用于实际生活还需要进一步改进。电子锁是信息化时代发展的产物,应时而生,我相信随着科技的不断发展,将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。本次设计中还有待完善的地方还很多。首先,修改密码可进一步完善,实现有不管多少户住户和多少个密码,都能修改密码。其次,也是最重要的安全防问题,报警途径很多,有视屏监视和发出报警声提醒值班的保安等等。未来,电子密码锁需要大面积占据市场首先必须要突破的就是安全问题,如果解决了这个问题,电子密码锁就能在锁的行业所向披靡。最后本次设计还可以精进的地方就是输入

30、密码错误时的处理方法。在输入密码错误次数在三次以内时,也应该采取措施。比如禁止输入三秒或者也用发声模块提醒,只要发声频率不一致就可区分。26参 考 文 献1 余永权,汪明慧,黄英.单片机在控制系统中的应用M.北京:电子工业出版社,20092 周润景,张丽敏,王伟.Altium Designer 原理图与 PCB 设计M.北京:电子工业出版社,20093 蒋同泽.现代移动通信系统M.北京:电子工业出版社,19984 张毅刚.单片机原理及应用M,北京:高等教育出版社,20035 张云.基于 GSM 的短消息业务协议分析J.北京:电子工业出版社,20016 刘法治.常用电子元器件及典型芯片应用技术M

31、,北京:机械工业出版社,20077 张迎.单片微型计算机原理、应用及接口技术M.国防工业出版社.2007.18 石东海.单片机数据通信技术从入门到精通M.西安电子科技大学出版社.2007.227附录:PCB 布局:28/*功能键S6-S15 数字键 0-9S16-更改密码 S17-更改密码完毕后确认S18-重试密码、重新设定 S19-关闭密码锁初始密码:000000 密码位数:6 位注意:掉电后,所设密码会丢失,重新上点时,密码恢复为原始的000000与 P1 相连的 8 位发光 LED 点亮代表锁被打开;熄灭代表锁被锁上程序功能:1、开锁:下载程序后,直接按六次 S7(即代表数字 1) ,8

32、 位 LED 亮,锁被打开,输入密码时,六位数码管依次显示小横杠。2、更改密码:只有当开锁(LED 亮)后,该功能方可使用。首先按下更改密码键 S16,然后设置相应密码,此时六位数码管会显示设置密码对应的数字。最后设置完六位后,按下 S17 确认密码更改,此后新密码即生效。3、重试密码:当输入密码时,密码输错后按下键 S18,可重新输入六位密码。当设置密码时,设置中途想更改密码,也可按下此键重新设置。4、关闭密码锁:按下 S19 即可将打开的密码锁关闭。推荐初级演示步骤:输入原始密码 000000-按下更改密码按键 S16-按 0 到 9 设置密码-按 S17确认密码更改-按 S18 关闭密码

33、锁-输入新的密码打开密码锁*/#include#define uchar unsigned char#define uint unsigned intuchar old1,old2,old3,old4,old5,old6; /原始密码 000000uchar new1,new2,new3,new4,new5,new6; /每次 MCU 采集到的密码输入uchar a=16,b=16,c=16,d=16,e=16,f=16; /送入数码管显示的变量uchar wei,key,temp;bit allow,genggai,ok,wanbi,retry,close; /各个状态位sbit dula=

34、P26;29sbit wela=P27;sbit beep=P23;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40;void delay(unsigned char i)uchar j,k;for(j=i;j0;j-)for(k=125;k0;k-);void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)dula=0;P0=tablea;dula=

35、1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=tableb;dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);P0=tablec;dula=1;dula=0;P0=0xfb;wela=1;wela=0;delay(5);30P0=tabled;dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(5);P0=tablee;dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(5);P0=tablef;dula=1;dula=0; P0=0xdf;wela=1;wela=0;delay(5);void keyscan()P3=0xfe;temp=P3;temp=tempif(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xee:key=0;wei+;break;case 0xde:key=1;wei+;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报