




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 桂林电子科技大学信息科技学院单片机原理及应用实训报告题 目 密码锁 学 号 姓 名 指导老师 2011 年 9 月 21 日1.系统设计1.1设计要求1.1.1基本要求(1)按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。(2)结合硬件能够正常工作。(3)能够正常显示密码。(4)能够正常显示密码模式。(5)能够开关锁。1.1.2发挥部分密码的存储。通过24C02芯片保存密码,实现断电密码保存。1.2设计原理C51单片机显示模块键盘1.2.1基本框图:1.2.3 原理图在本次实训电路中用到的电路原理图如下:1.3方案比较(1)关于矩阵键盘和独立键盘之间的选择。独立键盘将每一个按键
2、开关接到一个独立的输入口中,因此其识别程序相对简洁,方便使用。但是实训中采用的AT89S52单片机字长为8位,每一组输入输出口有8位,故每一组输出口最多能接8个开关,而通常情况下,密码由0到9这10个数字组成,如果采用独立键盘,一组独立开关将不能满足要求。相对而言,4x4矩阵键盘每识别一个按键,都要进行行列扫描,程序较为复杂,但是矩阵键盘仅用一组I/O口就能接16个按键,除去0到9这10个数字外,还剩下6个,方便对系统进行功能扩展。故在本次实训电路中采用4x4矩阵键盘,接到单片机的P3口。(2)关于数码管以及LED的选择。单片机的I/O数量十分有限,倘若要使用多位数码管,必须采用动态扫描的方式
3、实现。对于一般密码而言,4位10进制密码已经足够,故本次实训电路中采用4位共阴极数码管。另外,外加4个LED就足以指示一个密码锁的各种不同的状态。1.4方案论证1.4.1总体思路单片机的最小系统仅有两部分,即时钟电路和复位电路。另外,通过接驳在单片机不同端口的设备,再编写适当的程序,可以方便对单片机系统进行相应的扩展。AT89S52芯片共有4组并行I/O口,即P0、P1、P2、P3,基本思路是将4x4矩阵键盘接在P3口上,将4个LED接在P1口的低四位,将P0口作为4位数码管的位选信号,P2口的低四位作为其位选信号,最后加上通信接口,用以下载程序。放弃密码存储功能。1.4.2设计方案按照以上思
4、路绘制出仿真图如下:以上仿真图在Proteus 7 中仿真通过,本次实训电路将采用以上原理图。2、模块电路的设计2.1 时钟电路单片机的时钟信号由两种电路产生:内振荡电路和外震荡电路。在任一时刻,只要一种震荡电路便能使单片机正常工作。在需要时钟稳定的的情况下用内部振荡产生时钟,在要求单片机与外界信号同步时使用外部震荡。本次实训没有涉及到信号同步,故可以采用内振荡电路。使用内震荡电路提供时钟脉冲,需要在XTAL1和XTAL2之间外接石英晶体振荡器或陶瓷振荡器,这时的内部震荡电路仅相当于一个高增益放大器,和晶振接在一起形成一个正反馈的自激振荡,再经整形和分频形成单片机内各逻辑部件所需的时钟脉冲。设
5、计出的时钟电路图如下所示:其中X1、X2接在18和19脚即XTAL1和XTAL2之间。2.2 复位电路单片机的复位操作由复位引脚RET/VPD上出现的高电平引起,高电平持续时间不少于两个机器周期(24个振荡周期),CPU在第二个机器周期内执行复位操作。如果RSD/VPD持续为高电平,那么每隔24个振荡周期重复一次复位操作。复位后机内各种特殊功能寄存器初始化,而片内128B RAM的状态不受复位信号的影响。复位有上电复位和手动复位两种。一般采用的手动复位用按钮完成。其模块电路如下:其中R1=1K,C3=10uF。2.3 4x4矩阵键盘模块键盘是单片机常用输入设备,在按键数量较多时,为了节省I/O
6、口等单片机资源,一般采取扫描的方式来识别到底是哪一个键被按下。即通过确定被按下的键处在哪一行哪一列来确定该键的位置,获取键值以启动相应的功能程序。接在单片机P3口的矩阵键盘模块如下图所示:2.4 数码管显示模块一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。
7、即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。由P0口控制段码,由P2口控制位码的四位数码管动态扫描电路如下:2.5 LED模块LED与单片机的连接比较简单,一端连接单片机的P1口,另一端通过合适的电阻接到VCC即可。
8、本次实训,我通过一个200欧电阻与4个LED连接,通过程序控制单片机对应端口的高低电平,可以实现功能。其模块电路图如下:2.6 下载接口模块本次实训电路采用标准的下载接口,其原理图如下:3、开发软件及编程语言简介3.1 Keil C编程软件Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。3.2 C编程语言单片机的C语言具有可移植性好,易懂易用的特点,在我国有大量的c程序员,重新学习单片机将非常容易,因此,虽然汇编语言更精炼,但是使用c也是大势所趋!3.3 Prot
9、eus软件Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平
10、台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。3.4 Avr fighterAVR单片机ISP下载编程软件。4、制作与调试过程4.1 绘图过程本次绘图采用Protel 99 SE。根据仿真成功的仿真图,绘制出各个模块,用网络标号相连。然后根据实物,画好封装。导入PCB图,进行合理布局。由于本次实训是在万用板上焊接,走线比较随意可以进行多层走线,所以没有必要再进行
11、走线。4.2调试过程本次实训是在我第一次在万用板上焊接,其难度比在一般腐蚀板上焊接要高,全部焊接出来之后,没有马上成功。经过了一番调试之后。板子正常工作。我的调试从LED开始。我编写了一个简单的流水灯程序,但是LED都没有亮起。仔细检查电路后发现,单片机31脚EA没有接入VCC。查阅相关资料可知,对于51的单片机来说,程序下到芯片内的ROM里,而EA=0时,片外程序ROM有效,EA=1时片内程序ROM有效。而且,EA一定要给个固定电平,高或者低,根据程序存放的位置为片内ROM,为了系统可靠,应当将其接到VCC网络。接下来是数码管。编写一个简单的程序,数码管显示正常。之后再编写了一个矩阵键盘识别
12、程序,将所得的结果通过数码管显示出来。发现有两个按键没有反应,断电之后,用万用表测试了各个按键的管脚,发现有两个已经短路了。再仔细观察,原因是在焊接的过程中,温度太高,导致绝缘皮融化,相靠近的两根导线短路。将两根导线重新焊接后问题解决。问题都解决了之后,开始进行程序的编写,程序的编写过程是漫长的,经过多次调试下载验证,将其功能一个个实现,完成了程序的编写。在程序的编写测试过程中,发现复位电路有个问题,就是不是每次按下复位键都会有效。我刚开始使用的复位电路有2个电阻,另一个是接地,即复位模块截图的R2,将其短路后问题解决。4.3 软件的编写按照软件的一般编写顺序,先写一个最简单的程序,能实现某个
13、简单的功能,然后再将其扩展,直到实现所有的功能为止。程序功能都可以实现了之后,还存在很多不足之处,比如操作不当时,会造成系统错乱。为了杜绝各种缺陷,还要进行很多的测试。直到现在,或许程序中还有很多不足之处我还没发现。但由于本人时间能力有限,不能全部发现并一一解决。5、心得体会之前也进行了很多各种各样的实训,不过这次有一些不同之处,给了我一些不一样的感受。首先,实训刚开始的时候就听说这次所要焊接的板子是万用板,不需要腐蚀,腐蚀板之间的导线全部用导线焊接上去。这样的焊接方式肯定是很有难度的,我们必须要在焊接的时候。一手拿着电烙铁,一手拿着焊锡,另外还要扶着板子,还要拿着导线,这样才能将一个焊点焊好
14、。不过这样也有一个好处,就是走线和修改都比较简单,可以走几层,没有固定的走线方式。但是这样也会出现一些问题,就是那些导线的绝缘层很容易熔化并露出金属,稍不注意就会造成短路,我之前焊接矩阵键盘时就出现了这个问题。当然,所谓熟能生巧,在焊接了一大部分之后,似乎找到了一些诀窍,焊接变得轻松了。不过这毕竟还是我第一次在万用板上焊接,总体上并不美观。另外,这次实训是软硬件相结合的,没有硬件,就不能知道自己所写的程序是不是正确,没有软件,就不能验证给绘制的原理图是不是正确。这就造成了一个死循环,很难找到突破口着手。当然,无论如何,都必须要将这些问题解决的。方法就是先在软件中进行仿真。仿真时,如果涉及到数码
15、管的动态扫描,显示效果就不是很好,显示得不完整,但还是可以写一些简单的程序,验证正确即可。电路没有问题之后,就要进行电路板的焊接,焊接之后,才可以方便调试程序。通过这次实训,我学习,也复习了很多相关的知识。比如说单片机的知识。虽然单片机学习结束也就刚一个假期而已,但是这么久没有复习,还是会忘掉不少。单片机就是一个小型的处理器,通过程序控制,可以让它实现很多功能,应用十分广泛,学好单片机,以后定会有用武之地。另外,这次编程我是采用C语言,同时可以复习之前的知识。C语言编程也是一个很重要的能力。总之,通过此次实训,我复习了很多,也学到了很多那些我应该懂得的知识。6、参考文献 【1】喻宗泉,喻晗,李
16、建民,单片机原理与应用技术:西安电子科技大学出版社,20067附录附录1:元器件清单器件名称数量器件名称数量AT89S52(带座)122pf电容21000欧排阻112MHz晶振110P下载口11k电阻14位共阴数码管1200欧电阻1LED410uF电解电容1轻触开关17附录2:电路原理图附录3:电路PCB图(未布线)附录4:电路板实物图附录5:程序#include <AT89X51.H>unsigned int ms=10000,bitdisplay,led=2000;unsigned char tab=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07
17、,0x7F,0x6F,/09 0x40,/10- 0x76,/11-H 0x5c;/12-口unsigned char pw=0,6,1,9,tpw14,tpw24;unsigned char fdd=0,key=10,fun,n=0,step;unsigned char smg7,hsmg4;bit del=0;hid=0,result=0,result2=0,ok=0,num=0; unsigned char compare(unsigned char ppw14,unsigned char ppw24)/密码对比n=0;while(ppw1n=ppw2n)n+;if(n=4) break
18、;if(n=4)n=0;return(1);elsen=0;return(0);void timer0(void) interrupt 1/2ms中断TH0=0xF8; TL0=0x30;if(P3!=0x7f | P3!=0xbf | P3!=0xdf | P3!=0xef)fdd+;/防抖动else fdd=0;if(key=10)/长时间没有按键则退出if(-ms=0)ms=10000;fun=0;else ms=10000;if(P1!=0xFF && -led=0) led=2000;P1=0xFF;if(fun=0)/fun=0,取消,变量复位result=0;re
19、sult2=0;ok=0;hsmg0=hsmg1=hsmg2=hsmg3=12;smg0=smg1=smg2=smg3=12;step=0;num=0;for(n=0;n<4;n+)tpw1n=10;tpw2n=10;n=0;if(fun=2 | fun=3)/密码进入或改密码if(step=0)if(key!=10 && n<4)smgn+1=10;smgn+2=10;smgn+3=10; tpw1n=key; smgn=key;hsmgn=11; n+; if(del=1)/退格 n-; smgn=10; hsmgn=10; del=0; key=10;if(o
20、k=1) result=0;ok=0;result=compare(tpw1,pw);/检验密码if(result=1) P1_1=0;smg0=10;smg1=10;smg2=10;smg3=10;hsmg0=10;hsmg1=10;hsmg2=10;hsmg3=10;else P1_0=0;n=0;if(fun=2) step=1;if(fun=3) fun=0;if(result=1 && fun=2)/以下修改密码if(key!=10 && n<4) if(num=0)tpw1n=key; smgn=key;hsmgn=11; n+;key=10;
21、 elseif(num=1) tpw2n=key; smgn=key;hsmgn=11; n+;key=10; if(del=1) n-; smgn=10; hsmgn=10; del=0; if(ok=1) /密码替换ok=0;if(n>=4 && step=1 )num=1;n=0;step=2;smg0=10;smg1=10;smg2=10;smg3=10;hsmg0=10;hsmg1=10;hsmg2=10;hsmg3=10;if(n>=4 && step=2)result2=0;result2=compare(tpw1,tpw2);if(r
22、esult2=1) for(n=0;n<4;n+) pwn=tpw1n;P1_3=0;fun=0;led=2000;if(hid=0) /数码管动态扫描switch(bitdisplay)case 0:P0=tabsmg0;P2=0x0E;break; case 1:P0=tabsmg1;P2=0x0D;break; case 2:P0=tabsmg2;P2=0x0b;break; case 3:P0=tabsmg3;P2=0x07;break;elseswitch(bitdisplay)case 0:P0=tabhsmg0;P2=0x0E;break; case 1:P0=tabhsmg1;P2=0x0D;break; case 2:P0=tabhsmg2;P2=0x0b;break; case 3:P0=tabhsmg3;P2=0x07;break;bitdisplay+; if(bitdisplay>=4)bitdisplay=0;void main(void)TMOD=0x01;TH0=0xF8; TL0=0x30;EA=1;ET0=1;TR0=1; while(1) /矩阵键盘行列扫描 P3=0x7f;if(P3!=0x7f && fdd>10) switch(P3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理中的公共关系方法探索试题及答案
- 高血压宣传教育
- 行政管理公共关系学试题及答案更新日志2025
- 行政管理中品牌传播的创新策略解析试题及答案
- 2024年水利水电工程设施管理的试题及答案
- 计算机软件工程师发展计划
- 2025年市政工程考试动态更新试题及答案
- 2025年公共营养师之二级营养师综合检测试卷A卷含答案
- 行政管理经济法与考试成绩关系试题及答案
- 2025年公司级员工安全培训考试试题附参考答案(黄金题型)
- 无机化学(下)智慧树知到课后章节答案2023年下华东理工大学
- (3.1)-7.1展望未来共产主义新社会
- 人工智能算法分析 课件 【ch07】联邦学习
- 灌注桩后压浆工法
- 南开大学经济学院博士入学考试试题
- (苏教版)六年级下册《扇形统计图》测试题
- 公路建设项目变更程序及管理办法
- 青岛版小学科学实验目录
- 月子养生中心项目投资计划书
- MySQL数据库PPT完整全套教学课件
- 承包商资格预审表
评论
0/150
提交评论