单片机课程设计初稿_第1页
单片机课程设计初稿_第2页
单片机课程设计初稿_第3页
单片机课程设计初稿_第4页
单片机课程设计初稿_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机系统课程设计单片机系统课 程 设 计成绩评定表设计课题 : 基于89C51的电子密码锁的设计 学院名称 : 电气工程学院 专业班级 : 自动F1203 学生姓名 : 杨莉芳 学 号 : 201223910430 指导教师 : 王黎 设计地点 : 31号楼 设计时间 : 2014-12-152014-12-29 指导教师意见:成绩: 签名: 年 月 日 单片机系统课 程 设 计课程设计名称: 基于89C51的电子密码锁的设计 专 业 班 级 : 自动F1203 学 生 姓 名 : 杨莉芳 学 号 : 20122391430 指 导 教 师 : 王黎 课程设计地点: 31号楼 课程设计时间

2、: 2014-12-292015-1-9 单片机系统 课程设计任务书学生姓名杨莉芳专业班级自动F1203学号201223910430题 目基于89C51的电子密码锁的设计课题性质工程设计课题来源自拟指导教师王黎主要内容(参数)利用AT89C51以及外围键盘以及液晶显示部分来组成电子密码锁,实现的功能如下:1. 实现密码的输入以及密码判定(初始密码程序中已设定好),同时液晶显示部分显示相关提示信息。2. 若连续输入错误密码三次则自锁,无法继续输入密码。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及

3、元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张迎新单片微型计算机原理、应用及接口技术(第2版)M北京:国防工业出版社,2004审查意见系(教研室)主任签字: 年 月 日 目录1.硬件组成与方案设计41.1硬件组成41.2方案设计42.单元电路设计42.1时钟电路设计42.2复位电路设计52.3键盘电路设计62.4显示电路设计62.5整体电路图设计83.系统软件工作流程图93.1主程序工作流程93.2键盘扫描程序

4、104系统功能实际测试114.1程序实际编译测试114.2程序模拟仿真测试115.设计总结17参考文献18附录A:整体电路图19附录B:详细程序20摘要: 自从人类开始制造锁以来长期所使用的锁都是机械锁,通俗的讲就是弹子芯锁。而传统的弹子芯锁,由于其本身锁芯密齿的有限加之开锁工具钥匙的容易复制性,使得其安全性大大降低。随着人们生活质量的提高,如何实现安全有效的防盗这一问题受到越来越多人的关注。传统的机械锁由于安全性能太差,被撬的事件屡见不鲜。相比之下,电子密码锁因其保密性强,使用灵活性好,安全系数高,受到了广大用户的欢迎。电子密码锁作为一种新型的锁,安全性有了较大的提高,还省去了传统机械锁的钥

5、匙,使用者只要记得其密码,便可以开启,从而大大提高了防盗功能。 本文主要设计了一种以单片机AT89C51为核心的电子密码锁。详细地介绍了该电子密码锁以及其外围电路的设计过程。电子密码锁主要由三部分组成:键盘输入部分、单片机最小系统部分、液晶显示部分。通过外围键盘来进行密码输入,单片机则负责把输入的密码与设定好的密码进行比对从而判断是否输入正确,而液晶显示部分则负责进行相关提示信息的显示。关键词:AT89C52 键盘输入 液晶显示1.硬件组成与方案设计1.1硬件组成硬件组成如图1.1所示: 图1.1硬件组成示意图1.2方案设计该系统采用外围矩阵键盘来进行密码的输入,单片机则执行键盘扫描

6、程序来获取相应的键值从而达到输入密码的功能,同时,单片机与1602液晶显示屏相连,来显示输入密码等相关提示信息方便用户使用。当用户连续输入错误密码三次时则电子密码锁自锁,无法继续输入密码,从而提高了电子密码锁的安全2.单元电路设计2.1时钟电路设计时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地工作。因此时钟频率直接影响单片机的速度。常用的时钟产生方法有两种:内部时钟方式以及外部时钟方式。本设计采用的是内部时钟方式。其中内部时钟方式是利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器。其发出的脉冲直接送入内部时钟电

