《AT89C51单片机设计液晶液晶显示密码锁设计.doc》由会员分享,可在线阅读,更多相关《AT89C51单片机设计液晶液晶显示密码锁设计.doc(40页珍藏版)》请在三一办公上搜索。
1、液晶显示密码锁设计【摘要】利用AT89C51单片机设计液晶1602LCD显示密码锁,采用矩阵式键盘设置密码,能显示输入的密码,能对密码进行判别并进行相应操作,第一行显示固定密码,password1001学号,第二行显示提示输入密码,Input password!,密码输入完毕后能有正确(Right Open)或者错误(Wrong Retry)的判别显示。工作学习过程要求:1.矩阵键盘及液晶显示工作原理及控制应用知识和案例学习,画出电路图,流程图,编写源程序2.运行验证:加载程序运行演示。关键词AT89C51 1602LCD 密码Liquid crystal display (LCD) comb
2、ination lock designAbstaract: With AT89C51 microcontroller ,I design LCD 1602LCD to display the password lock, and using matrix keyboards to set a password, it can display the entered password and distinguish the password and make the appropriate actions.The first line displays a fixed password”pass
3、word1001”, and the second line displays a prompt to enter a password”Input the password!”.The password after you have entered will be discriminated and show “the correct (Right Open) “or “errors (Wrong Retry)” . Learning process: 1.After studying the matrix keyboard and LCD working principle and con
4、trol of application knowledge and cases, drawing the circuit diagram, flowchart,ang writing source. 2. verification: loader running ang showingKeywords: MCU AT89C51 1602 LCD password目 录第一章 绪论11.1选题背景11.2目标效果2第二章 系统总体设计32.1 方案分析与选择32.2系统结构设计6第三章 硬件电路设计73.1AT89C51单片机简介73.2LCD1602简介113.3矩阵键盘输入简介。133.4
5、AT24C02简介143.5晶振电路153.6复位电路163.7系统总原理图17第四章 软件程序设计174.1主程序18第五章 系统的安装调试与运行225.1本设计使用Keil Vision进行程序的调试和使用以下是Keil Vision225.1.1 Keil Vision软件的介绍225.1.2 Keil Vision软件的操作使用225.2 proteus进行电路仿真,proteus的介绍和使用.275.2.1 proteus的介绍275.2.2 proteus的使用285.3基于at89c51的控制板焊接的注意事项305.3.1 手工焊接的基本概述305.3.2 焊接材料的物理特性30
6、5.3.3 手工焊接遇到的主要问题及成因分析30致谢36参考文献37附录38 第一章 绪论1.1选题背景随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。电子密码锁是由电子电路控制锁体的新型锁具,它采用触摸键盘方式输入开锁密码,操作方便。触摸式电子锁的输入部分采用触摸开关(键盘输入),其优势在于传统的机械开关之出在于其保密性高,使用灵活性好,安全系数高,无活动零件,不会磨损,寿命长等受到了广大用户的亲呢。出于安全、方便等方面的需要许多电子密码锁已相继问世。在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。其性
7、能优点有:(1).保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。(2)密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。(3)误码输入保护。当输入密码多次错误时,报警系统自动启动。(4). 电子密码锁操作简单易行,一学即会。(5).干扰码功能 在输入正确密码前可输入任意码。(6).安保功能如果连续输错4次密码将会自动断电3分钟。(7).紧急开启功能(Panic Open)出门时无需其他操作,只需一次的把手动作,可机械的开启门,所以遇到火灾等应急状况下也迅速,安全的开启门。(8).入侵感应功能在门上锁的状态下,有人破锁而入时,会发出强力的报
8、警音。(9).火灾报警功能在室内如果温度达到75左右,将会发出强力的报警音,同时锁会自动开启。(10).双重锁定功能外部强制锁定:在内部不能开启,适用于外出时,防止有人入侵。内部强制锁定:在外部不能开启,让您在家时更安心、安全。第 1 页电气信息工程学院(11).弱电提醒当电量不足时,在启动开门时,会有美妙的音乐提示您及时更换电池。(12).自动上锁功能采用全自动锁芯,门关后6秒内自动上锁,外出更加安全。(13).外部显示功能当密码输入错误,锁舌没正常锁到位,室内反锁,弱电等情况下,外部都有提示功能。1.2目标效果 以MC-S51单片机为主控芯片与外围电路以及通用程序一起组成电子密码 锁系统,
9、实现以下功能:(1).正确输入密码时,能够打开锁并显示密码输入正确 (2). 密码输入错误时,显示密码输入错误并返回输入界面,提示重新输入(3).当密码输入错误次数达到3次时自动锁定键盘(4).设定密码须确认密码一次,更改密码是要先输入就密码才能更改第二章 系统总体设计2.1 方案分析与选择方案一: 采用数字电路控制。数字电路是用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二值数据的数字电路。其特点有:1
10、、 同时具有算术运算和逻辑运算功能数字电路是以二进制逻辑代数为数学基础,使用二进制数字信号,既能进行算术运算又能方便地进行逻辑运算(与、或、非、判断、比较、处理等),因此极其适合于运算、比较、存储、传输、控制、决策等应用。2、 实现简单,系统可靠以二进制作为基础的数字逻辑电路,可靠性较强。电源电压的小的波动对其没有影响,温度和工艺偏差对其工作的可靠性影响也比模拟电路小得多。3、 集成度高,功能实现容易集成度高,体积小,功耗低是数字电路突出的优点之一。电路的设计、维修、维护灵活方便,随着集成电路技术的高速发展,数字逻辑电路的集成度越来越高,集成电路块的功能随着小规模集成电路(SSI)、中规模集成
11、电路(MSI)、大规模集成电路(LSI)、超大规模集成电路(VLSI)的发展也从元件级、器件级、部件级、板卡级上升到系统级。电路的设计组成只需采用一些标准的集成电路块单元连接而成。对于非标准的特殊电路还可以使用可编程序逻辑阵列电路,通过编程的方法实现任意的逻辑功能。优点:1.稳定性好。数字电路不像模拟电路那样易受噪声的干扰。2.可靠性高。数字电路中只需分辨出信号的有与无,故电路的组件参数,可以允许有较大的变化(漂移)范围。3.能长期存储。数字信息可以利用某种媒介,如磁带、磁盘、光盘等进行长时期的存储。4.便于计算机处理。数字信号的输出除了具有直观、准确的优点外,最主要的还是便于利用电子计算机来
12、进行信息的处理。5.便于高度集成化。由于数字电路中基本单元电路的结构比较简单,而且又允许组件有较大的分散性,这就使我们不仅可把众多的基本单元做在同一块硅片上,同时又能达到大批量生产所需要的良率。缺点:1.数字电路实现成本太高2.数字电路的灵活性较差3.控制的准确性差方案二: 采用以AT89C51为核心的单片机控制方案 1.可行性研究:随着科学技术的不断提高,人们对日常生活中的安全防盗器件的要求越来越高。传统的机械式钥匙由于安全性能差,携带不便等缺点,在当今社会已不能满足人们对安防的需要,随着单片机的问世,出现了带微处理器的电子密码锁,下面为基于单片机的电子密码锁的可行性分析。1) 技术可行性这
13、种电子密码锁采用AT89S51单片机作为主控芯片,单片机具有灵活的编程设计和丰富的I/O端口,比较准确控制,能较好地实现密码锁的功能。采用低功耗CMOS型E2PROM AT24C02作为数据存储器单元,储存密码,增强了密码的安全性。原始密码可由汇编语言设定为6位,用户可由外围电路键盘输入,输入信息由数码管显示,且用户在开锁后可以自行修改设定密码1-2。实现这些功能,在技术上十分可行。2) 经济可行性电子密码锁虽然在技术和性能上都有大大的提高,但其所用元器件较少具有易操作、功耗低、成本低的优点。比近年来出现的成本较高的智能密码锁更易普及的推广,电子密码锁必当成为目前市场上的主流产品。3) 用户分
14、析:从密码锁的发展现状来看,机械密码锁通常包含复杂的机、电功能组件,需借助先进的制造技术与装配工艺,制造周期长、成本高。卡片式密码锁是卡片设备,易磨损,寿命较短,卡片容易复制,不易双向控制,且易消磁,以致无效2-3。指纹密码锁从使用是否方便的角度看,对安装环境和使用者的要求很高,同一个人,在指纹划伤时,就无法开锁。所以用户需要便用方便、性能稳定而又价格低廉的密码锁,无疑基于单片机的保密码性好的电子密码锁将是用户最好的选择。电子密码锁相对来说市场会更大,消费群体更广。2.优势特点(如图)优势使用方便价格低廉性能稳定键盘输入密码密码正确开锁自行修改密码密码掉电储存电源切换节电显示所用元器件少图2-
15、1 AT89C51优势特点的为了提高电子密码锁的安全性、降低功耗和成本,采用AT89S51单片机作为主控芯片,结合外围的按键电路、显示电路、报警电路、存储电路以及开锁电路,设计出一款可以多次更改密码的密码锁。 2.2系统结构设计整个系统是以AT89C51单片机为核心,以几个外围电路为辅的,其中密码存储部分是输入输出双向结构,保证密码可以掉电保存,上电后读出。电源、矩阵键盘单向输入或输出。电源部分为整个系统供电,采用5V直流电源。键盘输入部分采用4*4矩阵行列键盘,需不断扫描检查有无按键按下。复位部分提供手动复位功能,当系统发生异常或未知错误时可以由用户手动复位单片机。晶振部分是提供外部石英晶体
16、谐振器。系统输出有:液晶显示部分,为用户显示字符提示当前操作状态。以及密码正确的提示音,错误的警告音等。开锁电路部分、单片机、密码存储、开锁部分、液晶显示、电源、键盘、复位、晶振 图2-1 系统结构图 是控制继电器,当液晶显示屏上出现Input password!表示输入,只有液晶显示屏上出现Right open !密码正确并选择开锁后,表示显示锁已打开,当液晶显示屏上出现Wrong Retry!表示密码错误!图2-2 AT89C51的系统结构本设计利用AT89C51单片机设计液晶1602LCD显示密码锁,采用矩阵式键盘设置密码,能显示输入的密码,能对密码进行判别并进行相应操作。其特点如下:1
17、、采用了专业学习中的重要知识单片机,设计开发基础较好,也能对所学习的知识具有全面的提高。AT89C51设计密码输入正确输入错误图2-3 AT89C51设计思路第三章 硬件电路设计根据上面的结构设计思路,具体设计中选用一块20cm*10cm的通用PCB板做为系统焊接板。单片机为AT89S51,电源部分为直流4.5V,3节5号电池供电,实验时也可以用直流5V电源供电。键盘输入部分为4*4矩阵薄膜键盘,不需上拉电阻,但扫描时需先给行线或列线供电。液晶显示器选用1602,可以显示两行,每行16个字符。密码存储选用串行AT24C02芯片,256B空间,足够存储密码,采用串行传输可以极大减少连线数目。系统
18、原理电路图如图所示。下面按系统的结构具体介绍一些电路及其所用的芯片。3.1AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3-1 AT89C51引脚图及实
19、物图1主要特性:l与MCS-51 兼容 、4K字节可编程闪烁存储器、寿命:1000写/擦循环、数据保留时间:10年、全静态工作:0Hz-24Hz、三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路 2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校
20、验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P
21、2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1
22、(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲
23、。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编
24、程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2LCD1602简介在单片机系统中应用晶液显示器作为输出器件有以下几个优点: 显示质量高 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 数字式接口 液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。 体积小、重量轻 液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。 功耗低 相对而言,液晶显示
25、器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。液晶显示原理 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 液晶显示器的分类 液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动
26、(Active Matrix)三种。 液晶显示器各种图形的显示原理图3-2 液晶显示器实物图1602字符型LCD通常有14条引脚线其功能如表3-1所示 表3-1 LCD1602引脚功能表引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3VEE液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使
27、能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4低4位三态、 双向数据总线 4位12DB5低4位三态、 双向数据总线 5位13DB6低4位三态、 双向数据总线 6位14DB7低4位三态、 双向数据总线 7位(最高位)(也是busy flag)表3-2 寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据3.3矩阵键盘输
28、入简介。 矩阵键盘。 其中矩阵键盘是一种比较常用的方法。矩阵键盘的电路图如下 图3-3 矩阵键盘电路图 矩阵式键盘由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化单片机通过检测行或列线上的电平变化可以确定哪个按键被按下。矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。矩阵键盘的检测方法有多种,常见的有,逐点扫描法、逐行扫描法、全局扫描法。在本实例中我们采用逐行扫描法来实现按键检测,其中PD0-PD3作为列线PD4-PD7作为行线。识别过程如下1、 判断键盘中是否有键按下。设置所有行线为输出口,并输出低电
29、平,设置列线为输入口,读取列线上的电平状态,只要有一列的电平为低,就表示有按键按下,并且被按下的键位于电平为低的列线与4跟行线相交叉的4个按键中,若所有列线都为高电平,表示没有按键按下。 2、判断被按下按键所在的位置。在确认有键按下后,进行按键消抖处理后,接下来就是确定具体哪个案件被按下,方法是:依次将每根行线设置为输出口,并输出低电平,同时剩余行线输出高电平,然后逐列检查每根列线的电平状态,若某列为低电平,则该列线与设置为输出低电平的行线交叉处的按键就是被按下的按键。 3、按键位置确定后,接下来就要给矩阵键盘中的每个按键进行编号,也就是进行按键编码,程序设计中常用计算法和查表法两种方式对按键
30、进行编码,本实例采用计算法编码。从上面的电路图中我们可以看到,键盘的所有行线和列线都接了上拉电阻,这是为了确保在没有按键按下的时候,I/O口的电平状态始终为高电平,从而消除外界干扰。对于AVR单片机来说我们已经知道在I/O口输入状态下,可以使能其内部上拉电阻,所以上面电路图中连接4根列线的上拉电阻可以不用,直接使能内部上拉电阻即可。 3.4 AT24C02简介概述AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保
31、护功能SCL 串行时钟AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDA 串行数据/地址AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。 A0、A1、A2 器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A
32、2 )必须连接到Vss。 WP 写保护如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作图3-4 wp的实物及电路图 3.5晶振电路单片机本身是一个复杂的同步时序电路,为保证同步工作方式的实现,必须提供时钟信号,以使其系统在时钟信号的控制下按时序协调工作。单片机的时钟电路由振荡电路和分频电路组成,其中振荡电路由反向器以及其并联外接的石英晶体和电容构成,用于产生振荡脉冲。而分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。 晶振是晶体振荡器的简称,它用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡
33、。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。电路中的晶振即石英晶体振荡器,它与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。 如图3-17所示,AT89S52芯片中的高增益反向放大器输入端为引脚XTAL1,输出端引脚为XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(一般取30pF)。这两个电容叫晶振的负载电容,它是根据晶振厂家提供的晶振要求负载电容选值的;换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差,也能保证温漂等误差图3-5 晶振电路图3.6复位电路为确保系统中电
34、路稳定可靠工作,复位电路是必不可少的一部分。无论是哪种类型的单片机,用户在使用时都必须设计复位电路,以提高单片机在强磁场、电源尖峰等强干扰环境下的工作稳定性或实现从误操作中正确恢复初试状态。如果复位电路可靠性较差,将直接影响到整个单片机系统工作的稳定性,造成系统调试成功后出现死机或“程图3-14 密码存储电路图 图3-15 键盘输入电路图程序跑飞”等现象。 单片机复位是使CPU和系统的其他功能部件都处在一个确定的初试状态,并从这个状态开始工作,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。完成复位操作共需24个状态周期,复位结束后,单片机从地址0000H开始执行程序。000
35、0H0002H是系统的启动单元,而0003H002AH是程序存储器中的特殊保留单元,所以一般在启动单元中存放一条无条件转移指令,以便直接转去执行指定的应用程序。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防止复位开关闭合过程中引起的抖动而影响复位。图3-16所示的复位电路可以基本实现上述功能,该电路在最基本的复位电路基础上增加了一个手动复位开关,当人为按下按钮时,则Vcc的高电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以完全能够满足复位的时间要求。 图3-6 复位电路图3
36、.7系统总原理图在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602。其系统总原理图图3-7 系统总原理图第四章 软件程序设计系统的软件设计采用C语言编码。设计方法是先用文本编辑器编写源码,然后用软件Keil C51编译,如果没有错误,可连接生成.HEX格式的文件(需事先在Keil C51中设置)。如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便于修改。当然也可以直接在Keil中编码。 生成的HEX文件是记录文本
37、行的ASCII文本文件,在HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用HEX文件。 在Keil中生成的HEX文件需要烧写到单片ROM中,系统上电运行后才能看出程序运行的实际效果。烧写需要的设备是烧写器和配套软,将单片机引脚放入烧写器并卡紧,打开烧写器,打开软件,选定单片机的型号,AT89C51。烧写之前需擦除ROM内原有的内容,然后载入上面生成的.HEX文件,完成后校验,无误后即可关掉烧写器,取下单片4.1主程序图4-1 程序结构图#include /包含头文件,一般情况不需要
38、改动,头文件包含特殊功能寄存器的定义#include#include1602.h#includedelay.h#includekeyboard.hunsigned char code password8=1,0,0,1,1,0,0,7;/可以更改此密码做多组测试/*- 主程序-*/main() unsigned char num,i,j; unsigned char temp8; bit Flag;LCD_Init(); /初始化液晶屏 DelayMs(10); /延时用于稳定,可以去掉 LCD_Clear(); /清屏 LCD_Write_String(0,0,password1001101
39、0); /写入第一行信息,主循环中不再更改此信息,所以在while之前写入 LCD_Write_String(0,1,Input password!); /写入第二行信息,提示输入密码while (1) /主循环 num=KeyPro(); /扫描键盘 if(num!=0xff) /如果扫描是按键有效值则进行处理 if(i=0) /输入是第一个字符的时候需要把改行清空,方便观看密码 LCD_Write_String(0,1, );/清除该行 if(i8) /密码是8位,大于8位时不再输入按键值 tempi=num; LCD_Write_Char(i,1,num+0); i+; /输入数值累加i
40、f(i=9)/8位后的按键不输入数值,相当于确认按键(任意按键即可) i=0; /计数器复位 Flag=1;/先把比较位置1 for(j=0;j8;j+)/循环比较8个数值,如果有一个不等 则最终Flag值为0 Flag=Flag&(tempj=passwordj);/比较输入值和已有密码 if(Flag)/如果比较全部相同,标志位置1 LCD_Write_String(0,1,Right Open!);/密码正确显示的信息 else LCD_Write_String(0,1,Wrong Retry!);/密码错误,提示重新输入 第五章 系统的安装调试与运行5.1本设计使用Keil Visio
41、n进行程序的调试和使用以下是Keil Vision 5.1.1Keil Vision软件的介绍KeilVision是目前较为流行和优秀的MCS-51系列单片机软件集成开发环境(IDE),集成了文件编辑、编译连接、项目管理和软件仿真调试等多种功能。要使用Keil软件,必须先安装它。对于学习者,下载一份能编译2KB程序的DEMO版软件,基于可以满足一般人的个人学习和小型应用的开发。优点:Keil C51通过编找出错误的,修改错误比较容易理解。在开发大型软件时更能体现高级语言的优势;与汇编相比,C语言在功能上、可以读出的性质,条理的性质、可行的性质上有明显的优势,因而简单的学习简单的用。用过汇编语言
42、后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试,全Windows界面。 5.1.2 Keil Vision软件的操作使用 1)安装好了Keil软件以后,我们打开它,打开以后界面如下:图5-1-1启动Keil Vision软件图5-1-1 Keil Vision软件的操作使用2)我们先新建一个工程文件,选择工程文件要存放的路径 ,输入工程文件名,.:图5-1-2xuyan 最后单击保存3)在弹出的对话框中选择 CPU 厂商及型号Atmel图5-1-3 CPU 厂商及型号Atmel4)选择好 Atmel 公司的 AT89c51 后 , 单击确定图5-1
43、-4 选择好 Atmel 公司的 AT89c515)新建一个 C51 文件 , 单击左上角的 New File 如下图所示 图5-1-5 新建一个 C51 文件6)在出现的对话框中输入(注意后缀名必须为.C) “图5-1-6保存文件名xuyan.c7)存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group Source Group 1选择要加入的文件 , 找到 xuyan.c后 , 单击 Add, 然后单击 Close 图5-1-7 把文件加入工程8)生成 .hex 烧写文件,先单击Options for
44、Target,修改晶振频率为12.0图5-1-8HEX文件9)单击 Output, 选中 Create HEX F。再单击“确定”。图5-1-9 设置目标属性5.2proteus进行电路仿真,proteus的介绍和使用. 5.2.1 proteus的介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者
45、的青睐 。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。5.2.2 proteus的使用图5-2-1启动PROTEUS图5-2-2新建新的文件图5-2-3添加元器件图5-2-4 proteus的仿真图5.3基于at89c51的控制板焊接的