ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:361.65KB ,
资源ID:5887599      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5887599.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于C51单片机的电子密码锁的设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于C51单片机的电子密码锁的设计.docx

1、基于C51单片机的电子密码锁的设计名称: 基于C51单片机的电子密码锁的设计 目 录第一章.引言 1 第二章.系统概述 2 2.1系统说明: 2 2.2功能简介: 2 第3章所需芯片简介 3 3.1基于51内核系列单片机简介 4 3.2AT89C51 6 3.3总体硬件设计 7 第4章 系统软件设计与调试 15 第5章软件仿真技术在单片机系统设计中的运用 16 5.1基于Proteus的系统仿真 18 结 论 19 致 谢 20摘 要:单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常

2、消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等,无不含有CPU控制器,即单片机。单片机实际上是一个硬件的芯片,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。C51控制技术主要以MCS-51系列单片机为核心,以扩展输入、输出、显示、控制等外围电路组成的单片机应用系统为实训目的,以高级语言C语言作为编程语言,完成单片机应用系统的设计和开发。MCS-51系列单片机编程语言目前常用的有两种,一种是汇编语言,另一种是C语言。C语言是

3、一种通用 计算机程序设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可以编写一般的应用程序。C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也很强,许多以前只能采用汇编语言来解决的问题现在都可以改用C语言来解决。随着科学技术的日新月异,对于便捷的加密防盗技术的要求也越来越高,原有的装置远远不能满足当前电子密码锁的需求。单片机电子密码锁设计的系统具有集成度高,可靠性好,安装方便等优点。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品

4、、玩具等。本篇设计内容是基于51内核单片机的电子密码锁设计,以51单片机为核心,扩展了1602液晶,4*4矩阵键盘,已经继电器驱动电路,构成了电子密码锁的系统设计。程序采用汇编语言编写,具有结构明了,简单易懂编译方便等特点。关键词:单片机,电子锁,LM016L液晶基于C51单片机的电子密码锁的设计第一章.引言单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类

5、似键盘),扩展芯片,接口等那是单片机系统。MCS51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。第二章.系统概述2.1系统说明:利用4*4键盘组成0-9个数字以及

6、A-F个字母,以及利用了LCD显示来完成一些列的功能。开始运行显示You Password.,C键可以用来设定你要的新密码,然后按D键保存。而F键是用来清除密码的。而B键是用来开锁的,如果正确会显示在第二行显示“Unlock OK!”,否则就显示在第二行显示“ERROR!”。2.2功能简介:)本题使用16*2(LM016L)LCD显示器2)开机时显示“You Password”3)键盘设计键盘值: 0123456789ABCDEFc.09为数字键,及其所对应的LCD显示码;A.上锁键。B开门键:输入密码后,再按此键,经比较密码,正确则令电锁动作(P0.0)。并在第二行显示“Unlock OK!

7、”。如错误则在第二行显示“ERROR!” F;清除键:按此键后,可以把输错的密码删掉;C 如果你要设定新密码,可以按此键 D 当你新密码完成后 。可以按此键保存。第3章所需芯片简介3.1基于51内核系列单片机简介MCS-51单片机是美国INTE公司于1980年推出的产品(如图1),与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍以MCS-51单片机作为代表进行理论基础学习。我们也以这一代表性的机型进

8、行系统的讲解。MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:4kbytes 程序存储器(ROM) 128bytes的数据存储器(RAM)32条I/O口线111条指令,大部分为单字节指令21个专用寄存器2个可编程定时/计数器5个中断源,2个优先级一个全双工串行通信口外部数据存储器寻址空间为 64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插40PinDIP封装单一+5V电源供电MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。正

9、因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展了MCS-51单片机,象PHILIPS、Dallas、ATMEL等著名的半导体公司都推出了兼容MCS-51的单片机产品,就连我国的台湾WINBOND公司也发展了兼容C51(人们习惯将MCS-51简称C51,如果没有特别声明,二者同指MCS-51系列单片机)的单片机品种。近年来C51获得了飞速的发展,C51的发源公司INTEL由于忙于开发PC及高端微处理器而无精力继续发展自己的单片机,而由其它厂商将其发展,最典型的是PHILIPS和ATML公司,PHILIPS公司主要是改善其性能,在原来的基础

10、上发展了高速I/O口,A/D转换器,PWM(脉宽调制)、WDT等增强功能,并在低电压、微功耗、扩展串行总线(I2C)和控制网络总线(CAN)等功能加以完善。 3.2 AT89C5151单片机AT89C51中文资料AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工

11、作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门

12、电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内

13、容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.

14、7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚

15、被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.3总

16、体硬件设计系统总体的设计主要分4个部分:单片机以及最小系统,矩阵键盘,LM016L液晶显示模块如(图十)(图十)第4章 系统软件设计与调试一、C51源程序:;*; / 名称:用1602LCD与24C04设计的电子密码锁/-/ 说明:初始密码由24C04.BIN设定为“876543”。/ 当输入09中的数字时可以输入密码,不超过6位,输入完成后按下B/ 键开锁,密码正确时LED点亮,液晶屏显示开锁成功。/ 其他键功能是:A上锁 C重新输入密码 D保存新密码 F清除/ 重设密码时要求先输入正确的密码开锁成功。/-#include #include #define uchar unsigned ch

