版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./轻工职业技术学院毕业设计<论文>姓名:你查查学号:201103021**系部:工商信息学院专业:电子信息工程技术班级:指导教师:欣老师日期:2014年5月26日
摘要本论文详细地论述了以单片机为处理器的密码锁自动控制器的硬件、软件设计和系统编程的问题。本控制器以美国ATMEL公司的AT89C52单片机为核心键盘、显示电路,输出控制电路,告警提示电路等构成。利用目前使用的微处理器AT89C52作为控制元件设计了一种电子密码锁。其具有通过键盘可设置多组密码、修改密码和保存密码的优点,克服了普通锁需要随身携带钥匙且易丢失、性差的缺点,在宾馆、办公大楼、仓库、保险柜和家庭普遍适用。关键词:AT89C52电子密码锁键盘修改密码.目录TOC\o"1-2"\h\u11069第一章引言223175第二章系统总体设计311792.1系统控制方案选择385072.2显示方案的选择4293622.3密码输入方式的选择424693第三章硬件电路设计6102793.1系统总体介绍6142883.2键盘输入模块6183093.3密码存储电路7172863.4复位电路8226773.5显示电路879093.6报警电路865043.7状态显示及继电器控制电路926548第四章软件设计1042904.1软件设计总流程图及设计方案10126584.2各模块软件实施1113510第五章仿真调试1940495.1软件调试19204955.2硬件仿真调试19230125.3调试结果2024742第六章总结215075致2218277参考文献226930附录235073附录1AT89C522320847附录2AT24C022322390附录3LCD160224.第一章引言随着人们对安全的重视和科技的发展,许多电子智能锁〔指纹识别、IC卡辨认已在国外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,所以未来的市场前景很广阔。本文介绍使用AT89C52作为电子密码锁的核心系统,在通过键盘为输入端,对系统设置的密码进行输入和修改,在经过LCD1602对输入和修改的进行显示。整个系统在仿真软件中基本实现输入正确密码开锁,输入错误密码不开锁,及对初始密码进行修改的功能。第二章系统总体设计2.1系统控制方案选择方案一:基于8D锁存器74LS373的锁存密码电路此方案采用两个8D锁存器74LS373用于存储密码和接收输入信号,两者进入比较器进行比较。共设有八个用户输入键,74LS373为密码存储器件。先将74LS373的C和OC端置低电平,使其处于送数状态。当输入密码后将OC置于高电位,则锁存器将密码信号锁存,然后按键复位。当下次开锁时只有在规定时间,规定次数输入密码才会发出开锁信号,否则不能开锁。并且,当时间或输入次数到达一定值后,电路会自锁一段时间,并发出警报声。警报结束后,电路回复原状,计时及计数归零,直至下一次开锁动作。第一部分是密码输入部分,由八个开关构成,密码输入共有28=255种输入方式〔注:从0000--1111共256种组合,但能正确开锁的输入方式只有1种,安全性较高。第二部分是由74LS373组成的密码锁存电路,通过控制74LS373的芯片管脚特性来控制芯片的工作状态。第三部分是由74LS85组成的比较器〔或者是同或门组成的比较电路,来比较输入信号与寄存密码的相等与否。第四部分是有二极管构成的开锁信号电路,黄灯处于待开状态,绿灯表示开锁正确,红灯及警报声表示开锁错误或者是锁存状态。第五部分是计时及计数部分,计时表示从准备开锁到开锁完成所规定的时间,以及锁存时期的锁存时间,计数记录的是误操作的次数。方案二:以AT89C52为核心的单片机控制方案选用单片机AT89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后可以设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。单片机具有资源丰富、速度快、编程容易等优点。利用单片机部的随机存储器〔RAM和只读存储器〔ROM及其引脚资源,外接显示器,键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,而且单片机编程设计灵活、I/O端口丰富、控制的准确性高,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制等附加功能,此外单片机方案有较大的活动空间,不但能实现所要求的功能,还能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。综上分析:方案一虽然设计简单但密码输入控制复杂、实用性不是很强,并且不能实现密码保存。而方案二设计复杂,使用方便,安全性好,功耗低,成本低,而且容易操作性强。故在此设计中,我们选用第二种方案,即利用单片机实现密码锁的控制。2.2显示方案的选择方案一:使用LCD1602进行显示由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,因此液晶显示器画质高;同样液晶屏的功率消耗比较小;液晶是平板型结构,由两片玻璃组成的夹层盒,面积可大可小,安装时占用面积小减小了设备的体积;液晶的信息量大相同的面积上与数码管比可以显示更多的信息;且他本身没有老化问题寿命极长;与数码管相比液晶屏显示的更能够看懂,他能将英文细腻的显示出来是数码管做不到的。然而液晶屏也可在下工作,具有防风、防雨、防水功能。这就说明能够使用在室外。但是液晶在强的时候会反光是视角模糊看不清楚,对于这个现象由于屏幕较小可以用手挡住是自己看的清楚一点。方案二:用数码管来显示与液晶相同也能显示数字和字母,但是在显示字母的时候没有液晶那么细腻很难辨认,而且用数码管显示一个较长的英文就会用到好几个数码管扩大了空间,就显得美观。数码管的优点是在强光下也能看清上面显示的容。综合两方案的比较用液晶显示比较合适。2.3密码输入方式的选择方案一:指纹输入识别指纹识别技术主要设计四个功能:读取指纹图像、提取特征、保存数据和对比。通过指纹读取设备读取到人体指纹的图像,然后对原始图像进行初步的处理,使之更加清晰,再通过指纹识别软件建立指纹的特征数据。软件从指纹上找到被称之为"节点"的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据通常被称之为模板。通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。方案二:矩阵键盘输入识别由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,每当一个按键按下就会由某一条行线与某一条列线接触,只要确定接触的是哪两条I/O口线,就可以确定哪一个按键被触动。行线初始置于高位,通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读取行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。方案比较:方案一虽然比较安全,不容易忘记密码但是软硬件太过复杂,很难操控且成本很高。而方案二简单易行,可以进行程序控制,成本较低。故选取方案二作为设计的输入部分。第三章硬件电路设计本系统外围电路包括键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁知识部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成。3.1系统总体介绍本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成其中矩阵键盘用于输入数字密码和进行各种功能选择的实现。由用户通过连接单片机的矩阵键盘输入密码后,经过单片机对输入密码与自己保存的密码进行比对,从而判断出密码是否正确,然后控制引脚的高低电平传到开锁电路或者警报电路控制开锁还是报警。实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁吸合线圈即可。系统整体框图如图2-1所示。AT89C52键盘输入显示电路AT89C52键盘输入显示电路报警电路报警电路密码存储模块密码存储模块复位电路开锁电路复位电路开锁电路图3-1结构框图各模块功能介绍:〔1键盘输入模块:分为密码输入按键和几个功能按键,用于完成密码锁输入功能。〔2显示模块:用于完成对系统状态显示及操作提示功能。〔3复位电路:完成系统的复位。〔4报警电路:用于完成输错密码时候的警报功能。〔5密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。〔6开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及显示。3.2键盘输入模块由于本设计所用到的按键数量较多而不适合用独立按键。采用的是矩阵式按键键盘,由行和列组成。本设计采用4×4触点式键盘,分别有数字键,确定键,清除键和干扰键。在软件设计中,通过对键盘的编程,可实现各按键功能。矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。它与单片机的连接如图<如图3-1所示>:图3-24x4矩阵键盘具体的功能设计<如表3-1所示>:按键键名功能说明1-9键数字键输入密码S1开锁键开始输入密码S2闭锁键开锁后,闭锁S3重置密码键重新设定密码清除清除键清除上一位输入确认确认键操作确认S4表3-1按键功能3.3密码存储电路由于52单片机掉电后会丢失数据存储器里的数据,因此必须外加掉电存储电路,由AT24C02芯片来实现。图3-3所示的AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址,此次电路将它们都接地。第4脚和8脚分别为电源、地线。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传输,本电路SDA与单片机P3.1相连。第6脚SCL为串行时钟输入线,与单片机P3.0相连。AT24C02芯片的管脚图〔如图3-2所示。图3-3掉电保护电路3.4复位电路复位操作完成单片机片电路的初始化,使单片机从一种确定的状态开始运行。当8XX51单片机的复位引脚RST出现5ms以上的高电平时单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求复位后能脱离复位状态。图3-4复位电路图3-4复位电路3.5显示电路显示部分由液晶显示器LCD1602完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0--9输入密码,没按下一个数字键后在显示器上显示一个"*",输入多少位就显示多少个"*"。当密码输入完成时,按下确认键,根据输入密码的正确与否,LCD上显示对应的状态。如果密码输入成功,还可进行密码重置,对应的提示信息在LCD上也会显示。通过LCD显示屏,可以清楚地判断出密码锁所处的状态。图图3-5显示电路3.6报警电路图3-6报警电路图3-6报警电路3.7状态显示及继电器控制电路状态显示及继电器控制电路,主要用于显示密码锁的开锁闭锁状态。本设计中利用两个LED灯显示,由P3.4口控制的绿色LED表示密码锁开锁状态,由P3.5口控制的红色LED表示密码锁闭锁状态。同时,利用P3.3口控制继电器的通断,实现弱点控制强电。P3.3口与P3.4口相同,表示同一含义,这样设计的主要原因是由于在电路中P3.4口外接LED,其电压无法使5V继电器工作。图3-7状态显示及继电器控制电路第四章软件设计4.1软件设计总流程图及设计方案主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如图4-1所示。图4-1密码锁总流程图开始时液晶显示初始状态。当有开锁请求时,按下S1,进入密码输入阶段。输入密码输入过程中可以进行退格,输入完成后按下确认键,系统会将所输入与系统密码进行比对。若输入密码正确则显示"******Open******"开锁,输出开锁信号,然后可以选择上锁或者修改密码。按下S2选择上锁,锁重新回到闭锁状态,开锁信号灭,LCD回到初始化状态。选择修改密码则可以对系统进行修改密码操作。在修改密码前要输入正确旧的密码。正确输入旧密码之后,会有提示输入两次新密码,若两次密码一致,则修改成功。期间操作出现失误,如两次新密码输入不相同,或者密码位数不到8位时,系统会返回锁开前即选择重新设密码前的状态。如果密码输入错误,错误警告灯亮,LCD显示错误,并显示输入错误限制次数。一段时间后,进入闭锁状态。若连续操作错误超过3次,一定时间系统会锁定键盘,并报警用以防止恶意试探密码。如果在规定次数以密码输入正确,则锁开,且错误次数清空,不会影响到下一次的开锁。4.2各模块软件实施4.2.1键盘扫描键盘设计应用编程式扫描方式,利用CPU完成其它工作的空余时间来调用键盘扫描子程序,响应键盘输入的要求。在执行键功能时,CPU不再响应键输入要求,直到CPU开始重新扫描键盘为止。扫描程序包括:1.判别有无按键按下;2.扫描键盘,取得闭合键的行、列值;3.判断闭合键是否释放,如未释放继续等待;4.将闭合键号保存,同时转去执行该闭合键的功能。键盘扫描程序如下:.ucharget_key<>{ ucharrow_code; ucharcol_code; P1=0xf0; if<P1!=0xf0> { delayms<200>; if<P1!=0xf0> { delayms<2>; row_code=0xfe; while<row_code!=0x7f> { P1=row_code; if<P1!=row_code> { col_code=<P1&0xf0>|0x0f; beep<>; return<<~col_code>|<~row_code>>; } row_code=<<row_code<<1>|0x01>; } } } return<0x00>;}.4.2.2液晶显示使用1602的的一般流程基本是:A:初始化初始化里面一般有设置显示行、清屏、设置光标的开关、光标的闪烁、设置起始地址、设定显示屏或光标移动方向指令。B:写命令、写数据写命令是按照那个时序图写的,时序图给低就写低,延时就延时,或写高就写高。基本操作时序:读状态输入:RS=L,RW=H,E=H输出:DB0~DB7=状态字写指令输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码输出:无读数据输入:RS=H,RW=H,E=H输出:DB0~DB7=数据写数据输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据输出:无C:送显示根据LCD1602编写以下LCD显示相关控制及显示程序:.voidWrite_LCD_Command<ucharcmd>/*送指令{ RS=0; RW=0; EN=0; P0=cmd; Delaymms<1>; EN=1; Delaymms<1>; EN=0;}voidWrite_LCD_Data<uchardat>/*送数据{ RS=1; RW=0; EN=0; P0=dat; Delaymms<1>; EN=1; Delaymms<1>; EN=0;}voidInitialize_LCD<>/*初始化{ Write_LCD_Command<0x38>; Write_LCD_Command<0x0c>; Write_LCD_Command<0x06>; Write_LCD_Command<0x01>;}voidlcm_setxy<ucharx,uchary>/*选择显示位置{ if<y==1>Write_LCD_Command<x|0x80>; if<y==2>Write_LCD_Command<x|0xc0>;}voidlcm_write_string<uchar*string>/*输入显示容{ uchari=0; while<string[i]!='\0'> { Write_LCD_Data<string[i]>; i++; }}.4.2.3密码保存本次设计密码保存使用的是24C02进行密码保存。24C02通过SDA和SCL两根口线可以实现与单片机的I2C通信。主要工作情况:以启动信号START来掌管总线,以停止信号STOP来释放总线;
每次通讯以START开始,以STOP结束;
启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R/W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;
当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号。写通讯过程:
1.主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
2.发送一个地址字节<包括7位地址码和一位R/W>;
3.当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号<ACK>;
4.主控收到ACK后开始发送第一个数据字节;
5.被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;
6.主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;
读通讯过程:
1.主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
2.发送一个地址字节<包括7位地址码和一位R/W>;
3.当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号<ACK>;
4.主控收到ACK后释放数据总线,开始接收第一个数据字节;
5.主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;
6.主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;密码保存程序如下:.voidStart<>{ SDA=1;SCL=1;NOP4<>;SDA=0;NOP4<>;SCL=0;}voidStop<>{ SDA=0;SCL=0;NOP4<>;SCL=1;NOP4<>;SDA=1;}voidRACK<>{ SDA=1;NOP4<>;SCL=1;NOP4<>;SCL=0;}voidNO_ACK<>{ SDA=1;SCL=1;NOP4<>;SCL=0;SDA=0;}voidWrite_A_Byte<ucharb>{ uchari; for<i=0;i<8;i++> { b<<=1;SDA=CY;_nop_<>;SCL=1;NOP4<>;SCL=0; } RACK<>;}voidWrite_IIC<ucharaddr,uchardat>/*在地址addr上写入数据dat*/{ Start<>; Write_A_Byte<0xa0>; Write_A_Byte<addr>; Write_A_Byte<dat>; Stop<>; delayms<10>;}ucharRead_A_Byte<>{ uchari,b; for<i=0;i<8;i++> { SCL=1; b<<=1; b|=SDA; SCL=0; } returnb;}ucharRead_Current<>{ uchard; Start<>; Write_A_Byte<0xa1>; d=Read_A_Byte<>; NO_ACK<>; Stop<>; returnd;}ucharRandom_Read<ucharaddr>{ Start<>; Write_A_Byte<0xa0>; Write_A_Byte<addr>; Stop<>; delayms<1>; returnRead_Current<>; }.4.2.4密码修改用户能根据自己的需要修改密码,按下选择键用户进行密码的修改。密码输入成功之后,锁开,根据LCD提示选择回到锁定状态或者重新设置密码。如果选择S3,即重置密码,则进入密码修改程序。首先输入旧密码一次,如果正确便进行密码的修改再输入新的密码两次,两次的密码进行比较,如果两次密码相同密码修改成功,不同就会从新输入新的密码,再进行比较,相同之后提示密码设置成功。密码修改程序如下:.voidpasswordchg<>{uchari; for<i=0;i<8;i++> { temp1_password[i]=Random_Read<i>; } Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,0>; lcm_write_string<"inputoldcode">; if<input_password<temp2_password>> { convert_code<temp2_password>; if<compare_string<temp1_password,temp2_password>> { correct=1; right=correct; lcm_setxy<0,2>; lcm_write_string<"passwordcorrect!">; longdelay<20>; Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,1>; lcm_write_string<"inputnewcode">; if<input_password<temp3_password>> { Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,1>; lcm_write_string<"Pleaseagain">; if<input_password<temp4_password>> { if<compare_string<temp3_password,temp4_password>> { convert_code<temp3_password>; for<i=0;i<8;i++> { Write_IIC<i,temp3_password[i]>; } Write_IIC<8,0xf0>; Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,1>; lcm_write_string<"passwordhas">; lcm_setxy<0,2>; lcm_write_string<"beenchanged">; longdelay<20>; correct=1; right=correct; wrong=0; return; } else { Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,1>; lcm_write_string<"twiceinput">; lcm_setxy<0,2>; lcm_write_string<"isdifferent">; delay3s<>; return; } } else { Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,2>; lcm_write_string<"error">; delay3s<>; return; } } else { Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,2>; lcm_write_string<"NotEnoughcode!">; delay3s<>; return; } } else { Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,2>; lcm_write_string<"WRONGPASSWORD">; delay3s<>; return; } } else { Write_LCD_Command<0x01>; Write_LCD_Command<0x06>; lcm_setxy<0,2>; lcm_write_string<"WRONGPASSWORD">; delay3s<>; return; } longdelay<20>; return; .第五章仿真调试主要利用Keil和proteus进行联机调试,在两个软件中分别进行相应的设置,然后开始联机调试。本电路的各设计及最终效果都是在Keil和Proteus仿真软件的辅助下得以形成的,都在在Proteus中仿真得以通过了,达到了预期效果,也就是说电路在逻辑上是行的通的。通过在Keil上进行程序编写和修改,在Proteus上模拟,以达到设计的要求。5.1软件调试关于软件的编写和调试,我选择使用Keil来进行。Keil软件能够提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。将写好的程序编译后生成hex文件后用于Proteus仿真软件中〔如图5-1。图5-1联机调试Keil界面5.2硬件仿真调试在Proteus仿真软件中按照设计好的思路把各个元器件摆好连接,再将用Keil软件编译好的文件烧入芯片中,再通过仿真软件中各个器件的反应对编写的程序重新进行了多次的修改,直到仿真最终达到预期的效果。使用Proteus仿真软件来进行硬件调试,可以大大的节省我们在连接器件造成错误的排查时间,更省下我们购买元器件的金钱,能方便快捷的找到大部分所需的原件和仪器,同时也能清楚的反应出设计的效果图5-2联机调试Protues界面5.3调试结果在启动之后,LCD根据程序显示的字符。图5-3开机显示画面在使用键盘进行输入密码的时候,LCD上显示出来的字符。图5-4输入密码画面当在使用键盘输入密码按下确认后,经过系统判断正确错误之后显示的字符。图5-5密码错误画面图5-6密码正确画面第六章总结为期几个月的毕业设计终于要落下帷幕了,在这短暂而又忙碌的时间里,经历了很多。在设计过程中先后利用keil软件进行编程再利用仿真进行检查看程序是否能显示其功能。在过程中让我对以前所学的知识重新进行了复习和巩固,同时锻炼了自己的动手能力和查阅资料的技巧。尤其是解决在实际中解决排查问题的方法。在设计过程中,我首先进行方案的设计,然后是电路的布局和设计,最后是对电路进行仔细检查。在方案的设计过程中,经过了理论验证和筛选,才确定最终的方案。比如键盘扫描的设计,就考虑过二种不同的方案;对数码显示模块的使用,也使用了两种不同的芯片来驱动数码管。而电路的制作更是成功完成制作的保证,因此在整个过程中,我从始至终都秉着严谨、认真的态度来完成特别是在编程的时,开始是一点不懂,看到编程有种头痛的感觉,但在老师的指导下和同学的帮助下,我的设计程序己基本上实现了。致这份毕业论文完结之际,也代表了短暂的大学三年就要结束了。这三年来,除了知识,我也收获了很友情和幸福。当然这其中也包含了汗水、心酸以及泪水,但他们对我来说都是一份最珍贵的回忆,会伴随着我一生。在这里,我要感在写这篇论文给我过帮助的所有人。感老师这三年来的辛苦教导,也感他给我的帮助。感同学们对我的支持和关心。有你们的支持和关心,我相信,我的未来会越来越好。参考文献[1]黄维冀.眭碧霞.单片机应用与项目实践..清华大学,2010[2]和平.跃.单片机原理及应用..大学,2004[3]廖芳.电子产品制作工艺与实训.:电子工业,2011[4]吴恒玉.唐民丽.模拟电子技术.:机械工业,2011[5]立科.单片机典型外围器件及应用实例..人民邮电,2006[6]西明.朱骐.单片机编程与入门..机械工业,2004[7]朝青.单片机原理及接口技术..航空航天大学,2002附录附录1AT89C52AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片含8kbytes的可反复擦写的只读程序存储器〔ROM和256bytes的随机存取数据存储器〔RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片置通用8位中央处理器〔CPU和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要功能和工作特性是:片程序存储器含8KB的Flash程序存储器,可擦写寿命为1000次;片数据存储器含256字节的RAM;具有32根可编程I/O口线;具有3个可编程定时器;中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;串行口是具有一个全双工的可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论