1 引言 .............................................. 错误!未定义书签。 2 概述 .............................................. 错误!未定义书签。
2.1 背景 ........................................ 错误!未定义书签。 2.2 设计要求 .................................................... 2 3 总体设计 .......................................................... 3
3.1 方案的论证与比较 ............................................ 3 3.2 总体设计思路 ................................................ 3 4 硬件设计 .......................................................... 5
4.1 处理器 ...................................................... 5 4.2 键盘 ........................................................ 9 4.3 显示电路 ................................................... 12 4.4 其他外围辅助电路 ............................ 错误!未定义书签。 4.5 总体电路 .................................... 错误!未定义书签。 5 软件设计 ......................................................... 18
5.1 总体方案 .................................... 错误!未定义书签。 5.2 流程图 ...................................... 错误!未定义书签。 5.3 源程序 ...................................... 错误!未定义书签。 6 系统调试 ......................................................... 23 7 结语 .............................................. 错误!未定义书签。 致谢 ................................................................ 24 参考文献 ............................................. 错误!未定义书签。
1引言
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,基于单片机的密码锁由于其安全可靠、成本低廉、连接方便、简单易用,保密性高,受到了广大用户的亲赖,得到了广泛的应用。
微电子技术的不断发展,出现了磁控锁、声控锁、超声波锁、红外线锁、电磁波锁、电子卡片锁、指纹锁、眼球锁、遥控锁等。这些锁具有机械结构所无法比拟的高保密性能,还可在特定的系统中,按设定的逻辑关系实现系统的程序控制。但这类产品,只能适用于保密性高,供个别人使用的箱、柜、房间等。加上成本比较高,一定程度上限制了这类产品的推广应用。
本设计是一款性价比较高的的密码锁。为适应功能需要以及兼容性等问题,采用SM8958为核心的单片机控制方案。该方案主要由主控部分、键盘、显示、示警电路、执行机构等部分构成。其中密码由键盘输入端口输入,解码正确条件下,输出开锁电平,控制电控锁开启。
另外,附加了一些常用设计,有效按键提示、错误输入告警、多次(可软件设计次数)误码输入报警以及防止长时间无效操作的定时中断系统。该电路还可以与其他报警电路配合完成防盗报警功能。
1
2 概述
在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
本次密码锁的设计,其主要具有如下功能:
(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(6位密码),密码输入正确才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。 (3)报警、锁定键盘功能。密码输入错误会发出警告音。若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。 (4)有效按键提示。
(5)90秒定时中断,输出控制信号,防止长时间无效操作。 (6)其他扩展功能。
2
3 总体设计
方案的论证与比较
设计本课题时构思了两种方案:一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。另一种是用以SM8958为核心的单片机控制方案。
(1)方案一:采用数字电路控制,数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
(2)方案二:采用一种是用以SM8958为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加红外遥控控制功能。
通过比较以上两种方案,考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,而单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
总体设计思路
本次设计以单片机SM8958为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机输出报警信号。对密码的输入、处理是本次设计的重点,配以其他电路实现基于单片机的多功能密码锁。其基本要求及主要模块如下:
电子密码锁的设计主要由三部分组成:处理器、3×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,
3
同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。 (3)密码更改功能:将输入的值作为新的密码。
(4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。如何解决以上关键问题是本次设计的重点。
4
4 硬件设计
本次设计的处理器选择SyncMOS公司的SM8958,SM8958系列产品是一种内嵌32KB闪存和1KB片内RAM的8位单片微控制器它是80C51微控制器家族的派生产品SM8958的PDIP封装具有32 个I/O口,PLCC/QFP 封装则具有多达36个I/O口且片内32KB的闪存既可以当作程序空间,又可以当作数据空间或者数据和程序混合空间。 由于它的这些硬件特征和强大的指令系统使得它成为一种性能价格比很高的控制器。片上闪存可以使用商用编程器通过并口进行编程。其存储器结构如下:
SM8958 是在通用80C52 内核的基础上集成了768B片内RAM和32K闪存的单片微控制器。它的内部存储器结构与通用的80C52 内部存储器的结构相同。
其主要特性如下:
➢ █
➢ █ 编程电压12V
➢ █ 与通用80C51 家族产品完全兼容 ➢ █ 每个机器周期为12 个时钟周期 ➢ █ 32K 字节片上闪存 ➢ █ 1024 字节片上数据RAM ➢ █ 3 个16 位定时/计数器
➢ █ PDIP 封装具有4 个8 位I/O 口
➢ █ PLCC 或QFP 封装具有4 个8 位I/O 口外加1个4 位I/O 口 ➢ █ 全双工串口通道 ➢ █ 位操作指令 ➢ █ 页自由跳转
➢ █ 8 位无符号除运算 ➢ █ 8 位无符合乘运算 ➢ █ BCD 码运算 ➢ █ 直接地址访问 ➢ █ 间接地址访问 ➢ █ 嵌套中断
➢ █ 两个中断优先级 ➢ █ 1 个串行I/O 口
➢ █ 省电模式空闲模式和掉电模式 ➢ █ 工作时钟为25MHz ➢ █ 代码保护功能
➢ █ 1 个看门狗定时器(WDT) ➢ █ 低EMI(禁止ALE) 其引脚图如图4.1所示。
5
图4.1 8958引脚图
程序存储器
SM8958 具有片上的32K 字节的闪存可以作为通用的程序存储器所示。
图4.2 程序存储器配置
0000H 32KB程序存储器空间 7FFFH 数据存储器
SM8958具有1KB的片内RAM,低256B与80C52 的片内RAM 结构一样。扩展的高768B RAM可以用访问外部存储器的方式进行访问(利用指令MOVX)。如图所示。
6
FF 80 7F 00 图4.3 数据存储器配置 高128 字节(只能用间接地址方式访问 低128 字节(可用直接或间接地址方式访问 SFR 空间(只能用直接地址方式访问 如图(三)所示,说明如下: (1)数据存储器低128B
数据存储器从00H--FFH 的地址空间同80C52是相同的。 00H--7FH 的地址空间可以直接访问也可以间接访问; 00H--1FH 的地址空间是寄存器空间; 20H--2FH 的地址空间是位寻址空间; 30H--7FH 的地址空间是通用数据存储区。 (2)数据存储器高128B
数据存储器的高128B范围是80H--FFH ,只可以用间接地址方式访问,这部分空间也是数据存储区。 (3)数据存储器扩展的768B
从外部地址0000H--02FFH 是片内扩展RAM区,共768B。这部分地址空间只能用直接外部地址方式访问(利用MOVX 指令)。 (3)内部存储区页选择寄存器(IMPSR,85H) 内部存储区页选择寄存器,如表4.1所示。
表4.1 内部存储区页选择寄存器 MSB R 0 R 0 R 0 R 0 R 0 R 0 PS1 0 LSB PS0 0 说明:R 表示系统保留。
SM8958片内具有只能用访问外部存储器的方式进行访问的768B扩展RAM(访问时用指令MOVX)。
7
指令MOVX @Rn 所访问的地址空间由IMPSR 寄存器的位1 和位0(PS1,PS0)决定PS1,PS0 的默认设置值是00(页0)。
如果MOVX @DPTR 指令所访问的地址大于02FFH 时SM8958 会自动产生访问外部存储器的控制信号。特殊功能寄存器SCONF 的位1(OME)的值决定了允许还是禁止访问扩展的768 字节RAM 。该位的默认设置为1,可以访问内部扩展的768 字节RAM。
指令MOVX @Rn 所能访问的地址空间由特殊函数寄存器IMPSR(85H)的位1(PS1)和位0(PS0)决定。PS1和PS2的默认设置是00。
数据存储器的一页是256 字节,具体如下:
PS1,PS0=00 指令MOVX @Rn 的Rn 映射为数据存储器的第0页,地址空间为0000H--00FFH;
PS1,PS0=01 指令MOVX @Rn 的Rn 映射为数据存储器的第1页,地址空间为0100H--01FFH;
PS1,PS0=10 指令MOVX @Rn 的Rn 映射为数据存储器的第2 页,地址空间为0200H--02FFH;
PS1,PS0=11 指令MOVX @Rn 的所能访问的地址空间为:XY00H--XYFFH。高位地址由P2 口决定(SM8958 会自动产生访问外部存储器的控制信号)。 看门狗定时器(WDT)
看门狗定时器(WDT)是1 个16 位自运行计数器在计数器溢出时会产生复位信号WDT 对那些易受噪声干扰电压波动或放电现象影响的系统很有用在程序跑飞或死机的情况下WDT 可以使用户程序脱离不正常状态WDT 不同于8052 系统的定时器0 定时器1 和定时器2 通过软件周期性的清除WDT 计数器的值可以防止WDT 产生复位信号。
SM8958 的 WDT 可以对基准时钟源选择分频输入要选择分频输入就要相应地设置WDT 控制寄存器(WDTC)的位2--位0的值。
置位WDT的位7(WDTE)即可使能WDT。 WDTE 位置1后,16 位计数器根据 PS2 --PS0 所确定的时钟输入开始工作。计数器溢出时会产生复位信号,此时WDT 的WDTE位会被清零,另外硬件复位也可以将WDTE 清零。
置位WDT 的位5(CLEAR)可以复位WDT,同时清除计数器的内容,使计数器重新开始计数。
(1)WDT 控制寄存器(WDTC,9FH)
WDT 控制寄存器,如表4.2所示。
表4.2 WTD控制寄存器 MSB LSB 8
WTDE R R R R 0 PS2 0 PS1 0 PS0 0 0 0 0 0 说明:上面寄存器内的值为系统复位值; WDTE:看门狗定时器使能位; CLEAR:看门狗定时器复位位; PS2 PS0:时钟源分频选择位。 (2)时钟分频描述如下表4.3所示。 PS2 0 0 0 0 1 1 1 1 PS1 0 0 1 1 0 0 1 1 PS0 0 1 0 1 0 1 0 1 表4.3 时钟分频 分频器(晶振输入) 8 16 32 64 128 256 512 1024 时钟周期(ms)@40HZ (3)系统控制寄存器(SCONF,BFH) 系统控制寄存器,如表4.4所示。
表
MSB WDR 0 R 0 R 0 R 0 R 0 R 0 OME 0 LSB ALE1 0 说明:上面寄存器内的值为系统复位值
WDR:看门狗定时器复位位当看门狗定时器溢出而使系统复位时WDR 位被置1
OME:768 片上字节使能位
ALE1:ALE 输出禁止位可降低EMI
SCONF 的位7(WDR)是看门狗复位位当由于WDT 溢出而产生复位信号时该位被置1。在任何不可预测的复位发生时用户应该检查该位的值 (4)降低EMI 功能
SM8958 允许用户通过置位SCONF 寄存器的位0(ALE1)来降低EMI。该项功能的作用就是禁止Fosc/6 Hz 的时钟信号输出至ALE引脚。在系统没有外扩程序存储器或数据存储器的时候,可以使用这个功能。
4.2 键盘
键盘概念
9
键盘是最常用也是最主要的输入设备,通过键盘,可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。 键盘的分类
按照键盘的工作原理和按键方式的不同,可以划分为四种:
(1) 机械式键盘(Mechanical) 采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。
(2) 塑料薄膜式键盘(Membrane) 键盘内部共分四层,实现了无机械磨损。其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。
(3) 导电橡胶式键盘(Conductive Rubber) 触点的结构是通过导电橡胶相连。键盘内部有一层凸起带电的导电橡胶,每个按键都对应一个凸起,按下时把下面的触点接通。这种类型键盘是市场由机械键盘向薄膜键盘的过渡产品。 (4) 无接点静电电容式键盘(Capacitives) 使用类似电容式开关的原理,通过按键时改变电极间的距离引起电容容量改变从而驱动编码器。特点是无磨损且密封性较好。
按其结构形式可分为以下两种: (1)编码键盘
编码键盘采用硬件方法产生键码。每按下一个键,键盘能自动生成键盘代码,键数较多,且具有去抖动功能。这种键盘使用方便,但硬件较复杂,PC机所用键盘即为编码键盘。 (2)非编码键盘
非编码键盘仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单,广泛应用于各种单片机应用系统,本次设计使用非编码键盘。
按照键盘与单片机的连接方式可分为一下两种: (1)独立式键盘
独立式键盘,顾名思义,即各按键相互独立,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他按键的工作状态。这种按键软件程序简单,但占用I/O口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。
(2)矩阵式键盘
矩阵式键盘又称行列式键盘,在其行、列交汇点接有若干个按键。当需要较多按键时,与独立式键盘相比,单片机口线资源利用率大幅提高了。但若需要更多的键盘,需采用接口扩展技术,如8155等。
综上所述,结合实际情况,本次设计选用非编码矩阵式键盘。 非编码矩阵式键盘工作原理
非编码矩阵式键盘,作为单片外围电路,应具有如下功能: (1)键扫描功能,即检测是否有键按下。
(2)键识别功能,确定被按下键所在的行列的位置。 (3)产生相应的键的代码(键值)。
10
(4)消除按键弹跳及对于多键串键(复按)。 非编码矩阵式键盘工作原理主要以下几方面: (1)键扫描
键盘上的键按行列组成矩阵,在行列交点上都有对应有一个键。为判定有无键被按下(闭合)以及被按键的位置,一般使用扫描法。
首先判定有没有键被按下。键盘的行线一端经电阻接+5V电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键按下,可先向所有列线输出低电平,然后再输入各行线状态。若行线状态皆为高电平,则表示无键按下;若行线状态中有低电平则表明有键按下。
然后再判定被按键的位置。因为键盘矩阵有键被按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变成低电平。 (2)去抖动
当扫描表明有键被按下之后,紧急着应进行去抖动处理。因为常用键盘的键实际上是一个机械开关结构,被按下时,由于机械触点的弹性及电压突然跳变等原因,在触点闭合或断开的瞬间会出现电压的抖动。抖动时间长短与键的机械特性有关,一般为5~10ms。而键稳定闭合时间和操作者的按键动作有关,约为十分之几到几秒不等。抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误,因而必须设法消除抖动的不良后果。通过去抖动处理,可以得到按键闭合与断开的稳定状态。去抖动的方法有硬件与软件两种:硬件方法是加去抖动电路,如可通过RS触发器实现硬件去抖动;软件方法是在第一次检测到键盘按下后,执行一段20---30ms的延迟子程序后再确认该键是否确实按下,躲过抖动,待信号稳定之后,再进行键扫描。为了简单起见,本设计采用软件方法去抖动。 (3)键码计算
为了准确判断闭合键的位置,要对每个按键进行编码。根据矩阵式键盘的结构,采用行扫描的键位识别方法。使某条列线为低电平,如果这条列线上没有闭合键,则各行线的状态都为高电平;如果列线上有键闭合,则相应的那条行线即变为低电平。于是就可以根据行线号与列线号计算出闭合键的键码。扫描时由第一列开始,然后行线状态状态输入单片机,判断哪一行有键闭合,若无键闭合,再扫描第二列,检测下一列各行键闭合状态,由此一直扫描下去。至此扫描似乎已经可以结束,但是实际上扫描往往要继续进行下去,以发现出现的多键同时被按下。
最后得出被按下键的行号、列号,计算键码,公式如下:
键码 = 行首键号+列号
(4)等待键释放
计算键码后,再以延时后进行行扫描的方法等待键释放。等待键释放是为了保证键的一次闭合仅进行一次处理。 (5)键处理子程序
在计算机中每一个键都对应一个处理子程序,得到闭合键的键码后,就可以根据键码,转到相应的键处理子程序,进行字符、数据的输入或命令处理,这样就可以实现该键的功能。
(6)键盘扫描的中断控制方式
在单片机系统中,CPU除了对键盘进行处理外,还要进行数据处理、结果输出
11
显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键盘的工作。为提高CPU的工作效率,可采用中断扫描方式。当无键闭合时,CPU处理自已的工作,当有键闭合时,产生中断请求,CPU转去执行键盘扫描子程序并执行相应的功能。
设计中可采用4输入与门用于产生键盘中断,其输入端与各行线相连,输出端接至SM8958的外部中断输入端 。当无键盘闭合时,与门各输入端均为高电平,输出端为高电平;当有键闭合时, 为低电平,于是向CPU申请中断。若CPU开放中断,则会响应该键盘中断,转去执行键盘扫描子程序。
4.3 显示电路
显示器是最长用的输出设备。特别是发光二极管(LED)和液晶显示器(LCD),犹豫结构简单、价格便宜、接口容易,得到广泛的应用,尤其在单片机系统中大量使用。 LED结构与原理
LED就是Light Emitting Diode ,发光二极管的英文缩写,简称LED。它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
LED的技术进步是扩大市场需求及应用的最大推动力。最初,LED只是作为微型指示灯,在计算机、音响和录像机等高档设备中应用,随着大规模集成电路和计算机技术的不断进步,LED显示器正在迅速崛起,近年来逐渐扩展到证券行情股票机、数码相机、PDA以及手机领域。
LED显示器集微电子技术、计算机技术、信息处理于一体,以其色彩鲜艳、动态范围广、亮度高、寿命长、工作稳定可靠等优点,成为最具优势的新一代显示媒体,目前,LED显示器已广泛应用于大型广场、商业广告、体育场馆、信息传播、新闻发布、证券交易等,可以满足不同环境的需要。 通过发光二极管芯片的适当连接(包括串联和并联)和适当的光学结构。可构成发光显示器的发光段或发光点。由这些发光段或发光点可以组成数码管、符号管、米字管、矩阵管、电平显示器管等等。通常把数码管、符号管、米字管共称笔画显示器,而把笔画显示器和矩阵管统称为字符显示器。 .1 LED结构
基本的半导体数码管是由七个条状发光二极管芯片按一定排列方式组合而成。可实现0~9的显示。其具体结构有“反射罩式”、“条形七段式”及“单片集成式多位数字式”等。说明如下:
(1)反射罩式数码管一般用白色塑料做成带反射腔的七段式外壳,将单个LED贴在与反射罩的七个反射腔互相对位的印刷电路板上,每个反射腔底部的中心位置就是LED芯片。在装反射罩前,用压焊方法在芯片和印刷电路上相应金属条之间连好φ30μm的硅铝丝或金属引线,在反射罩内滴入环氧树脂,再把带有芯片的印刷电路板与反射罩对位粘合,然后固化。
反射罩式数码管的封装方式有空封和实封两种。实封方式采用散射剂和染料的环氧树脂,较多地用于一位或双位器件。空封方式是在上方盖上滤波片和匀光膜,为提高器件的可靠性,必须在芯片和底板上涂以透明绝缘胶,这还可以提高光效率。这种方式一般用于四位以上的数字显示(或符号显示)。 (2)条形七段式数码管属于混合封装形式。它是把做好管芯的磷化镓或
12
磷化镓圆片,划成内含一只或数只LED发光条,然后把同样的七条粘在日字形“可伐”框上,用压焊工艺连好内引线,再用环氧树脂包封起来。 (3)单片集成式多位数字显示器是在发光材料基片上(大圆片),利用集成电路工艺制作出大量七段数字显示图形,通过划片把合格芯片选出,对位贴在印刷电路板上,用压焊工艺引出引线,再在上面盖上“鱼眼透镜”外壳。它们适用于小型数字仪表中。
(4)符号管、米字管的制作方式与数码管类似。
(5)矩阵管(发光二极管点阵)也可采用类似于单片集成式多位数字显示器工艺
方法制作。
.2 LED显示器分类
(1)按字高分:笔画显示器字高最小有1mm(单片集成式多位数码管字高一般在2~3mm)。其他类型笔画显示器最高可达(0.5英寸)甚至达数百mm。 (2)按颜色分有红、橙、黄、绿等数种。
(3)按结构分,有反射罩式、单条七段式及单片集成式。 (4)从各发光段电极连接方式分有共阳极和共阴极两种。 4.3.1.3 LED显示器的参数
由于LED显示器是以LED为基础的,所以它的光、电特性及极限参数意义大部分与发光二极管的相同。但由于LED显示器内含多个发光二极管,所以需有如下特殊参数: (1)发光强度比
由于数码管各段在同样的驱动电压时,各段正向电流不相同,所以各段发光强度不同。所有段的发光强度值中最大值与最小值之比为发光强度比。比值可以在1.5~2.3间,最大不能超过2.5。 (2)脉冲正向电流
若笔画显示器每段典型正向直流工作电流为IF,则在脉冲下,正向电流可以远大于IF。脉冲占空比越小,脉冲正向电流可以越大。 LCD结构与原理
LCD就是Liquid Crystal Display,液晶显示器的英文缩写,简称LCD。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。
LCD是一种被动式显示器,由于它的功耗低,抗干扰能力强,因而在低功耗的单片机系统中大量使用。
LCD本身不发光只是调节光的亮度,目前市售的LCD显示器都是李勇液晶的扭曲——向列效应制成,这是一种电场效应,夹在两片导电玻璃电极间的液晶经过一定处理,他内部的分子呈90°的扭曲,挡线性偏振光透过其偏振面便会旋转90°。当在玻璃电极上加上电压后,在电场的作用下,液晶的扭曲结构消失,其旋光作用消失,偏振光便可以直接通过,挡去掉电场后液
13
晶分子又恢复扭曲的结构。把这样的的液晶置于两个偏振片之间,改变偏振片相对位置(正交或平行)就可以得到白底黑字或者黑底白字的显示形式。
LCD的主要参数有: (1)相应时间
响应时间是液晶显示器的一个特殊指标。液晶显示器的响应时间指的是显示器各像素点对输入信号反应的速度,响应时间短,则显示运动画面时就不会产生影像拖尾的现象。足够快的响应时间才能保证画面的连贯。目前,市面上一般的液晶显示器,响应时间与以前相比已经有了很大的突破,一般为几个到几十毫秒不等。
(2)余晖(毫秒级) (3)阈值电压(3--20V)
(4)功耗(5mW/cm2--100mW/cm2)
LCD七段显示器除了a--g这七个笔画以外,还有一个公共极COM。它可用静态方式驱动,也可用动态方式驱动。前者加上直流信号,后者加上交流信号。由于加直流信号将使LCD的寿命减少,故通常用动态驱动的方式。
当加在笔划(a--g)中某个电极上的方波和公共电极(COM)上的方波信号相位相同时,相对电压为0,则笔划不显示;当加在某个笔划电极上的方波与公共极上的方波相位相反时,则有幅值两倍于方波幅值电压加在液晶上,该笔划被选中而显示。
一般控制方波频率为25--100HZ,并保证其为对称方波,从而使加在液晶极板上的交流电压平均值为0,否则有较大的直流分量,使液晶材料迅速分解,这会大大缩短显示器的工作寿命。
单片机应用系统设计中还有一种点阵字符型液晶显示器(LCD),它是指显示的基本单元是一定数量的点阵组成,专门用于显示数字、字母、常用图形符号、少量自定义符号或汉字。这类显示器把LCE控制器、点阵驱动器、字符存储器等全做在一块印刷版上,构成便于应用的液晶显示模块(LDM)。点阵字符型液晶显示模块在国际上已经规范化,有统一的引脚和编程结构。字符型液晶显示模块有内置192个字符,另外,用户可自定义5*7点阵字符或5*11点阵字符若干个。显示行数一般为1行、2行、4行三种。每行显示8个、16个、20个、24个、32个、40个不等。 显示方案选择
本设计用LCD效果非常理想,但其成本相对高于LED,也比较复杂,故此次设计选用LED,也能达到预期的效果。要用单片机控制密码锁,就需要一个人机界面。常采用的方式是LED数码管显示测试结果,用一个小键盘执行某些功能,如请零、预置值、改变测量范围等等。故详细介绍LED的结构与原理。
14
发光二极管显示器(LED)是单片机应用产品中常用的廉价输出设备。它是由若干个发光二极管组成的,当发光二极管导通时,相应的一个点或者一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符,常用七段或者八段显示器结构。
LED显示是用发光二极管显示字段的显示器件,也可称为数码管,它由8个发光二极管构成,通过不同的组合可用来显示0~9、A~F及小数点。它的工作电压为1.5-3.0伏,工作电流为几毫安到几十毫安,寿命很长。
LED显示器分为共阳极和共阴极。
共阳极:把发光二极管的阳极连在一起构成共阳极。使用时公共端接Vcc,当某阳极为低电平时,该发光二极管就导通发光。输出一个段码就可以控制LED显示器的字型。
共阴极:是将8个发光二极管阴极连接在一起作为公共端,而共阳极是将8个发光二极管的阳极连接在一起作为公共端。我们这次就是采用的共阴极LED。表给出了共阴极字型与段码的关系,假定a、b、c、d、e、f、g、DP分别对应D0、D1、D2、D3、D4、D5、D6、D7。
表4.5 共阴极字型与段码的关系
段码 D7 DP D6 D5 D4 D3 D2 D1 D0 字形 g f e d c b a 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 a b c 15
5EH 79H 71H 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 1 0 d e f LED显示器有静态和动态显示两种方式。
所谓静态显示就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。这种显示器方式,每一位都需要有一个八位输出口控制,所占用硬件多,一般用于显示器位数较少(很小)的场合。当位数多时,用静态显示所需要的I/O口太多,一般采用动态显示方法。
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。显示器亮度既跟点亮时的导通电流有关,也跟点亮时间和间隔的比例有关。调整电流和时间的参数,可实现无闪烁,亮度较高,较稳定的显示。若显示器的位数不大于8位,则可控制显示器公共极电位只需一个I/O口(称为扫描口),控制各位显示器所显示的字形也需要一个8位口(称为数据口)。
4.4其他外围辅助电路
有效按键提示音电路,主要由蜂鸣器和驱动8050组成。
开锁执行机构由驱动电路和开锁两级组成。当用户输入的密码正确而且是在规定的时间内,单片机便输出开锁信号,送至驱动电路,然后驱动电控锁,达到开锁的目的。
注:在本次设计中,基于节省成本的原则,暂时用发光二极管代替电控锁,发光管亮,表示开锁;灭,表示没有开锁。
其他电路亦用发光二极管代替,如P3.1错误输入警告(WARN),P3.2九十秒定时中断,输出控制信号,防止长时间无效操作。P3.4三次误码输入条件下,产生报警电平。
硬件原理图,如图4.4所示。
16
图4.4 硬件原理图
17
5 软件设计
总体方案
密码锁软件采用51系列单片机汇编语言编程。软件包括键盘扫描、密码比较子程序、密码修改子程序、时钟修改和读取程序、延时子程序和LCD显示程序等。其中,键盘扫描子程序、密码比较子程序以及密码修改子程序是本次设计的核心,本次软件部分主要实现这三项功能。
程序流程图,见图4.5所示。
初始化
N=0
否 解码输入
是 是 输入新密码 修改密码 正确
否 否 正常开锁
错误输入告警
N=N+1
否 N>=3?
是
18
输出告警信号 封锁输入口 图
90秒定时中断 汇编语言程序
ORG 0000H SJMP START ORG 000BH LJMP INT ORG 0030H
START:MOV SP,#60H
MOV TMOD,#01H MOV TL0,#00H MOV TH0,#00H SETB TR0 SETB ET0 SETB EA
MOV 30H,#0FFH ; 定时控制 MOV 31H,#09H ; 定时控制
MOV R3,#03H ;三次误码输入控制 MOV R4,#06H ;初始密码位数控制 MOV R0,#40H;40H-45H初始密码 MOV A,#01H L1:MOV @R0,A INC R0 INC A
DJNZ R4,L1
L11:MOV 32H,#06H;键扫密码位数控制 MOV R1,#50H ;50-55H为新输入密码 L2:LCALL INPUT MOV @R1,A INC R1
DJNZ 32H,L2 SETB RS0 MOV R0,#40H MOV R1,#50H LCALL COMPARE CLR RS0
LCALL INPUT MOV R6,A
CJNE R6,#0BH,L3;B修改密码 L99:LCALL CHPW LJMP L10 L3:MOV R7,A
19
CJNE R7,#0AH,L5;A确认开锁 L10:CLR P3.0;开锁 SJMP $
L5:CLR RS0
CLR P3.4;错误输入警告 LCALL DELAY01 LCALL DELAY01 LCALL DELAY01
DJNZ R3,L11
CLR P3.1; 三次误码报警 AJMP $
COMPARE:MOV R3,#06H;密码比较位数控制 LPP1:CLR CY MOV A,@R0 SUBB A,@R1 JNZ L5 INC R0 INC R1
DJNZ R3,LPP1 RET
KEYI:MOV P1,#0FFH
MOV A,P1 CPL A
ANL A,#0FH RET
INPUT:LCALL KEYI JNZ LK1
LCALL DELAY LJMP INPUT
LK1:LCALL DELAY LCALL KEYI JNZ LK2
LCALL DELAY LJMP INPUT
LK2:MOV R5,#0EFH MOV R4,#00H LK4:MOV P1,R5 MOV A,P1
JB ACC.3,LONE MOV A,#00H LJMP LKP
LONE:JB ACC.2,LTWO
20
MOV A,#03H LJMP LKP
LTWO:JB ACC.1,LTHREE MOV A,#06H LJMP LKP
LTHREE:JB ACC.0,NEXT MOV A,#09H LKP:ADD A,R4 PUSH ACC
LK3:LCALL DELAY LCALL KEYI JNZ LK3 POP ACC
CLR P3.3;有效按键提示 LCALL DELAY01 RET
NEXT:INC R4 MOV A,R5
JNB ACC.6,KND RL A
MOV R5,A LJMP LK4
KND:LJMP INPUT
CHPW:MOV R0,#40H
MOV R7,#06H;改写密码位数控制L7:LCALL INPUT MOV @R0,A INC R0
DJNZ R7,L7 MOV R1,#48H MOV R6,#06H
L88:LCALL INPUT MOV @R1,A INC R1
DJNZ R6,L88 MOV R0,#40H MOV R1,#48H
MOV R3,#06H;密码比较位数控制L66:CLR CY MOV A,@R0 SUBB A,@R1 JNZ L98 LJMP L96
L98:CLR P3.4;错误输入警告 LCALL DELAY01 LCALL DELAY01 LCALL DELAY01
21
AJMP L99 L96:INC R0 INC R1
DJNZ R3,L66 RET
DELAY: MOV R6,#40;12ms LOOP1:MOV R7,#248 NOP
LOOP2:DJNZ R7,LOOP2 DJNZ R6,LOOP1 RET
INT: PUSH ACC MOV TMOD,#01H MOV TL0,#00H MOV TH0,#00H SETB TR0 SETB ET0 SETB EA
CONTINUE:DJNZ R2,CONT;10秒DJNZ 31H,CONT;90秒 CLR P3.2;定时中断 STOP:AJMP STOP CONT:POP ACC RETI
DELAY01:MOV 56H,#8; DEL01:MOV 57H,#200 DEL02:MOV 58H,#248 NOP
DEL03:DJNZ 58H,DEL03 DJNZ 57H,DEL02 DJNZ 56H,DEL01 RET
22
6系统调试
当硬件和软件设计好后,就可以进行调试了。硬件检查分为两步:静态检查和动态检查。硬件的静态检查胡只要电路制作的正确性,因此,一般无需借助于开发器;动态检查是在开发系统上进行的。
本次设计硬件电路比较简单,软件的调试才是重点。将仿真调试好的程序固化到芯片中,进行现场调试,检测其功能是否达到设计要求。若某些功能还未到达到要求,则再对系统进行修改,直到满足要求。
动态检查时发现的问题,如漏写子程序返回指令导致程序无法继续执行;复位电路以及晶振电路容易出现的问题等。结合硬件的调试时,比较容易发现这类故障。
23
7 结语
本次设计基本达到设计要求,实现了密码键盘输入,修改,改进了声光告警电路。解决了密码处理的关键问题。设计中存在些不足,比如密码断电消失,有待以后的设计中改进。
随着电子技术的发展,各种智能锁(如指纹识别,巩膜识别等)相继问世,但这些产品的特点是针对特定人员有效。而电子密码锁由于性价比高,简单易用以及兼容性好,应运而生,必将经久不衰,得到越来越广发的应用。 由于时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!
24
致谢
从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,除了自己的努力之外,离不开老师、同学以及同事们的支持与帮助。在此深表谢意!
特别感谢xxx老师对我们毕业设计以及毕业论文的指导与帮助!
特别感谢xxx同学的无私帮助,尤其对软件设计部分提出的宝贵意见! 特别感谢公司领导以及同事们对本次设计的支持!
25
参考文献
[1] 王法能,尹季昆.单片机原理及应用[M].北京:科学出版社,2004年 [2] 胡汉才.单片机原理及其借口技术[M].北京:清华大学出版社,1996年 [3] 蔡美琴,张为民,何金儿,毛敏,陶正苏,毛义梅.MCS-51系列单片机系统及其应用(第二版)[M].高等教育出版社,2004年
[4] 潘新,民王,燕芳.微型计算机控制技术[M].电子工业出版社,2003年 [5] 李钟实.实用电子报警器精选百例[M].北京:科技技术文献出版社,2002年
[6] 肖玲妮,袁增贵.Protel 99 SE印刷电路板设计教程[M].北京:清华大学出版社,2003年。
[7] 余孟尝.数字电子技术基础简明教程(第二版)[M].北京:高等教育出版社,1999年
[8] 童诗白,华成英.模拟电子技术基础(第三版)[M].北京:高等教育出版涉,2001年
[9] [M].北京:北京航空航天大学出版社,1994:6-28.
[10] 董继成.一种新型安全的单片机密码锁 [J].电子技术,2004,31(3) [10] 李建波.基于STC89C52单片机的电子密码锁 [J].现代电子技术,2008,23
26
因篇幅问题不能全部显示,请点此查看更多更全内容