17、ar#define uint unsigned int/上次按键和当前按键序号,该矩阵中序号范围为015,16表示无按键uchar Pre_KeyNo=16, KeyNo=16;uchar code Title_Text=Your Password.; /标题字符串uchar DSY_BUFFER10=; /显示缓冲uchar UserPassword10=; /用户输入密码void LCD_Init();/void Display_String(uchar * str,uchar LineNo);void Display_String(uchar x,uchar y,uchar *str);

18、void IIC_24C04_Init();void Beep();uchar RecString(uchar Slave,uchar Subadder,uchar *Buffer,uchar N); /从IIC读取数据uchar SendString(uchar Slave,uchar Subadder,uchar *Buffer,uchar N); /从IIC写入数据uchar Keys_Scan(); /键盘扫描,返回键盘号015sbit LED_OPEN=P27; /开锁灯亮sbit BEEP=P37; /蜂鸣器/-/ 延时/-void DelayMS(uint x) uchar i;

19、 while (x-) for (i=0;i120;i+);/-/ 蜂鸣器子程序/-void Beep() uchar i; for (i=0;i100;i+) DelayMS(1);BEEP=BEEP; /-/ 清除密码/-void Clear_Password() UserPassword0=0; DSY_BUFFER0=0;/-/ 主程序/-void main() uchar i = 0; uchar IIC_Password10;/=876543; uchar IS_Valid_User = 0; P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; DelayMS(10)

20、; LCD_Init(); /初始化LCD IIC_24C04_Init(); /初始化24C04 Display_String(0,0,Title_Text); /在第1行显示标题 /24C04的内容已由初始化BIN文件导入 /将24C04中预先写入的密码读入pass RecString(0xa0, 0 , IIC_Password, 6); IIC_Password6 = 0; while(1) P1 = 0xF0; if(P1 != 0xF0) KeyNo = Keys_Scan(); /扫描键盘获取键序号KeyNo switch ( KeyNo ) case 0: case 1: ca

21、se 2: case 3: case 4: case 5: case 6: case 7: case 8: if ( i= 5 ) /密码限制在6位以内 /如果i为0则执行一次清屏 if (i=0)Display_String(0,1, ); UserPasswordi = KeyNo + 0; UserPasswordi+1 = 0; DSY_BUFFERi = *; DSY_BUFFERi+1 = 0; Display_String(0,1,DSY_BUFFER); i+; break; case 11: /按B键开锁 if (strcmp(UserPassword,IIC_Passwor

22、d) = 0) LED_OPEN = 0; /点亮LED Clear_Password(); Display_String(0,1,Unlock OK! ); IS_Valid_User = 1; else LED_OPEN =1; /关闭LED Clear_Password(); Display_String(0,1,ERROR! ); IS_Valid_User = 0; i = 0; break; case 10: /按A键上锁 LED_OPEN =1; Clear_Password(); Display_String(0,0,Title_Text); Display_String(0,

23、1, ); i = 0; IS_Valid_User = 0; break; case 12: /按C键设置新密码 /如果是合法用户则提示输入新密码 if ( !IS_Valid_User )Display_String(0,1,No Rights! ); else i = 0; Display_String(0,0,New Password ); Display_String(0,1, ); break; case 13: /按13键保存新密码 if ( !IS_Valid_User ) Display_String(0,1,No Rights! ); else SendString(0xa

24、0, 0 , UserPassword, 6); for(i=0;i7;i+) IIC_Passwordi=UserPasswordi; /重新读入刚写的密码 / RecString(0xa0, 0 , IIC_Password, 6); / IIC_Password6 = 0; i = 0; Display_String(0,0,Title_Text); Display_String(0,1,Password Saved); break; case 15: /按F键消除所有输入 i = 0; Clear_Password(); Display_String(0,1, ); Beep(); D

25、elayMS(100); P1= 0xF0; while (P1 != 0xF0); /如果有键未释放则等待 while (P1 = 0xF0); /如果没有再次按下按键则等待 RETFINI: NOP END二、利用keil Uv2进行程序编译与调试1、如图7,keil Uv2的启动界面。图72、新建工程:点击projectnew project,然后选择保存地址。文件名Ley Look,然后选择单片机为AT89C51,生成工程文件。如图8图83、新建文件添加到工程:点击,生成,在此文件下编写程序。写完程序将文件保存为.c文件。右击选择将.c文件添加到工程。如图9图94、编译并生成.C文件右

26、击,单击进入设置界面,在OUTPUT选项卡下选中如图9,点击OK完成。图9第5章软件仿真技术在单片机系统设计中的运用5.1基于Proteus的系统仿真一、Proteus Professional界面介绍安装完 Proteus后,运行ISIS 6 Professional,会出现下面这个窗口:图12为方便介绍,我分别对窗口内各部分进行了说明(图7)。下面简单介绍各部分的功能:1.原理图编辑窗口(The Editing Window)顾名思义,它是用来绘制原理图的。蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可以用预览窗口来改变原理图的可视范围。 2、预览窗口(The Overview Window)它可以显示两个内容。一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是:当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色方框里面的内容就是当前原理图窗口中显示的内容,因此你可用鼠标在它上面点击来改变绿色方框的位置,从

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1