7、路。外接晶振时,C1和C2的值通常选择为30pF左右,C1和C2对频率有微调作用。晶体的频率选择12MHz。为了减少寄生电容,更好地保证振荡器稳定可靠地工作,振荡器和电容应尽可能安装得遇单片机芯片靠近。如图2.1所示图2.1 时钟电路2.2复位电路设计复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,它的作用是CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。故复位关系到一个单片机系统能否可靠地工作。本设计采用的是按键电平复位,按复位键之后复位端通过电阻与Vcc电源连通。为保证复位可靠,应保证复位高电平持续时间大于两个机器周期,R4电阻值为200欧姆,R5电阻值

8、为10K,C3电容值为22uF。如图2.2所示图2.2 复位电路2.3键盘电路设计计算机所使用的键盘有全编码键盘和非编码键盘两种,本设计采用的是非编码键盘。非编码键盘只是简单地提供行和列的矩阵,其它工作都靠软件来完成,由于其经济实用,目前在单片机应用系统中多采用这种方法。本设计中采用了非编码矩阵键盘,通过四根行线四根列线与单片机相连,通过单片机内部程序从而实现计算键值,进行密码输入的功能。如图2.3所示图2.3键盘电路2.4显示电路设计单片机的显示方式有点阵显示,数码管显示以及液晶屏显示。本设计采用的是液晶屏显示方式。液晶显示模块已作为很多电子产品中都可以看到,显示的主要是数字、专用符号和图形

9、。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数产品的通过器件,如在计算器、万用表、电子表及很多家用电子据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。引脚功能说明:第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比 度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高

10、电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。如图2.4.1所示图2.4.1显示部分电路如图2.4.2所示图2.4.2 1602型LCD外形尺寸图2.5整体电路图设计如图2.5所示图2.5 整体电路图3.系统软件工作流程图3.1主程序工作流程主程序首先初始化外围显示电路,并显示相关信息提示用户输入密码。用

11、户按下确认键开始输入密码。单片机则执行键盘扫描程序,获取相应键值与设定密码进行比对,若正确则执行解锁。输入错误则提醒用户再一次输入,若连续错误输入三次时电子密码锁自锁,用户无法继续输入密码。程序流程图如图3-1所示图3.1 主程序流程图3.2键盘扫描程序 键盘扫描程序是本设计的核心程序,是单片机能否正确读取按键对应键值的关键所在。通过软件延时来去除按键时的抖动影响,之后通过单片机内部程序来获取相应键值。键盘扫描流程图如图3-2所示。图3.2 键盘扫描流程图4系统功能实际测试4.1程序实际编译测试在Keil编译环境下编译通过,0错误,0警告。生成HEX文件4.2程序模拟仿真测试在程序模拟仿真中采

12、用的是Proteus模拟软件。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。其可以仿真51系列、AVR、PIC、ARM、等常用

13、主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。模拟仿真步骤如下1. 首先打开Proteus软件并新建design,在弹出的对话框中选择default选项创建新的design。如图4.2.1所示。图4.2.1 创建新的deign2. 创建好之后通过元器件选择按钮来选择本设计中所用的的相关元器件,添加到元器件列表当中。如图4.2.2所示图4.2.2 选择并添加元器件3. 添加好所需要的元器件之后开始在原理图编辑窗口放置相应元器件并进行连线。4. 连线完成之后开始设

14、置电阻电容等相应元器件的参数值,在要修改的元器件上面双击鼠标,在对应的框内输入参数值即可。5. 修改参数完成之后,双击AT89C52单片机,在弹出的对话框中对应选项中添加前面已经生成好的HEX文件。如图4.2.3所示。图4.2.5 添加HEX文件6. 添加好HEX文件之后,开始进行模拟,首先1602LCD显示屏显示提示信息。如图4.2.6所示。图4.2.6 提示信息7. 按Confirm按键之后开始输入密码,如图4.2.7所示图4.2.7 输入密码8.当密码输入错误时,则有相应提示信息。如如4.2.8所示。图4.2.8 密码输入错误提示信息9.当连续错误输入密码三次时,则电子密码锁自锁。如图4

