网站大量收购独家精品文档,联系QQ:2885784924

基于STC89C52的电子密码锁.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于STC89C52的电子密码锁

基于STC89C52的电子密码锁 目录 一、简介…………………………………….……2 二、设计任务与要求…………………………….3 三、所用芯片…………………………………….3 四、对应的管脚………………………………….4 五、键盘矩阵扫描…………….……………………7 六、电路原理图………………………………….8 七、流程图……………………….………………9 八、下载图………….…….……………………10 九、程序代码……………………………………11 十、心得体会…………….…………………….19 一、简介 电子密码锁是现代生活中常用的加密工具。它克服了机械式密码锁密码量少、安全性能差的缺点,尤其是的智能电子密码锁;不仅具有电子密码锁的功能”还可引人智能化管理功能,从而使密码锁具有更离的安全性和可靠性。 电子密码锁通常使用ARM和单片机控制,单片机相对ARM实现较为简单,功能较为完善,因此使用单片机控制较多。 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 二、设计任务与要求 根据设定好的密码(456),采用矩阵键盘输入功能。每输入一位密码,对应的LED灯亮。当输入的密码完全正确时,第八位LED灯亮;当输入的密码错误时,第七位LED灯亮,且当密码连续三次输入错误时,第六位LED灯亮,键盘锁闭。 三、所用芯片 STC89C52RC 在本实验中用到的是STC89C52RC单片机。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有系统可编程8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory ) 。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能:8K字节Flash,512字节RAM,32位I/O口线,看门狗定时器,MAX810复位电路,内置4KB EEPROM,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。 四、对应的管脚 LED灯端口对应在STC89C52芯片上上是P1口; 矩阵键盘与STC89C52芯片的P3_0~P3_3直接相连; 如下图所示: 芯片STC89C52 LED电路 4*4键盘矩阵 五、键盘矩阵扫描 确定矩阵式键盘上何键被按下的方法有高低电平翻转法和线反转法(或者称为行列翻转法) 。 高低电平翻转法:首先让P1口高四位为1,低四位为0,。若有按键按下,则高四位中会有一个1翻转为0,低四位不会变,此时即可确定被按下的键的行位置。   然后让P1口高四位为0,低四位为1,。若有按键按下,则低四位中会有一个1翻转为0,高四位不会变,此时即可确定被按下的键的列位置。 线反转法(或者称为行列翻转法):首先,让单片机的行全部输出0,列全部输出1,读取列的值(假设行接P3口的高四位,列接低四位)。即P3= 0x0f ; 此时读列的值,如果有键按下,则相应的列读回来的值应该为低。譬如此时读回来的值为 0x0e ; 即按键列的位置已经确定。这时反过来,把行作为输入,列作为输出,即P0 = 0xf0 ;知道了一个按键被按下的行和列的位置,那么就可以肯定确定它的位置了。我们把读回来的行值和列值进行或运算。即 0xe0 | 0x0e 即 0xee。那么0xee就是我们按下的按键的键值了。 本试验中应用的是行列反转法。 六、电路原理图 密码锁开锁电路原理图 七、流程图 下载图 九、程序代码 #includereg52.h #define SCANPORT P3 Unsigned char Key[4][4] = {0x00,0x01,0x02,0x03,0x10,0x11,0x12,0x13,0x20,0x21,0x22,0x23,0x30,0x31,0x32,0x33}; //所用键盘位置 unsigned int lock_num = 456;//初始密码 unsigned int input_n

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档