版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.1方案设计说明1.1采用以单片机为核心的控制方案采用一种是用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,能实现基本的密码锁功能。设计思路如下:输入密码用矩形键盘,包括数字键和功能键。LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。用发光二极管代替开锁的电路,发光表示开锁。输入密码错误次数超过3次,系统报警。打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。按“C”键,清除显示器为“000000”。欲重新设定密码,先输入密码再按“*”。输入密码,再按“*”键。若密码与设定密码相同,则开门。否则显示器清为“000000”。1.2主要元器件介绍1.2.1主控芯片AT89C51AT89C51是一种低功耗,高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和系统可编程Flash,使得AT89SC51为众多嵌入式控制应用系统提供高灵活,超有效地解决方案。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[6]。芯片引脚如图1.1所示。图1.1AT89C51芯片引脚图1.AT89C51性能简介AT89C51具有如下特点:40个引脚,4K字节可编程FLASH片内程序存储器,128×8位随即存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断源,两个16位可编程定时计数器,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路[7]。2.AT89C51引脚功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表1.2。表1.2P3口的第二功能端口功能第二功能端口引脚第二功能R*D(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入T*D(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中断0WR(P3.6)外部数据存储器写选通INT1(P3.3)外中断1RD(P3.7)外部数据存储器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFRAU*R的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态[9]。EA/Vpp:外部访问允许。欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压Vpp[11]。*TAL1:振荡器反相放大器及内部时钟发生器的输入端。*TAL2:振荡器反相放大器的输出端。3.AT89C51芯片内部结构特殊功能寄存器:特殊功能寄存器的片内空间分存如下图3-2所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。中断寄存器:各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器[12]。图1.3为AU*R辅助寄存器。图1.3AU*R辅助寄存器双时钟指针寄存器:为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。图1.4为双时钟指针寄存器。图1.4双时钟指针寄存器电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。1.3晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。1.4电源的选择密码锁主控制部分电源需要用5V直流电源供电,其电路如图1.5所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压[15]。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。图1.5电源输入电路原理图2系统硬件设计说明2.1设计原理本设计主要由单片机、矩阵键盘、LED显示电路和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、键盘扫描程序、LED显示程序、密码设置程序等组成。其原理框图如图2.1所示。报警控制电路矩阵键盘报警控制电路矩阵键盘输入AT89C51单片机开锁控制电路开锁控制电路复位电路复位电路显示电路显示电路晶振电路晶振电路图2.1电子密码锁原理框图2.2电路总体构成在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择LED显示电路。其线路图2.2电路线路图2.3复位部位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从0000H取指令[16]。系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图2.3所示RC复位电路可以实现上述基本功能。图2.3复位电路线路图2.4晶振部分电路AT89S51引脚*TAL1和*TAL2与晶体振荡器及电容C2、C1按图2.4所示方式连接。晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,*围在0~33MHz之间,电容C1、C2取值*围在20~30pF之间。根据实际情况,本设计中采用12MHZ作为系统的外部晶振[17]。电容取值为30pF。图2.4为晶振电路图。图2.4晶振电路线路图2.5键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法[18]。其原理如2.5。图2.5矩阵键盘线路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照表2.6所示的4×4键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。判断哪个键被按下:将P1.0~P1.3都置低,检测P1.4~P1.7是否有低的,若有,则证明有键按下,记下低的端口。然后,将P1.4~P1.7置低,检测P1.0~P1.3是否有低的端口,如有,则证明端口与上次的一个为地的端口交叉位置的键被按下。键盘16个键布局如表2.7,0~9,ON,OFF,LOCK,*,C,*。其中ON为开启键盘键,按下此键后键盘开启;OFF为关闭键盘键,按下此键后键盘关闭;0~9为数字键,进行密码输入以及更改密码时的输入键;*键用来设置密码,当锁被打开后,此键方可有效工作,按下此键后,可以设置新密码;C为清除键,当输入密码按键错误时可以按此键后退并清除当前字符;*键作为确定键,开锁时,按下此键后进行密码比对,设置密码时,按下此键确定所输入的数字。表2.6键盘布局123ON456OFF789LOCK*0C*具体的功能设计如表2.7:表2.7按键功能按键键名功能说明0-9键数字键输入密码*键重设密码键设定新密码*键确定键比较密码C键清除键使显示器清零ON键开锁键键盘开启OFF键闭锁键键盘关闭LOCK键上锁键系统上锁2.6LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能[18]。显示电路的电路原理图如图2.8所示。用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示。图2.8LED显示电路用74LS247可以控制输出什么字型。74LS247的逻辑功能表如表2.9:表2.974LS247的逻辑功能表十进制数输入输出字型A3A2A1A0QAQBQCQDQEQFQG00000000000001000110011111200100010010230011000011034010010011004501010101100560110010000067011100011117810000000000891001000010092.7开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.1所示。当P2.0口输出低电平时,二极管发光,表示开锁。图3.1开锁电路线路图2.8报警电路报警模块由红色发光二极管和单片机组成。当AT89C51的P2.1口输出为低电平时,发光二极管发出红光。图3.2报警电路线路图3系统软件设计3.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,做出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。密码的设定,在此程序中密码是固定40H~45H 中,假设预设的密码为"123456"共6位密码。主要程序设计流程图图3.3所示。开始开始初始化初始化键盘扫描键盘扫描启动程序启动程序键功能程序键功能程序NN比较密码比较密码>3次N>3次N密码正确密码正确YY报警开锁报警开锁结束结束图3.3主程序流程图3.2各子程序设计3.2.1键盘扫描子程序键盘扫描流程图如图图键盘扫描流程图3.2.2LED显示子程序LED显示流程图如图开始开始输入键值输入键值74LS247芯片74LS247芯片送p0口输出送p0口输出图LED显示流3.2.3密码比较和报警程序密码比较和报警流程图如图密码比较和报警流程4、制作调试说明4.1建立工程文件点击“Project->NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,在编辑框中输入e*am1,不需要扩展名。点击“保存”按钮,出现第二个对话框,如图4.1所示。图4.1选择目标CPU这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,选择Atmel公司的89C51芯片。点击ATMEL前面的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面。4.1源文件的建立使用菜单“File->New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入汇编语言源程序。4.2工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边Project窗口的Target1,然后使用菜单“Project->Optionfortarget‘target1’”即出现对工程设置的对话框,这个对话框共有8个页面。设置对话框中的Target页面,如图4.1所示。图4.1对目标进行设置设置对话框中的Output页面,如图4.2所示。图4.2对输出进行控制此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图4.3所示。图4.3加入文件选中其中的“AddfiletoGroup”SourceGroup1”,出现一个对话框,要求寻找源文件,点击对话框中“文件类型”后的下拉列表,找到并选中“AsmSourceFile(*.a51,*.asm),找到e*am1.asm文件了。双击e*am1.asm文件,将文件加入项目。4.3编译、连接选择菜单Project->Buildtarget,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择RebuildAlltargetfiles将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate….项则仅对该文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直接进行。图4.4是有关编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译和对工程进行设置。图4.4有关编译、连接、项目设置的工具条编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图4.5所示的结果,提示获得了名为e*am1.he*的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。图4.5正确编译、连接之后的结果4.4调试过程中出现的问题: 1.当三次输入错误密码不能报警,后来在老师的帮助下在密码比较的地方加上一段延时程序解决。 2由于试验箱上的数码管是共阳极的,所以将原来用74LS138芯片用软件实现了。5、作品操作说明书打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。按“C”键,清除显示器为“000000”。欲重新设定密码,先输入密码再按“*”。输入密码,再按“*”键。若密码与设定密码相同,则开门。否则显示器清为“000000”。6、小结以上为电子密码锁的设计,它经过多次修改和整理,可以满足设计的基本要求。输入密码时,如三次输入错误,则进行报警,输入正确时,电子锁打开。电子锁打开时可以进行修改密码,输入错误时可以清除该密码等功能。但因为我的水平有限,此电路中也存在一定的问题。譬如说电路修改后的密码不能断电,一旦断电,就是初始密码。在此次课程设计中老师提供了许多帮助,非常感谢老师!附录源程序清单:num equ 4fhORG0000Hmov sp,*60hmov num,*0MOVR5,*00HMOVR7,*00HDJNZR7,$MOVR7,*10HMOVR6,*06HMOVR1,*35HL1:MOVA,R7MOVDPTR,*TABLEMOVCA,A+DPTRMOVR1,ADECR1INCR7DJNZR6,L1START:;ORLP2,*0FFHMOVR4,*06HMOVR0,*40HCLEAR:MOVR0,*00HINCR0DJNZR4,CLEARL2:MOVR3,*0F7HMOVR1,*00HL3:MOVA,R3MOVP1,AMOVA,P1MOVR4,ASETBCMOVR5,*04HL4:RLCAJNCKEYININCR1DJNZR5,L4CALLDISPMOVA,R3SETBCRRCAMOVR3,AJCL3JMPL2KEYIN:MOVA,R1*RLA,*0BHJZ*3MOVA,R1*RLA,*0FHJZ*4MOVR7,*10D1:MOVR6,*24DJNZR6,$DJNZR7,D1D2:MOVA,P1*RLA,R4JZD2MOVA,R1MOVDPTR,*TABLEMOVCA,A+DPTRMOVR7,A*RLA,*0AHJZSET0MOVA,R7*RLA,*0BHJZSTARTMOVA,R7*RLA,*0CHJZL2MOVA,R7*RLA,*0DHJZL2MOVA,R7*CHA,40H*CHA,41H*CHA,42H*CHA,43H*CHA,44H*CHA,45HCALLDISPJMPL2*3:JMPDISP2*4:JMPPDISP:MOVR0,*40HDISP1:MOVA,R0;ADDA,*50HMOVP0,AMOV P2,*80HCALLDELAYMOV P2,*00HINCR0MOVA,R0ADDA,*40HMOVP0,AMOV P2,*40HCALLDELAYMOV P2,*00HINCR0MOVA,R0ADDA,*30HMOVP0,AMOV P2,*20HCALLDELAYMOV P2,*00HINCR0MOVA,R0ADDA,*20HMOVP0,AMOV P2,*10HCALLDELAYMOV P2,*00HINCR0MOVA,R0ADDA,*10HMOVP0,AMOV P2,*08HCALLDELAYMOV P2,*00HINCR0MOVA,R0ADDA,*00HMOVP0,AMOV P2,*04HCALLDELAYMOV P2,*00HRETSET0:MOVR2,*06HMOVR0,*40
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班委竞选演讲稿(十篇)
- 政府会计心得体会锦集五篇
- 北京市海淀区人大附中2021-2022学年九年级上学期期中化学试题(含答案与解析)
- 建筑工人解除劳动合同协议
- 知识产权保险公司合同盖章指南
- 体育行业员工待岗协议
- 电视台公关部聘用合同
- 城市广场喷泉施工合同
- 供水管道铺设合同完整版
- 医疗机构二手房交易合同模板
- 假期补课协议书
- 电子商务支付结算系统开发合同
- 服务质量、保证措施
- (必练)广东省军队文职(经济学)近年考试真题试题库(含答案)
- 含羞草天气课件
- 2024年安全生产知识竞赛考试题库及答案(共五套)
- 22《鸟的天堂》课件
- 农业灌溉装置市场环境与对策分析
- 新疆乌鲁木齐市第十一中学2024-2025学年八年级上学期期中道德与法治试卷
- 2024年江西省高考地理真题(原卷版)
- 部编版小学五年级上册道法课程纲要(知识清单)
评论
0/150
提交评论