15、.2.9所示。图4.2.9 电子密码锁自锁10. 当密码输入正确时,得到相应提示信息。如图4.2.10所示图4.2.10 密码输入正确5.设计总结学习了一年的单片机课程,自己对单片机的设计也有了一定的了解,通过这次课程设计,我得到了很多收获和体会,以及一个工程设计的基本过程。增强了查阅参考资料,查阅手册,图表和文献资料的自学能力。在进行本系统的设计过程中虽然遇到很多的问题,比如说画图,设计等各种问题都让自己懊恼不已。但是通过自己的思考以及与同学之间的探讨得到了一定程度的解决。在该设计完成之后进行了模拟仿真,最终的效果还是令人满意的。同时,由于设计的时间以及能力有限,本设计还存在着一些不合理的地

16、方,比如用户无法自己设定密码,只能靠原始程序来进行设定。同时采用的过于简陋的机械键盘,在用户输入密码时可能会产生误操作等。但是从整体来看,通过这一个设计我还是得到了不少的锻炼。使用Proteus软件进行模拟仿真,使用Keil来进行源程序的编写,使用Visio软件来绘制流程图等。这些都大大提高了我的动手能力,为以后的设计打下了良好的基础。参考文献1 张迎新单片微型计算机原理、应用及接口技术(第2版)M北京:国防工业出版社,20042 祁伟, 杨亭. 单片机C51程序设计教程与实验M.北京:北京航空航天大学出版社.3 楼然苗.李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社.附录A:整体

17、电路图附录B:详细程序主函数部分:#include <reg52.h>#include"key.h"#include"lcd.h"uchar code show_0="Please input the password:"uchar code show_1="The cipher is:" ;uchar code show_2="*"uchar code show_3="The password is wrong!"uchar code show_4="

18、This is the last time,"uchar code show_5="Please try it tomorrow!"uchar code show_6="you are right!"uchar init_pswd=8,8,8,8,8,8,8,8;uchar pswd8=0;uchar pswd_18=0;void play(uchar *j,uchar k) /K是显示的个数,j是地址 uchar i; for(i=0;i<k;i+) dat_w(*(j+i);delay(20); main() uchar j=0,i=

19、0,sum_1=0; loop:init(); clear(); gotoxy(1,0); play(show_0,16); gotoxy(2,0); play(show_0+17,10); /*密码输入*/ do key(); while(ki!=15); clear(); gotoxy(1,0); play(show_1,15); do flag=0; key();gotoxy(2,0);if(flag=1&&ki<=9) pswdi=ki; play(show_2,i); i+; if(ki=14)/14则退出. break; while(i<=8); for

20、(i=0;i<=7;i+) sum_1=init_pswdi-pswdi+sum_1; if(sum_1!=0) clear(); j+; if(j=3) clear(); gotoxy(1,0); play(show_4,16);gotoxy(2,0);play(show_4+16,14);delay(500);delay(500);clear();gotoxy(1,0);play(show_5+7,16); while(1); /三次输入密码失败,自锁 gotoxy(1,0); play(show_3,16); gotoxy(2,5); play(show_3+15,7); dela

21、y(500); clear(); goto loop; if(sum_1=0) clear(); gotoxy(1,0); play(show_6,15); do key(); while(ki!=13); loop1:clear(); /*第一次输密码*/ i=0; do flag=0; key(); if(flag=1&&ki<=9) pswdi=ki; i+; clear(); gotoxy(1,0); play(show_2,i); while(i<=7); clear(); /*第二次输密码*/ i=0; sum_1=0; do flag=0; key()

22、; if(flag=1&&ki<=9) pswd_1i=ki; i+; clear(); gotoxy(1,0); play(show_2,i); while(i<=7); for(i=0;i<=7;i+) sum_1=sum_1+ pswd_1i-pswdi; if(sum_1=0) clear();for(i=0;i<=7;i+)init_pswdi=pswd1; while(1); if(sum_1!=0) clear(); goto loop1; LCD部分#ifndef _lcd_h#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit E=P07;sbit RW=P06;sbit RS=P05;/*写命令*/void cmd_w(uchar cmd) RW=0; RS=0; E=1; P2=cmd; delay(1); E=0;/*写数据*/void dat_w(uchar dat) RW=0; RS=1; E=1; P2=dat; delay(1); E=0;/*清屏*/void clear(void) cmd_w(0x01); /清屏 cmd_w(0x02); /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论