毕业设计基于AT89S52单片机的电子密码锁控制系统设计.doc
《毕业设计基于AT89S52单片机的电子密码锁控制系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于AT89S52单片机的电子密码锁控制系统设计.doc(31页珍藏版)》请在三一办公上搜索。
1、单片机课程设计说明书 电子密码锁控制系统设计专业电气工程及其自动化学生姓名张思雨班级B电气094学号0910601410指导教师张兰红完成日期2012年 6月10日目录1 课题设计目标22 总体设计方案22.1 设计思路22.2 方案确立23 硬件电路方框图23.1 单片机及其最小系统33.1.1 复位电路的设计33.1.2时钟电路的设计33.2 密码锁电路43.2.1 按键电路的设计43.2.2 LCD显示电路54 程序设计74.1 模块介绍75 课程设计总结86 参考文献97 附 录10附录一 总电路原理图10附录二:电子密码锁的PCB图11附录三:电子密码锁的实物图12附录四:元器件清单
2、14附录五 源程序清单151 课题设计目标本设计采用MCS-51系列单片机AT89S52作为主控芯片,结合外围电路,设计密码锁控制系统,能够实现:2 总体设计方案2.1 设计思路该电路是一种采用以AT89S52为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能根据实际需要添加调电存储、声光提示功能。2.2 方案确立(1)为了实现密码的保密性,采用一个44的矩阵式键盘可以任意设置用户密码,从而提高了密码的保密性。(2)采用LCD显示单元,提高了可读性 ,提供良好的人机界面。3 硬件电路方框图电路由两大部分组成:AT89S51单片机
3、及其外围电路和密码锁电路。密码锁电路包含:矩阵键盘输入、LCD指示电路、报警控制电路、AT24C02掉电存储电路。其原理方框图如图3.1所示。图3.1 系统结构框图3.1 单片机及其最小系统3.1.1 复位电路的设计复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。该复位电路采用按键电平复位式复位电路。当单片机已在运行当中时,按下复位键S后松开,在复位引脚RET(9脚)脚持续出现24个振荡器脉冲周期(即2个机器
4、周期)的高电平信号将使单片机复位。也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。如图3.2所示。图3.2 复位电路3.1.2时钟电路的设计时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个11.0592MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如20PF。如图3.3所示。图3.3 时钟电路3.2 密码锁电路3.2.1
5、 按键电路的设计 为了加强密码的保密性,采用一个44的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。其原理图如图3.4所示。图3.4 矩阵键盘电路每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N M 个按键的矩阵键盘。在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就是要识别哪一个按键被按下。对键的识别方法通常有两
6、种:一种是通用的组行扫描查询法;另一种是速度较快的线反转法。此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。具体方法是:向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列;如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。10个数字
7、键用来输入密码,另外2个功能键分别是:确认、取消。其中退格键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。确认键的功能是确认输入的密码。按键功能表按键键名功能说明0-9键数字键输入密码E键确认确认密码F键退格退出3.2.2 LCD显示电路本系统设计的显示电路是为了给使用者以提示而设置的。因为系统具有账户管理系统,使用LCD可以为用户提供更友好的人机界面,故选用LCD1602作为显示器件。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD
8、显示“”,单片机其中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“nter please”,P3.0输出的是高电平,电子密码锁不能打开。通过LCD显示屏,可以清楚地判断出密码锁所处的状态。图3.5 显示器电路显示器主要用于显示以下几个字符,指示如图3.6所示。eAloWHl图3.6(a) 开机状态rnepleDaseEt图3.6(b) 等待输入状态OK图3.6 (c) 密码输入正确状态4 程序设计4.1 模块介绍本设计将密码锁软件分为以下几个模块(程序见附录程序清单):(1)主程序模块主程序主要完成系统及外围电路的
9、初始化,控制LCD根据按键操作进行各个状态的转化,实现密码锁的人机交互界面。(2)键盘驱动及键盘输入程序主要包括键盘扫描的程序,根据按键的布局进行符合操作习惯的键值映射,键盘操作到数据的转换。(3)LCD1602驱动包括液晶屏的初始化程序和字符显示,字符串显示等基本函数,供主程序调用(4)AT24C02存取程序包括I2C总线的读写时序模拟控制及读写程序主程序流程图如图4.1所示:图4.1 主程序流程图5 课程设计总结在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是
10、艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:protel99制图,C语言等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习
11、惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。另外,这次课程设计让我感到了团队合作的重要性。在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。几周的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。6 参考文献1 张天凡. 完全手册-51单
12、片机C语言开发详解M.电子工业出版社,20082 李群芳. 单片微型计算机与接口技术M.北京:电子工业出版社,20083 赵景波. Protel DXP实用教程M.人民邮电出版社,20094 丁明亮,唐前辉. 51单片机应用设计与仿真-基于Keil C与ProteusM. 北京航空航天大学出版社,20095 Atmel.AT89S51 Data Sheet6 ShareWave.LCD1602器件手册7 Atmel. AT24C02 Data Sheet7 附 录附录一 总电路原理图附录二:电子密码锁的PCB图附录三:电子密码锁的实物图附录四:元器件清单名称型号数量备注单片机AT89S521含
13、双列直插插座电阻10K6电阻2202排阻8x10k1液晶显示器LM16021瓷片电容33pF2电解电容10uF1按键轻触按键16晶振11.0592MHz1单排插针1x84发光二极管2直流插座1下载口1继电器1附录五 源程序清单#include #define uint unsigned int#define uchar unsigned char#define KEY P1 /键盘输入端口#define No_key 20 /无按键时的返回值#define lcddata P0 /1602的数据输入端口sbit lcden= P22;sbit lcdrs= P20;sbit lcdrw= P2
14、1;sbit light= P30;sbit light1= P31;uchar j ; /用来统计输入 个数的全局变量uchar aa; /用来在定时器中计数的 全局变量 uchar code table= Hello!;uchar code table1= OK! ;uchar code table2=Enter please: ;uchar code key_table16 = 1,2,3,10, 4,5,6,11, 7,8,9,12, 0,13,14,15 ;uchar password=2,0,1,0,9,3 ; /设定初始密码uchar save6; /保存输入的数据uchar c
15、onflag ; /确认标志uchar lockflag; /锁键盘标志uchar startflag; /开始标志 void delay(uint z); /延时子函数void wright_com(uchar com); /写指令函数void wright_data(uchar date) ; /写数据函数void init(); /初始化void display_OK(); / 显示OKvoid delete(); /删除输入的最后一个数uchar keyscan() ; /带返回值的键盘扫描程序void enter_code(uchar t); /输入密码函数,把输入的数据存入数组中并
16、在屏幕上显示相应的东西,void confirm(); /确认密码对不对,把输入的数据与密码逐一对比,完全一样刚正确,void succeed_an(); /输入密码成功时的 响应,void fail_an(); /输入密码 失败时 响应 void lockkey(); /锁键盘三秒void reset(); /复位函数void display_enter(); /显示输入void main(void) uchar temp; init(); while(1) if(lockflag) temp=keyscan(); / 锁键期间也要进行键盘扫描 if(temp!=No_key) /重新记时三



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 AT89S52 单片机 电子 密码锁 控制系统 设计

链接地址:https://www.31ppt.com/p-3975227.html