1、基本于单片机 AT89C52 加密的流动心形图案队 名 : 从心开始组 长 : 谢成刚组 员 : 吴亿文,洪舒媚完成时间 : 2011-3-30- 2 -目 录【摘 要】 .- 3 -1.1 概述 .- 4 -1.2 设计方案 .- 4 -1.3 器件介绍 .- 4 -1.3.1 主控芯片 AT89S52 - 4 -1.3.2 74HC573 芯片 - 9 -1.3.3 74HC138 译码器 - 9 -1.3.4 四位数码管 .- 10 -1.4 硬件布局 .- 11 -1.4.1 键盘输入部分 - 12 -1.4.2 复位部位 - 12 -1.4.3 晶振部分 .- 13 -1.4.4 闪
2、动心形 LED 灯 .- 14 -1.4.5 蜂鸣器 .- 15 -1.5 心得体会 - 15 -参考文献: .- 16 - 3 -基本于单片机 AT89C52 加密的流动心形图案设计报告【摘 要】随着科技技术的不断提高,随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。随着人们生活水平的提高,如何实现一些私有物品加密这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。本文从经济实用的角度出发,采用美国 Atmel 公司的单片机 AT89S52 作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、开锁等电路,用 C语言
3、编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。经实验证明,该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅、办公室私有物品加密的要求,具有推广价值。关键词密码锁 单片机 LEDAbstractAs electronic products are developing towards intelligence and minimization, singlechip computers (SCM ) have become the first choice for controllers in the development of electro
4、nic products. With the improvement of peoples living - 4 -standards, it has become particularly prominent about how to achieve protect the things of own. The traditional mechanical lock has such shortcoming as simple structure , Low security, it cant meet peoples demands.For practicality, this paper
5、 designs a new electronic cipher lock, which has the function of alarm and whose cipher can be changed many times. This cipher lock uses AT89S52 SCM as main chip. The author made this cipher lock by use of making controlled program of master CMOS with periphery electrocircuit of keyboard input, disp
6、lay, alarm and unlock.Experiments show that the designed cipher lock is characterized by its reasonable designing methods, simple operation, low cost and property of safety and practicalityBesides,it works well as a residence lock and has great potential for commercial developmentKey words: Cipher l
7、ock SCM LED 1.1 概述在日常生活和工作中,目前很多人在家里的时候喜欢把自己私人物品随手放在一些明显的地方;这样很容易被一些小孩随便拿来玩,而且一不小心又弄坏了。针对这些小烦恼给人们带来的不便,为满足人们对自己私有物品的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的
8、提高出现了越来越多的电子密码锁。1.2 设计方案本系统利用 STC89C52 单片机用 12MHZ 的晶振频率来驱动电路,根据按键输入控制 I/O 口输出,从键盘中输入密码,当密码正确时才可以驱动整个电路,否则电路中的高亮灯会闪亮一下,还有一个按键作为复位,当输入错误的时候可以复位重新输入密码。当输入完毕后,心形的流动 LED 会流动闪亮,这是根据电容储电能与三极管导通特性来焊接的。- 5 -1.3 器件介绍1.3.1 主控芯片 AT89S52AT89S52 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦
9、写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52 性能简介AT89S52 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入 /输出(I/O)口,5个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,
10、2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S52 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。图 3-1 AT89S52 芯片引脚图其主要功能特性:兼容 MCS-51 指令系统 4k 可反复擦写 (1000 次)ISP Flash - 6 -ROM32 个双向 I/O 口 4.5-5.5V
11、工作电压2 个 16 位可编程定时/计数器 时钟频率 0-33MHz全双工 UART 串行中断口线 128x8 bit 内部 RAM2 个外部中断源 低功耗空闲和省电模式中断唤醒省电模式 3 级加密位看门狗(WDT)电路 软件设置空闲和省电功能灵活的 ISP 字节和分页编程 双数据寄存器指针 可以看出 AT89S52 提供以下标准功能:4K 字节 Flash 闪速存储器,128字节内部 RAM,32 个 I/O 口线,看门狗(WDT),两个数据指针,两个 16 位定时器/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时, AT89S52 可降至 0Hz 的静态逻
12、辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式何在 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。AT89S52 引角功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向 I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时
13、,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的 8位双向I/O 口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写 “1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。表3-1为P1 口第二功能。- 7 -表3-1 P1口第二功能端口引脚 第二功能P1.5 MOSI(用于ISP 编程)P1.6 MISO(用于ISP 编程)P1.7 SCK(用于ISP编程)P2口:P2是一个带有内部上拉电阻的 8位双向I/O 口,P2的输出缓冲级可驱动4个TTL
14、逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问位地址的外部数据存储器(如执行:MOVX Ri 指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的 8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I 。P3口除了作为一般
15、的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表3-2。表3-2 P3口的第二功能端口功能 第二功能 端口引脚 第二功能RXD(P3.0) 串行输入口 T0(P3.4 ) 定时/计数器0外部输入- 8 -TXD( P3.1) 串行输出口 T1(P3.5 ) 定时/计数器1外部输入INT0(P3.2) 外中断0 WR(P3.6 ) 外部数据存储器写选通INT1(P3.3) 外中断1 RD(P3.7) 外部数据存储器读选通RST:复位输入。当振荡工作时,RST 引脚出现两个机器周期上高电平将使单片机复位。WDT益出将使该引脚输出高电平,设置SFR AUXR 的 DISRTO 位(
16、地址8EH)可打开或关闭该功能。DISRTO 位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:第当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的 D0位置位,可禁止ALE操作。该位禁位后,只有一条MOVX 和MOVC指令ALE 才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE 无效。PSEN:程序储
17、存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU 公访问外部程序存储器(地址0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA 端为高电平(接Vcc 端),CPU则执行内部程序存储器中的指令。Flash 存储器编程时 ,该引脚加上12V 的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放
18、大器的输出端。AT89S52芯片内部结构- 9 -特殊功能寄存器:特殊功能寄存器的片内空间分存如下图3-2所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。中断寄存器:各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP 寄存器。图3-3为AUXR辅助寄存器。1.3.2 74HC573 芯片下面是这个芯片的引脚74HC573 芯片是一个锁存器,它在电路中有些不少的作用,特别在单片机的接口有限的情况下,这个芯片尤其重要,它通过控制 LE 端口来控制数据的端口 D0 至 D7 的流通。这样可以确保数据流通时的稳定
19、,和充分单片机的 IO口。1.3.3 74HC138 译码器下面是这个芯片的相关引脚- 10 -这个芯片的是主要功能是通过三个口 A,B,C 来控制八个数码管,它是输出低电平有效的,也就是输入三个数据,对应的 Y0 至 Y7 有相应高低电平。如果下图是资料:1.3.4 四位数码管按连接方式,数码管可分为共阴和共阳数码管,本系统采用共阴数码管,所有发光二极管的阴极接到一起形成公共阴极,当共阴极电源,某一字段的发光二极管接高电平时,相应字段即被点亮。表 0.1 元器件清单器件名称 参数 数量- 11 -万能板 3 块按键 16 个74HC753 锁存器 ST178 1 个四位共阳数码管 SM410
20、364 1 个限流电阻 10K、100 欧 2 个单排插针 若干面包板 1 块杜邦线 若干1.4 硬件布局硬件电路图如下:(由于仿真软件里还找到实物中的图片,此图片只是大至图)- 12 -相对应的原理框图如下:AT89C51键盘输入复位电路晶振电路电源输入显示电路38 芯片控制位位位选电路1.4.1 键盘输入部分由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清
21、空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4-4所示: 1KR234VCP.0567关89图4-4 键盘输入原理图1.4.2 复位部位单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指- 13 -令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST 为高电平期间),P0 口为高组态,P1 P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE 也为高电平。根据实际情况选择如图4-6所示的复
22、位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻 上的电RST压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于 某一数值后,CPU 脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5 与R6 分压比决定。由于R5R6 因此RST为高电平, CPU处于复位状态,松手后,电容C1充电,RST 端电位下降,CPU脱离复位状态
23、。R5 的作用在于限制按键按下瞬间电容 C1的放电电流,避免产生火花,以保护按键触电。 K1470562uFCV图4-6 复位电路原理图1.4.3 晶振部分AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-7所示方式连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、 C2取值范围在530pF 之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为 20pF。- 14 -20pFC31MHzXTAL图4-7 晶振电路
24、原理图1.4.4 闪动心形 LED 灯这里总共有12支LED 灯,分为三组,每当电源接通时,三只极管会争先导通,但由于元器件的差异,只会有一只三极管最先导通。这里假设V1 最先导通,则LED1至LED4点亮,由于 V1导通,其集电极电压下降使得电容C2的左端电压下降,接近OV,由于电容两端的电压不能突变,因此V2的基极也被拉到接近0V,V2截止,故接在其集电极的LED5至LED8 熄灭。此时V2 的高电压通过电容C3使V3 基极电压升高,迅速导通,LED9至LED12 点亮,因此在这段时间里,V1,V3的集电极均为低电压,LED1至LED4 到LED9至LED12被点亮,LED5 至LED8熄
25、灭。但随着电源通过电阻R3对C2充电,V2的基极电压逐渐升高,当超过0.7V时,V2的集电极下降电压导通,集电极电压下降。LED5至LED8 点亮。与此同时,V2的集电极 下降电压通过电容C3使V3的基极的电压也下降,V3由导通变为截止,其集电极电压升高,LED9至LED12熄灭。接下来,电路按照上面叙述的过程不断循环。- 15 -1.4.5 蜂鸣器这里应用的是达林顿三极管来放大电路的,达林顿三极管是两颗三极管串接组合的。电流放大倍数是两个三级管各别放大倍数的相乘,这个数字往往可以过万。很明显,较之一般开关三级管,达林顿开关三级管的驱动电流甚小,在驱动讯号微弱的地方是较好的选择达林顿开关三级管
26、的缺点就是输出压降较一般开关三极管多了一个级数,它是两个三极管输出压降的相加值。由于第一级三极管功率较小,一般输出压降较大,所以造成了达林顿开关三极管是一般开关三级管输出压降3倍左右。使用时要特别注意是否产生高温;另外高放大倍数带来的不良作用就是容易受干扰,在设计线路时也要注意相关的保护措施。1.5 心得体会在这次的大赛之前,我自己学了有一些我们专业的知识,但一直都不懂怎么去应用,更不知道那么什么最小系统的。但参加了这次的大赛以后,我将我学的东西运用到了实践中,终于体会到理论与实践的差距了,我仿真软件上有些是可以进行的,但到了实践的环境中的时候就不行了,其中也走了不少的弯路,在遇到很困难的时候我还想过放弃的,因为真的挺烦的,但还是我还是熬过这个关,而且对一些电路的基本知道更加巩固了,还学到了不少的新的知识。- 16 -其中还要感谢师兄的帮助,每当我遇到问题自己解决不了时,我都跑上楼去,去问师兄,在这里我要深深地感谢帮助我的师兄参考文献:1 石文轩,宋薇.基于单片机 MCS 一 51 的智能密码锁设计M.武汉工程职业技术学院学报,2004,(01);2 祖龙起,刘仁杰 .一种新型可编程密码锁J.大连轻工业学院学报,2002,(01);