欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)基于AT89C51单片机密码锁设计.doc

    • 资源ID:3978624       资源大小:3.31MB        全文页数:34页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)基于AT89C51单片机密码锁设计.doc

    摘要本毕业设计介绍了基于单片机电子密码锁的设计,该设计硬件主要由AT89C51最小系统、矩阵电路、LCD显示电路、电源电路和报警电路等几部分组成。软件主要由C语言编程。该密码锁由单片机技术,通过矩阵电路设置、修改密码、保护密码,并由LCD显示密码输入,从而实现对密码的设置、保护。关键词:AT89C51单片机; 密码; 报警; LCD Abstract The graduation design introduced electronic locks based on single chip design, this design hardware mainly by AT89C51 minimum system, the matrix circuit, LCD display circuit, the power supply circuit and alarm circuit to wait for a few parts. Software is mainly by the C programming language. This combination lock by single chip microcomputer, set up by the matrix circuit, cipher amending and password protection, and the LCD display password input, so as to achieve the password set, protectionKeywords: at89c51SCM; Password; Alarm;LCD目录1 绪论.11.1 密码锁的背景及意义.11.2 电子密码锁的发展趋势.11.3设计方案的确定.21.3.1 系统的内容及具体要求.21.3.2 总体方案的选定.22 系统组成与原理图.32.1 系统的组成.32.2 系统工作原理.43 系统硬件设计.53.1 AT89C51的简介.53.1.1 主要参数.53.1.2 引脚功能说明.63.1.3 单片机最小系统.83.1.3.1晶振时钟电路.83.1.3.2复位电路的.93.2 液晶显示器LCD的简介.103.3 电源电路的.113.4 矩阵键盘.123.5 LCD显示电路.133.6 报警电路的.144 系统软件设计.15 4.1 软件设计的方框图.154.2 系统程序.165 总结与展望.26参考文献.27附录.28附录一.28附录二.29致谢.301 绪论1.1 密码锁的背景及意义 伴随着现在电子技术和科学技术的快速发展,随着单片机性能不断完善,性能价格比也随着显著提高,技术日趋完善。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因此在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,检验并提高大学生对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。随着科技水平的提高和人们安全意识的加强,对安全和个人的隐私的要求也就越来越高。机械锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。伴随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。1.2 电子密码锁的发展趋势现在,电子密码锁使用于各个领域,尤其在国民建设,和军事领域具有突出贡献。现在的密码锁内的信息包括了数字、字符、图形图像、人体生物特征和时间等,对电子锁的要求也越来越高。电子技术必是各国发展的优先技术。1.3 设计方案的确定1.3.1 系统的内容及具体要求(1) 共设置8位密码,每位密码值范围0-9;(2) 用户可以自行设定和修改密码;(3) 按每个密码键时都有声音提示;(4) 开锁密码连续错3次需报警30S,报警期间输入密码无效,以防止窃贼多次试探密码。1.3.2 课题方案的选定方案一:采用数字电路控制 采用74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过3秒(一般情况下,用户不会超过3秒,若用户觉得不便,还可以修改)电路将报警60秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。方案二:采用一种是用以AT89C51为核心的单片机控制方案选用单片机AT89C51 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用,外接蜂鸣器用于输错三次密码报警,发光二级管用于提示作用。因为此方案灵活多变,灵活性好,内容丰富且保密性强、还具有扩展功能。因此选择者方案。2系统的组成及原理图2.1 系统的组成如图1所示系统框图:主要由电源电路、矩阵电路、单片机最小系统、报警电路、显示电路等几部分组成。其中矩阵电路用于输入数字的密码和进行各种功能的实现。可以通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。LCD则是显示密码的输入进程的,输入正确则会显示开锁成功,同时发光二级管灯亮。电源电路提供电压电流保证。从而使系统电路顺利工作。图1 系统原理方框图 2.2 系统工作原理如图2所示电路原理图,是以单片机为主要控制中心,外部连接LCD1602,矩阵键盘电路,电源电路,报警电路,复位电路等。其中P3.0P3.7口接矩阵键盘电路,XTAL1和XTAl2接晶振电路,P2.0口接报警电路,P0口接LCD显示电路,RST接复位电路。每个电路都是由单片机控制,从而实现系统的功能。图2 电路原理图 3 系统硬件设计3.1 AT89C51单片机系统At89c51是美国公司atmel在1944年以EEPROM技术与Inter公司的80C51内核的使用权进行交换,然后将flash技术与80C51内核相结合,形成了片内带有flash存储器的AT89C51系列的单片机。AT89C51单片机继承了原来单片机的原有功能,而且完全兼容。并且在此基础上增加了一些新的功能,如看门狗定时器WDT、ISP(在系统编程也叫在线编程)及SPI串行接口技术等。片内flash存储器允许在线(+5)电擦除。电写入或使用编程器对其重复编程。此外AT89C51系列单片机的还有具有功耗小,价格低廉,在线的EEPROM可以实现在线编程且可以重复编程,因此受到很多单片机爱好者欢迎。 3.1.1 主要参数(1) 与MCS-51 兼容(2) 4K字节可编程闪烁存储器 (3) 寿命:1000写/擦循环 (4) 数据保留时间:10年 (5) 全静态工作:0Hz-24Hz (6) 三级程序存储器锁定 (7) 128*8位内部RAM (8) 32可编程I/O线 (9) 两个16位定时器/计数器 (10) 5个中断源(11) 可编程串行通道(12) 低功耗的闲置和掉电模式(13) 片内振荡器和时钟电路3.1.2 引脚功能说明 单片机引脚如图3所示 图3 单片机各引脚图40个引脚按其功能科分为三类:(1) 电源及时钟引脚-Vcc、GND;XTAL1、XTAL2。(2) 控制引脚-/PSEN、ALE/PROG、/EA/Vpp、RST(3) I/O口引脚-P0、P1、P2、P3、为四个8为位I/O口的外部引脚下面结合图2一一介绍各引脚的功能(1) 电源引脚(1)Vcc(40)脚:接+5V电源(2)GND(20):接地(2) 时钟引脚(1)XTAL1(19):片内振荡器反相放大器和时钟发生器电路的输入端,当使用片内振荡器时,该引脚连接外部石英晶体和微调电容,当采用外部接时钟源时,该引脚接外部的时钟振荡器的信号。(2) XTAL2(18):片内振荡器的反相放大器的输出端,当使用片内振荡器时,该引脚连接外部石英晶体和微调电容;当采用外部时钟源时、该引脚悬空。(3) 控制引脚此类引脚提供控制信号,有的引脚还具有复用功能。RST(9):复位信号输入端,高电平有效。再次引脚加上持续时间大于2个机器周期的高电平,就可以使单片机复位。在单片机正常工作时,此引脚应为小于且等于0.5V的低电平。/EA/Vpp(31):/EA为该引脚第一功能,既外部程序存储器访问允许控制端。当/EA引脚接高电平时,在PC值不超过0FFF时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。当/EA引脚接低电平时,只读取外部程序存储器中的内容,读取的地址范围为0000HFFFFH,片内的4KBFlash程序存储器不起作用。Vpp为该引脚的第二功能,既在对片内的Flash进行编程时,Vpp引脚接入编程变压。/PROG、ALE(30):ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8位地址锁存在片外的地址锁存器中。/PROG为该引脚的第二功能,即在片内Flash存储器编程时,此引脚作为编程脉冲的输入端。/PSEN(29):片外程序存储器的读选通信号,低电平有效。4.1.2.3 并行I/O引脚P0:8位,漏极开路的双向I/O口。当AT89C51扩展外部存储器及I/O接口芯片时,P0口作为地址总线及数据总线的分时复用端口。P0口也可作为通用的I/O使用,但需加上拉电阻,这时为准双向口。P1:8位,Pl 是一个带内部上拉电阻的8位双向IO口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),Flash编程和程序校验期间,Pl接收低8位地址。P2 :8位,P2 是一个带有内部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器(如执行MOVXRi 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3 :8位,P3 口是一组带有内部上拉电阻的8 位双向I0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。P3口除了作为一般的I0口线外。此外,P3口还有一些特殊功能,如下所示:1) P3.0 RXD(串行输入口) 2) P3.1 TXD(串行输出口)3) P3.2 /INT0(外部中断0)4) P3.3 /INT1(外部中断1)5) P3.4 T0(记时器0外部输入)6) P3.5 T1(记时器1外部输入)7) P3.6 /WR(外部数据存储器写选通)8) P3.7 /RD(外部数据存储器读选通)3.1.3 单片机最小系统3.1.3.1晶振时钟电路AT89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的 片外石英晶体或陶瓷谐振器一起构成自激振荡器。实现电路如图4所示 图4 晶振电路 用了两个30PF的电容,12MHZ的晶振构成内部振荡电路。3.1.3.2复位电路通常单片机的基本复位方法:一个是上电复位,一个是开关复位(也就是手动复位)本设计采用开关复位的方法。复位电路如图5所示图5 复位电路 电路由一开关,一极性电容和一电阻构成。按键后:电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”;稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。3.2 液晶显示器LCD的简介(1) LCD基本原理: 液晶体液晶板上排列着若干5×7 或5×10 点阵的字符显示位,每个显示位可显示1 个字符,从规格上分为每行8、16、20、24、32、40 位,有一行、两行及四行三类。 工作电路它由KS0066、KS0065 及几个电阻电容组成。KS0065 是扩展显示字符用的(例如:16 个字符×1 行模块就可不用KS0065,16 个字符×2 行模块就要用1 片KS0065)接口方面,有8 条数据,三条控线。可与微处理器或微控制相连,通过送入数据和指令,就可使模块正常工作。 LCD 驱动器和控制器A LCD 驱动器KS0065KS0065 是用低功耗CMOS 技术制造的大规模LCD 驱动IC。它既可当行驱动用,也可以当列驱动用,由20×2Bin 二进制移位寄存器、20×2Bin 数据锁存器和20×2Bin 驱动器组成。功能:a 40 通道点阵LCD 驱动;b 可选择当做行驱动或列驱动;c 输入/输出信号:输出,能产生20×2 个LCD 驱动波型;输入,接受控制器送出的串行数据和控制信号,偏压(V1V6);特性:a 显示驱动偏压低:静态1/5;b 电源电压:+5V+10%;c 显示驱动电源:-5V;d CMOS 处理;e 60 引脚、塑封;B LCD 控制器KS0066见图4,KS0066 是用低功耗CMOS 技术制造的大规模点阵LCD控制器(兼带驱动器),和4Bin/8Bin 微处理器相连连,它能使点阵LCD 显示大小英文字母、符号。应用KS0066,用户能有少量元件就可组成一个完整点阵LCD 系统。3.3 电源电路图6 电源电路图 如图6所示,电源电路图由变压器,二极管组成的整流电路,电容构成的滤波电路,和稳压电路等几部分组成。 变压器运用的基本原理是电磁感应原理,且是比那换交流电压、电流和阻抗的器件。变压器是由铁芯和线圈组成,线圈有两个或以上的绕组,其中接电源的那端叫做初级线圈,其余的都叫次级线圈。当电流流经初级线圈时,铁芯便会产生交流的磁场量,从而使次级线圈中产生电压或者电流。整流电路是经过变压的交流电通过时单向导电性能的整流元件,将正负交替的正弦交流电压变换为单向的脉动直流电压。但是,这种电压直流幅值变化很大,包含有很多的脉动交流成分,还不能作为直流电源使用。滤波电路一方面是利用电容器在电路中的储能作用,当电源电压增加时,电容把电能储存在电场中;当电源电压减小时,电容又把储藏在电场中的电能逐渐释放出来,另一方面电容器对不同频率有不同电抗的特性组成低通滤波电路,从而减小了输出电压中的波纹,是输出的电压的波形变得平滑。稳压电路使用的是LM7805稳压器,它由于可靠性高,精度高,电路实现简单且价格相对低廉。 3.4 矩阵键盘电路 本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。 每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。 矩阵键盘的工作原理 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。扫描原理 把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。 比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理。 由於这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键, 我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。图7为键盘整体模框图:图7 矩阵电路3.5 LCD显示电路 显示电路设计采用字符型液晶屏显示,数据端口由单片机的P0口控制,P2P4端口控制lcd的控制端口。由于P0口的驱动能力较弱,需加上10K的上拉电阻,增加驱动能力。其中第一脚VSS为电源地,第二脚VDD接电源正极,第三脚V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,地15脚接背光正极,16脚接背光负极。如图8所示图8 显示电路3.6 报警电路 报警电路如图9所示图9 报警电路 报警电路由一个PNP型的三极管和一个蜂鸣器,一个电阻组成,接单片机的P2.0脚,只要连续输错三次密码,系统就会自动报警,蜂鸣器响半分钟。蜂鸣器的正极性的一端接到+5V电源上面,另一端连接到三极管的集电极上,三极管的基极由单片机的P2.0口通过一个电阻控制,当P2.0口为低电平时,三极管截止,蜂鸣器不发出声音;当为高电平时,三极管导通,蜂鸣器的电流形成回路,发出声音。4 系统软件设计4.1 系统软件方框图 程序是从定义变量,数组和其他开始的,后对一些原件进行初始化,到那个判断这些原件初始化成功以后,可以正常工作了,然后开始设定密码并保存。然后输入密码与保存的密码做比较,如果输入错误的次数小于三次,就继续输入密码,如果大于三次,系统就会报警,且报警期间输入密码无效,起到保护密码的作用。在则报警完后,依然输入不正确,就会陷入一个循环了。输入密码正确,则开锁、灯亮。想重新设置密码,则设置保存,否则返回。图10 系统软件方框图4.2 系统程序 一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源,采用与C51系列单片机相对应的C语言和结构化程序设计方法进行软件编程。 程序设计语言有三种:机器语言、汇编语言和高级语言。本设计采用高级语言编程,C语言,语法相对简单,容易看懂。系统程序如下#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit buzzer=P20;sbit led_red=P11;sbit lcd_rs=P22;sbit lcd_rw=P23;sbit lcd_e=P24;uchar k=0;uchar n=0;uchar T1_count=0;buzzer=0;led_red=0;uchar code number_table=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;uchar code table1=" welcome to "uchar code table2="Combination lock"uchar code table36=" "uchar code table46;uchar code table5="Password success"/setuchar code table6=" Password input "/inputuchar code table7=" Set password "void lcd_init(void);/液晶初始化void delay_ms(uint ms); /12MHZ延时N毫秒void write_com(uchar com);/给lcd写指令void delay_12us(uint us);/延时12微妙void write_com(uchar com);/lcd写指令void write_data(uchar dat); /lcd写数据void display_start(void);/lcd一开始显示的void write_char(uchar x,uchar y, uchar c);/往第y行的第x+1列写字符cvoid delay_INI(uint x);void Timer_init();/定时器初始化void key();/键盘扫描void campare(void);/看温度湿度是否在上限下限之间void password();/设定密码void sweep_table3(void);/清楚密码void compare(void);/比较密码是否正确void buzzer_100ms(void); /蜂鸣器响一声void display_set(void);/显示密码设置成功void display_input(void); /输入密码提示void display_show(void)/lcd显示输入密码void display_set password(void); /设置密码提示void delay_12us(uint us)/ 延时12微妙 while(us-) _nop_() ; void write_com(uchar com)/lcd写指令lcd_e=0;lcd_rs=0;lcd_rw=0;P0=com;delay_us(400);/ 延时N微妙lcd_e=1;delay_ms(1); /12MHZ延时N毫秒lcd_e=0;void write_data(uchar dat) /lcd写数据lcd_e=0;lcd_rs=1;lcd_rw=0;P0=dat;delay_us(33);/ 延时N微妙lcd_e=1;delay_ms(1); /12MHZ延时N毫秒lcd_e=0;void delay_ms(uint ms) /延时一毫秒uchar i;while(ms-) for(i=0;i<123;i+);void lcd_init(void)/液晶初始化delay_ms(15);write_com(0x38);/设置16x2,5x7点阵,8位数据接口delay_ms(5);write_com(0x38);delay_ms(5);write_com(0x38);write_com(0x38);write_com(0x08);/显示关闭write_com(0x01);/显示清屏write_com(0x06);/写一个字符后地址指针加1write_com(0x0c);/设置开显示,不显示光标void display_start(void)/lcd一开始显示的uchar j;write_com(0x80);/放置光标的位置为第一行第一列for(j=0;j<16;j+)write_data(table2j);delay_12us(10);write_com(0xc0);/放置光标的位置为第2行第一列for(j=0;j<16;j+)write_data(table2j);delay_12us(10);void display_set(void)/显示密码设置成功uchar j;write_com(0x80);/放置光标的位置为第一行第一列for(j=0;j<16;j+)write_data(table5j);delay_12us(10);delay_ms(2000);display_input();void display_input(void) /输入密码提示uchar j;write_com(0x80);/放置光标的位置为第一行第一列for(j=0;j<16;j+)write_data(table6j);delay_12us(10);void display_set password(void) /设置密码提示uchar j;write_com(0x80);/放置光标的位置为第一行第一列for(j=0;j<16;j+)write_data(table7j);delay_12us(10);void write_char(uchar x,uchar y, uchar c)/往第y行的第x+1列写字符cif(y=0)write_com(0x80+x);else if(y=1)write_com(0xc0+x);else if(y>1)write_data(c);delay_ms(5);void display_show(void)/lcd显示输入密码 write_char(5,1,number_tabletable30); write_char(6,1,number_tabletable31); write_char(7,1,number_tabletable32); write_char(8,1,number_tabletable33); write_char(9,1,number_tabletable34); void delay_INI(uint x)uint a;a=x;while(a-);void Timer_init()/定时器初始化 TMOD=0x10;/T1作为定时器使用,模式1. TH1=(65536-50000)/256;/50ms初值 TL1=(65536-50000)%256; EA=1;/开启总中断 ET1=1;/开启定时器中断1 TR1=0;/定时器1启动void T1_Timer(void) interrupt 3/T1定时中断服务程序TH1=(65536-50000)/256;/重装处值TL1=(65536-50000)%256;/重装处值T1_count+;if(T1_count=1200)/刚好到1sTR0=0;/停止计数TR1=0;/停止定时T1_count=0;buzzer=0;void key()/键盘扫描if(buzzer=0)uchar a;uchar key_l,key_h;uchar key;P3=0xf0;key_l=P3;key_l=key_l&0xf0;if(key_l!=0xf0)delay_ms(5);if(key_l!=0xf0)key_l=P3&0xf0;/11100000key_l=key_l|0x0f;/假设11101111P3=key_l;key_h=P3;key_h=key_h&0x0f; /00001110key_l=key_l&0xf0;/11100000key=key_h+key_l;/1110

    注意事项

    本文(毕业设计(论文)基于AT89C51单片机密码锁设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开