密码锁控制器设计- zh90702910的日志- 网易博客

密码锁控制器 设计

2010-04-06 18:14:02 阅读9 评论0 字号:

 

 

 

 

济源职业技术学院

 

毕    业    设    计

 

 

 

 

 

题目

           密码锁控制器                            

系别

              机电系                     

专业

         机电一体化              

班级

             机电0502                         

姓名

              石  柯                    

学号

             05010222                    

指导教师

              张咏梅                       

日期

            2007年12月                         

 

 



 

前   言

计算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。单片化是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,这种单片计算简称单片机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的所以单片机又称微控制器MCU(Micro Controller Unit)。用它可以很容易地将计算机嵌入到各种仪器和现场控制设备中,因此单片机又叫做嵌入式微控制器(Embedded MCU)。单片机自20世纪70年代问世以来,以其鲜明的特点得到迅猛发展,已广泛应用于家用电器、智能玩具、智能仪器仪表、工业控制、航空航天等领域,经过30多年的发展,性能不断提高,品种不断丰富,已经形成自动控制的一支中坚力量。据统计,我国的单片机年容量已达1~3亿片,且每年以大约16%的速度增长,但相对于国际市场我国的占有率还不到1%。这说明单片机应用在我国有着广阔的前景。对于从事自动控制的技术人员来讲,掌握单片机原理及其应用已经成为必不可少的学习任务。

单片机经过30多年的发展,已经形成一个规格齐全、品种繁多的大家族,用户有非常大的选择余地。下面为读者简单介绍目前市面上常见的主流单片机。

  单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有重要的用途。其主要的用途可以分为以下方面。

l        显示:通过单片机控制发光二极管或是液晶,显示特定的图形和字符。

l        机电控制:用单片机控制机电产品做定时或定向的动作。

l        检测:通过单片机和传感器的联合使用,用来检测产品或者工况的意外发生。

l        通信:通过RS-232串行通信或者是USB通信,传输数据和信号。

l        科学计算:用来实现简单的算法。

那么单片机是不是解决上述应用的{wy}选择呢?淡然不是!目前,在自动控制中,一般有三种选择,分别是嵌入式微机、DSP和单片机。

单片机最明显的优点是价格便宜,从几元人民币到几十元人民币。这是因为这类芯片的生产量很大,技术也很成熟。

其次,单片机的体积也远小于其他两种方案。单片机本身一般用40引脚封装,当然功能多一些的单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只有8只引脚。

当然,单片机无论在速度还是容量方面都小于其他两种方案,但是在实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能。例如,控制电冰箱的控制器就不需要使用嵌入式系统,用一片51就可以轻松实现。所以应用的关键是看能否够用,是否有很好的性能价格比。51系列的单片机已经面世十多年,依然没有被淘汰,还在不断发展中,这就说明是他有广阔的应用前景。

我们的密码所控制器就是以单片机为核心设计的,本设计采用的是ATMEL公司的AT89C51芯片,此芯片根据了充分的静止CMOS 控制器与三级节目记忆锁,共有32 条I/O 线, 2 定时计数器, 6 个中断来源,4 K 闪存, 128 个字节在芯片RAM。

随着社会的发展,密码所控制器也在不断的发展,最早的有4位密码的密码锁控制器,发展到6位,甚至可以设计出具有语音功能(声控)、红外线感应功能等先进的密码锁控制器。

在这里,我们设计的是一个可以设置6位密码的密码所控制器。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

总体方案设计

总体框图设计

   密码锁控制器的总体设计框图如图2.1所示。

图2.1  总体设计框图

 

显示控制方案

再构成多位LED显示时,点亮数码管的方式有静态显示和动态显示两种。

静态显示方式:LED的静态显示是指当数码管显示某一字符时,相应段的发光二极管处于恒定地导通或截止状态,直到显示另一字符为止。

静态显示方式各位可独立显示。由于各位分别由一个8位I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口,较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,便于监测和控制。

动态显示方式:LED动态显示就是利用单片机依次输出每一位数码管的段选码和对应于该位数码管的位选控制信号,一位一位轮流点亮各七段数码管。对每位数码管来说,每隔一段时间点亮一次,如此循环。利用人眼的“视觉暂留”效应,只要每位显示间隔足够短就可以给人一同时显示的感觉。在动态显示方式中,同一时刻,只有一位LED数码管在显示,其他各位是关闭的。在段选码和位选码每送出一次后,应保持1ms左右,这个时间应根据实际情况而定。不能太小,因为发光二极管从导通到发光有一定的延时,导通时间太小,发光太弱人眼无法看清。但也不能太大,因为毕竟要受限制于临界闪烁频率,而且此时间越长,占用CPU时间也越多。

在这里我们选用动态显示方案,74LS273作为LED显示器字段口,位选由AT89C51中P1.0~P1.5控制。

2.2  动态显示电路图

键盘控制方案

键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟I/O接口线,I/O接口线浪费较大,在单片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根I/O接口线上,故只在按键数量不多时采用。而行列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省I/O接口。本设计选用独立式键盘。

2.3  独立式键盘电路图

软件总体设计方案 

对于软件我们的设计思路是:

1. 要有键盘扫描子程序,按下的功能键和数字键的扫描后,送数字键处理程序、开锁程序、密码设定程序进行下一步动作。并对功能键和复位键设置有效的标志以便于应用。

2.要有数字处理程序,以下是数字处理程序,将6位密码放入40H~45H单元,并调用显示子程序。

3. 要有开锁程序,开锁程序首先判断密码是否为6位,如不是,重新扫描按键。如是6位,将密码进行逐位比较,密码正确则开锁,密码错误报警并复位,重新设置密码。

4. 要有密码设置程序,将6位密码写入M24C01中后锁死密码锁并调用显示子程序显示密码。

5.要有显示子程序,当键入一个数值或符号时显示程序要把这个键入的数字或字符显示出来。

 

 

 

 

 

 

 

 

 

 

电路原理图

 

 

2.3  电路原理总图

 

 

 

 

 

 

所选硬件系统介绍

89C51单片机的简介

  AT89C51是MCS-51系列单片机的典型产品,我们就这一代表性的机型进行系统的讲解。AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

3.1    单片机内部结构示意图

1、中央处理器

    中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

2、数据存储器(RAM)

    AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

3、程序存储器(ROM)

AT89C51共有4KB掩膜ROM,{zd0}可扩展64K字节,用于存放用户程序,原始数据或表格。

4、定时/计数器:

89S51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

5、并行输入输出(I/O)口:

89S51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。

6、中断系统

89S51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

89C51单片机的引脚

AT89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的. 89S51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分. AT89C51单片机为双列直插式封装结构, 如图3.2所示.

主要特性:

1、与MCS-51 兼容                   

2、4K字节可编程闪烁存储器

3、寿命:1000写/擦循环            

4、数据保留时间:10年

5、全静态工作:0Hz-24Hz            

6、三级程序存储器锁定

7、128*8位内部RAM                 

8、32可编程I/O线

9、两个16位定时器/计数器          

10、5个中断源

11、可编程串行通道                 

12、低功耗的闲置和掉电模式

13、片内振荡器和时钟电路

图3.2  AT89C51引脚分配图

 AT89C51单机的电源线有以下两种:

(1) VCC:+5V电源线。电源线  

(2) GND:接地线。

AT89C51单片机的外接晶体引脚有以下两种:

(1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。

(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。外接晶体引脚。

   控制线  AT89C51单片机的控制线有以下几种:

(1) RST:复位输入端,高电平有效。

(2) ALE/PROG:地址锁存允许/编程线。

(3) PSEN:外部程序存储器的读选通线。

(4) EA/Vpp:片外ROM允许访问端/编程电源端。 

 

89C51单片机复位方式

单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位. 复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.

AT89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位. 复位后,PC程序计数器的内容为0000H,片内RAM中内容不变. 复位电路一般有上电复位、手动开关复位和自动复位电路3种,如图3.3所示.

a.上电复位电路          b. 手动复位电路       c. 自动复位电路

图3.3  单片机复位电路

由于设计所需,我们在这里选用手动式复位电路。由外部扩展M24C01设定功能键控制手动式复位电路。

3.4 M24C01的功能

串行EEPROM用M24C01,引脚含义如下:

?           E0、E1、E2:芯片的地址输入端;

?           SDA:串行数据输入/输出端;

?           SCL:串行时钟输入端

?           WC:写保护输入端,当该端为低电平时不允许向芯片写数据。

 

图3.4  M24C01管脚图

的功能

    74LS244是一种史密特触发的8位三态缓冲器,抗干扰性好。它的引脚封装图如图3.4所示。

74LS244的主要性能如下:

l        三态输出驱动总线。

l        抑制噪声设计。

l        典型逻辑延时为10.5ns(输出状态不改变)/12ns(输出状态改变)。

l        快速使能为12ns.

l        在较低功耗下具有很强的驱动能力。

图3.5  74LS244管脚图

的功能

74LS273为8D锁存器。当它的使能端信号有效且触发端信号有效时,输入D1~D8端的数据被锁存到8D触发器中并形成输出Q1~Q8。74LS273的引脚封装如图3.5所示。

图3.6  74LS273管脚图

74LS273在这里作为LED显示器字段口。

键盘接口工作原理

在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。

3.7.1 按键开关的去除抖动功能

目前,  MCS—51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.6所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。由于抖动,会造成被查询的开关状态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须xx产生的前沿(后沿)抖动影响。

图3.7  按键过程

3.7.2 独立式键盘的接口电路

独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。如图3.7所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。故只在按键数量不多时采用这种按键电路。

在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。

图3.8  独立式键盘电路

七段LED显示工作原理

数码管结构:

数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 ~9、字符A ~ F及小数点“·”。数码管的外形结构如图2.7(a)所示。数码管又分为共阴极和共阳极两种结构,分别如图2.7(b)和图2.7(c)所示。

LED显示器是由发光二极管显示字段的MCS-51单片机输出设备。单片机应用系统常采用七段LED数码管作为显示器,这重显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。因此应用比较广泛。

LED数码管显示器可以分为共阴极和共阳极两种结构:

(a)外形结构             (b)共阴极                     (c)共阳极

图3.9  数码管结构图

在这里我们选用共阴极结构。

共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

共阳极数码管的工作原理与共阴极的正好相反。

 

 

 

 

 

 

 

 

软件设计

主程序模块

 

主程序初始化和按键控制,首先分别将数据单元进行初始化清0,然后将功能键和复位键原有标志xx,将密码读出单元初始化,并锁定xxx和密码锁,同时显示出提示符“P”, 再调用扫描子程序,如此周而复始的循环,如图4.1所示。

 

图4.1  主程序流程图

 

 

 

键盘扫描子程序模块

图4.2  键盘扫描程序流程图

                MOVX           A,@R0

                CPL            A

                JZ             TZ1

                LJMP           KEY0

 

 

 

 

 

数字处理程序模块

图4.3  数字处理程序流程图

CHECK:         INC           47H

               MOV           A,47H

               CJNE          A,#07H,TRAN

               DEC           47H

               LCALL         DISPLAY

               LJMP          JAN

TRAN:          LCALL         NEXT

               LCALL         DISPLAY

               LCALL         DISPLAY

               LJMP          CHKEY

 

 

 

 

 

开锁程序

图4.4开锁程序流程图

OPEN:         MOV         A,47H

              CJNE        A,#06H,JCHECK

              LJMP        CMP

JHECK:        LCALL       DISPLAY

              LJMP        CHKEY

CMP:          MOV         R0,#35H

              MOV         R2#6

              MOV         R1,#45H

C1:           MOV         A,@R1

              XRL         A,@R0

              JNZ         C3

              DEC         R1

              DEC         R0

              DJNZ        R2,C1

              MOV         R5,#7

密码设置程序

图4.5 密码设置程序流程图

EPASS:           MOV        A,47H

                 CJNE       A,#06H,ERR

                 LCALL      WRITE

                 SETB       P1.7

                 LCALL      DISPLAY

                 LJMP       PED

ERR:             SETB       21H

PED:             RET

 

 

系统调试

在伟福中的调试

完成了硬件的设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。系统调试包括硬件调试和软件调试两个部分。不过,作为一个单片机系统,其运行是软硬件相结合的,因此,软硬件的调试也是{jd1}不可能分开的。

首先在伟福中进行调试,打开伟福仿真软件的界面,对仿真器进行参数设置。

图5.1 仿真器的选择

我们所选的是8751的仿真器,在目标生成文件中选择生成BIN和HEX文件(即二进制和十六进制文件)其设置如图5.2所示,设置完成后点“好”就可以了。

 

图5.2

在伟福中输入程序后并编译之后,出现一些输入错误和程序编写错误。在经过一番修改之后,纠正了这些错误终于编译成功。{zh1},将文件保存在以自己学号或姓名命名文件夹下。

在Keil中的调试

在伟福内调试通过以后,再在Keil中下载到实验箱上进行验证,显现出所要求的效果。而在Keil中也要进行一些参数的设置,首先打开Keil仿真软件,首先要新建一个项目,点菜单Project→New Project,在弹出的对话框中选择保存的路径并输入项目名称“密码锁”后保存,然后在弹出新的项目窗口中选择参数,其参数的设置如下,由于我们使用的是Atmel公司的芯片,所以要选Atmel后确定。如图5.3所示:

图5.3

在弹出的对话框中选择AT89C51这个芯片,确定。如图5.4所示:

图5.4

然后开始设置它的参数值,如图5.5所示:

图5.5

在Xtal中输入频率为11.0592MHZ,然后再选Debug这个标签,选中第二个Use复选框后点击Setting在弹出的对话框中选择Baudrate这一项,设置它的参数为38400,后OK。如图5.6所示:

图5.6

把以上的参数设置完成以后把程序添加进来编译,编译通过后接上实验箱进行验显。

结 论

依据本论文设计以AT89C51单片机为核心的密码锁控制器,经过近4个月的设计,{zh1}按设计要求终于在单片机实验箱上试验成功,选择不同的单片机,可以组成具有较强抗干扰能力和运行可靠性的产品,其抗干扰能力虽然不如PLC,但PLC价格较贵,用单片机运行效果仍然令人满意,同时证明了本方案的正确性。

该密码锁控制器是由单片机控制的电子密码锁控制器,应用非常广泛。如果能改造成激光感应控制、热感应控制、或声控的话,会使密码锁控制器应用到更多的领域。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

经过一个多月的努力,终于圆满的完成了本次设计任务。在本次设计中,遇到许多困难,充分表明我在以往的学习过程中在这方面知识的欠缺和经验不足。在本次设计中我得到了许多老师和同学的帮助,才使得我的设计顺利进行。特别是张咏梅老师以及同班的几位同学,在此我向他们表示最诚挚的感谢。

转眼三年的大学生活就要结束,我们也将步入社会开始自己新的生活。通过这段时间做论文,我深深的感到自己在学校所学到的书本上的知识,还远不能满足自己以后的需要。虽然自己将要告别学生生活,但自己在以后的工作中还要更加努力的学习,做到“活到老,学到老”。我相信三年的大学学习、生活,将成为我人生中的一笔宝贵的财富。

我在做论文的过程中得到了各任课老师的指导与教诲,特别是张咏梅老师对我的认真不倦的辅导,才使我顺利的完成了论文。感谢张老师诲人不倦的教学态度。同时在写论文的过程中参考了大量的参考文献,在此向作者表示诚挚的谢意。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[1] 刘和平,刘跃.单片机原理及应用.重庆:重庆大学出版社,2004

[2] 张立科.单片机典型外围器件及应用实例.北京.人民邮电出版社,2006

[3] 陈明荧.89C51单片机课程设计实训教材.北京:清华大学出版社,2004

[4] 刘瑞新.单片机原理及应用教程.北京:机械工业出版社,2003

[5] 马彪.单片机应用技术.郑州.中国轻工业出版社,2006

[6] 饶庆和.89C51单片机实用技术.北京:人民邮电出版社,2003

[7] 楼然苗,李光飞.51系列单片机设计实例.北京: 北京航空航天大学出版社,2003

[8] 黄庆华.单片机开发戀术与实训.北京.电子工业出版社,2006

[9] 杨西明,朱骐.单片机编程与入门.北京:机械工业出版社,2004

[10] 李传军.单片机原理及应用.河南.河南科学技术出版社,2006

[11] 李朝青,单片机原理及接口技术.北京:北京航空航天大学出版社,2002

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<#--{zx1}日志--> <#--推荐日志--> <#--引用记录--> <#--相关日志--> <#--推荐日志--> <#--推荐阅读--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->
郑重声明:资讯 【密码锁控制器设计- zh90702910的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——