2022年门禁系统设计+单片机ATC .pdf

上传人:H****o 文档编号:34230505 上传时间:2022-08-15 格式:PDF 页数:21 大小:796.78KB
返回 下载 相关 举报
2022年门禁系统设计+单片机ATC .pdf_第1页
第1页 / 共21页
2022年门禁系统设计+单片机ATC .pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《2022年门禁系统设计+单片机ATC .pdf》由会员分享,可在线阅读,更多相关《2022年门禁系统设计+单片机ATC .pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、智能卡门禁系统设计1 设计要求智能卡的应用并不是简单的读写卡操作,而是一个综合性的工程项目。它不仅包括卡和读写模块的选择,还涉及到读写模块的控制、数据的传输、数据的处理和存储;既需要有硬件应用的知识、 也还必须具有软件方面的能力。下面我们以一个完整的应用系统为例,详细地描述了各组成部分的设计要求、完成的功能及具体的实现方法。智能卡门禁系统设计任务:1 智能卡门禁系统门禁机模块的设计( 1) 非接触式IC 卡读写头部分主要内容: 读头部分采用非接触智能卡读写模块,由读卡器读入数据并加以保存,智能卡按常规要具有加密和数据分区存储功能,读写头的读写距离在5-10 厘米左右,必须具有掉电保护、精确时间

2、记时和显示,3K5K的临时数据存储。( 2) 门禁机主控模块主要内容:智能门禁机主控模块是智能门禁机系统的核心部分,主要包括MCU 、键盘、显示、电子时钟、外部数据存储器及掉电保护和看门狗电路,有精确时间记时和显示。2 智能卡门禁系统系统管理模块的设计( 1) 系统管理主控模块设计主要内容: 设计门禁上层软件的主控模块,其主要实现的功能是最高权限卡对管理员和一般用户发卡, 管理员对一般用户发卡。能对丢失的卡进行挂失,对找回的卡进行解挂,同时还要具备查找功能。( 2) 系统管理的数据库管理软件设计主要内容:运用高级语言编程,制作数据库管理软件。采集下位机的数据并保存,然后管理采集到的数据,具有采

3、集、数据更新、查询统计和报表的打印功能 3 智能卡门禁系统数据传输模块的设计主要内容: 完成中央控制电脑与门禁读写器之间的数据传输协议的设计,能实现主、 从机的双向数据传输及一对一、一对多的数据传输。2 总体方案根据设计要求,整个智能卡门禁系统分为三大部分:其一是读写器部分,包括MCU 、复位电路、时钟电路、显示电路、键盘、数据存储等主控模块及非接触IC 卡读写模块和电锁驱动部分; 其二是中央控制电脑的软件管理系统模块;其三是中央控制电脑与读写器之间的数据传输模块。其总体方案见图5.1 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -

4、- - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 图 1 非接触式 IC 卡门禁系统框图3 非接触式 IC 卡门禁机的设计系统采用 Philips公司的非接触智能IC 卡 Mifare 1卡,以 M1卡作为用户卡,以用户卡的序列号SN (全球唯一)为依据控制门的开启。因为它是一个高频卡(工作频率为13.5MHZ) ,有较强的抗干扰能力、读写距离远(5MM 10MM ) 。首先 ,在发卡系统 (中央控制PC机)里把用户的卡号及个人信息输入系统数据库,并将该卡号作为合法卡号下载给所有门禁机。当有一张M1卡在门禁机的有效工作范围内时,系统

5、会自动向卡发出命令,卡接收到命令后向门禁机反馈其SN, 门禁机判断收到的卡号是否合法,合法则驱动电磁门锁开门,并实时上传其开门记录;如果是非法卡(未经授权或已挂失的卡)则拒绝开门并上传报警信息。只有最高授权者(掌握授权密码)才可以发管理员卡, 管理员必须用管理员卡方可登录发卡系统进行发卡/ 下传合法卡号、 挂失、 解挂、下传黑名单等操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 附录二门禁机硬件原理图由于采用了Phili

6、ps公司的非接触式Mifare 1卡,所以卡的读写模块也采用了以Philips公司最新推出的Mifare读写芯片 MF RC500为核心开发的ZLG500A读写模块。门禁机模块的硬件原理图见附录二。通过 AT89C52对 ZLG500A的控制达到对卡的读写。系统结构简单, 成本较低且具有信息量大和安全保密性好等特点。外围配有RS232转 RS485接口能与PC机互连成网络,可以完成读卡、显示卡号和出入时间、身份识别、开锁以及保存和上传出入记录、下载黑名单、设置开门权限等功能。门禁机模块的主控软件主要完成门禁机模块的初始化、卡的识别、 开启门锁及保存有关数据和数据的传输等五大功能。其总体工作流程

7、如图5.2 所示:装载权限初始化显示日历寻卡执行开门比较权限开放键盘设置时间设置权限合法吗?执行开门执行报警取时间+卡号+BCC 码寻卡计录满否?写入24C64 中数据指针加 12计录数加 1发送数据发送记录数清空24C64数据指针 =0计录数=0图 3 非接触式 IC 卡门禁机总体工作流程在完成整个门禁机模块的设计和制作前,首先必须明确非接触式IC 卡读写模块的功能特性、接口规范和控制方式。本系统选用MIFARE 1 卡作为门禁钥匙,相应地,选用广州周立功公司的ZLG500A读写模块作为卡与门禁机交换数据的接口模块。1.ZLG500A读写模块特性名师资料总结 - - -精品资料欢迎下载 -

8、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 1)功能特性图 5.3 为 ZLG500A非接触式 IC 卡读写模块, 该模块采用最新PHILIPS 高集成 ISO14443读卡芯片 MF RC500 ,能读写 RC500内 EEPROM,提供三线SPI 接口,并具有控制线输出口,能与任何MCU 接口。此外,该模块四层电路板设计,双面表贴,EMC 性能优良;并自带无源蜂鸣器信号输出,能用软件控制输出频率及持续时间。J1 J2 图 4 ZLG500A 模块实物图如图 5.3

9、 所示 J1 为与天线的接口J2 为与 MCU 的接口 ,J1 、J2 的管脚排列和功能说明见表 5.1 :表 5.1 ZLG500A 非接触式 IC 卡读写模块管脚说明( 一) 管脚符号描述J1-1 GND 地J1-2 TX1 天线发送 1 J1-3 GND 地J1-4 TX2 天线发送2 J1-5 GND 地J1-6 RX 天线接收表 5.1 ZLG500A 非接触式 IC 卡读写模块管脚说明( 二) 管脚符号类型描述J2-1 SCLK 输入三线 SPI 接口时钟线总是由外部MCU 产生J2-2 SDATA 双向数据线可双向传输J2-3 SS 双向传输启动线接MCU 外部中断J2-4 VC

10、C PWR 电源正端J2-5 RST 复位内部 MCU 复位端高电平有效J2-6 GND PWR 电源负端J2-7 CTRL 输出控制线输出J2-8 BZ 输出蜂鸣器信号输出ZLG500 模块可方便地与任何MCU 进行接口,如图 5.4 所示为 ZLG500与 MCS-51 单片机P1.0P1.1P3.3P1.2MCS51SCLKSDATASSRSTCTRLBZZLG500名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 图 5

11、.4 ZLG500与 MCS-51单片机接口图的典型接口。 SCLK 、SDATA 、SS为 ZLG500A与 MCU 相联接的控制线,分别为片选SS 、时钟线SCLK 和数据线 SDATA 。主控制器的MCU 和读卡模块内的MCU 通过此三线相连,三根线上的实际电平是双方口线状态逻辑线与的结果。2) ZLG500 三线串行读卡模块接口规范(1) 接口原理接口空闲时主机SS=1 SCLK=0 SDATA=0 从机 SS=1 SCLK=1 SDATA=0 。其中 SS 和DATA 是双向的而时钟线 SCLK 是单向的,即时钟只能由主控制器产生,该信号必须严格遵守时序规范,否则将出现通信错误读卡模

12、块必须释放该线。SS 为数据发送使能, 若一方有数据要发送给另一方,则该方控制 SS 线为低并在发送结束后将该线置高,接收数据方不得控制该线,双方必须遵守通信协议不得同时控制该线。SDATA 为数据线,由数据发送端控制数据,接收端必须释放该线。该线在一次传输开始时还同时作为数据接收端的响应信号。(2)时序图如图 5.5 所示,无论数据传输的方向如何,SPI 线上信号的波形总是如下;图 5 ZLG500 时序图由图中可以看出,在SS 为低的情况时, 时钟和数据线上的信号才有效。且在 SCLK 为低时SDATA 变化,在 SCLK 为高时 SDATA 应保持稳定。以上传输中从数据发送器请求开始至数

13、据接收器响应的时间是不确定的,取决接收器内的MCU 是否忙,有必要设置一个看门狗定时器对数据接收器的响应进行监视,一旦接收器响应,则 MCU 必须根据数据传输的方向,严格控制以下几个时间,以确保数据传输无误。t1 数据接收器响应至MCU 产生第一个 SCLK 上升沿的时间。t2 两个字节传输之间SCLK 低电平的持续时间。t3 传输最后一个字节的最后一位的SCLK 信号的上升沿至SS 上升沿的时间。tHSCLK 信号的高电平持续时间。tL SCLK 信号的低电平持续时间。在数据传输的方向不同时,对时间t1 t3 tH 和tL 都有各自不同的要求。(3) 通信协议MCU 与ZLG500 的通信必

14、须先由MCU 发送命令和数据给ZLG500 ,ZLG500 执行命令完毕后, 将命令执行的状态和响应数据发回MCU 。开始通信前,收发双方必须处于空闲状态。首先由MCU 发出 SS 下降沿信号,然后等待ZLG500 载SDATA 线上的响应,若在50ms 内为检测到此信号,则退出本次传输。若正确响应,则MCU 可将命令和数据发送出去。然后 MCU 等待 ZLG500 发回的状态和响应数据。也即等待SS 线上的下降沿信号,若在50ms内为检测到此信号,则退出本次传输,若正确检测到SS 信号,则可以接收状态和数据。SSSCLKSDATAStart from sendert1tHtLt2t3Stop

15、 from senderAck from receiverSender and receiver名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - ZLG500 初始化的子程序如下:SCLK BIT P1.0 SDATA BIT P1.1 SS BIT P1.2 RST BIT P3.3 Zlg500: SETB RST ; ZLG500 内部复位LCALL DELAY_50MS CLR RST LCALL DELAY_50MS

16、SETB SS ; 处于空闲状态CLR SDATA CLR SCLK MOV 58H,#11H MOV 59H,#11H MOV 5AH,#11H MOV 5BH,#11H LCALL CONFIG ; 配置LCALL REQUEST ; 发送请求LCALL ANTICOLL ; 防碰撞;* IF HAVE CARD * MOV A,52H CJNE A,#04H,SA123 ; A=04 IS NO CARD LJMP SA234 SA123: RET SA234: LCALL READ_BLOCK ; 从存储器中读取数据LCALL DELAY_100MS MOV R2,#20 MOV R0

17、,#58H MOV R1,#80H LCALL COMPARE ; 进行卡号的比较和验证REL13: SETB FLAG LCALL REL123 JB FLAG,REL13 RET 上述程序中 CONFIG 子程序为 RC500 的复位和配置子程序, 是由 MCU 向ZLG500 发出的不带数据的命令程序; REQUEST子程序是 MCU 向 ZLG500 发出的带一个字节数据的命令程序,主要是检查在有效范围内是否有卡存在;ANTICOLL 子程序是防冲突操作,必须在执行了REQUEST命令后立即执行。MCU 与 ZLG500之间的通信一般遵循如下的数据格式MCU 向 ZLG500发出的命令

18、模式的格式如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - SeqNr Command Len Data0N BCC INFO0 INFOn 其中 : SeqNr: 1 Byte 是数据交换包的序号Command: 1 Byte 是命令字符Len: 1 Byte 是数据的长度Data Len Byte 是数据字节BCC: 1 Byte 是一个字节的BCC效验 SeqNr Status Len Data0N BCC INFO

19、0 INFOn 其中: SeqNr: 1 Byte 是数据交换包的序号status: 1 Byte 是状态字符Len: 1 Byte 是数据的长度Data Len Byte 是数据字节BCC: 1 Byte 是一个字节的BCC效验按照上述数据格式传输编制的CONFIG 、REQUEST 和 ANTICOLL子程序清单如下:; * CONFIG * CONFIG: MOV 60H,#00H ; 数据交换包的序号MOV 61H,#52H ; 配置命令字符代码MOV 62H,#00H ; 数据的长度为0 LCALL BCC_SUM0 ; BCC 效验子程序MOV 63H,A ; BCC_SUM MO

20、V A,#00H MOV R2,#04H MOV R0,#60H ; 发送首地址LCALL SPI_SEND MOV R0,#30H ; 接收起始地址LCALL _SPI_RCV RET ; * REQUEST * REQUEST: MOV 60H,#00H ; 数据交换包的序号MOV 61H,#41H ; 请求命令字符代码MOV 62H,#01H ; 数据的长度为1 MOV 63H,#01H ; 请求模式的数据mode=01H LCALL BCC_SUM MOV 64H,A MOV A,#00H MOV R2,#05H ; 发送 5 个字节数MOV R0,#60H ; 60H_64H 的数据

21、发送LCALL SPI_SEND ; MOV R0,#40H ; 接收起始地址LCALL SPI_RCV 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - RET ; * ANTICOLL * ANTICOLL: MOV 60H,#00 ; 数据交换包的序号MOV 61H,#42H ; 防碰撞命令字符代码MOV 62H,#01 ; 数据的长度为1 MOV 63H,#00H ; 数据值为 0 LCALL BCC_SUM MOV 6

22、4H,A MOV A,#00H MOV R2,#05H ; 发送 5 个字节数MOV R0,#60H ; 60H_64H 的数据发送LCALL SPI_SEND MOV R0,#50H ; 存放数据LCALL SPI_RCV MOV A,52H CJNE A,#04H,L0 MOV 58H,53H MOV 59H,54H MOV 5AH,55H MOV 5BH,56H MOV A,58H XRL A,59H XRL A,5AH XRL A,5BH MOV 5CH,A MOV A,#00H CLR P3.4 LCALL DELAY_50MS LCALL DELAY_50MS LCALL DELA

23、Y_50MS LCALL DELAY_50MS SETB P3.4 L0: RET 3) 写数据 MCU ZLG500 除响应信号外,三根线上的信号全由MCU 产生。 MCU 在SS 线上产生一个下降沿,发出请求数据传输的信号,等待ZLG500 响应后本次数据传输开始,ZLG500 将在 SCLK 为高时读取SDATA 线上的数据,传输完毕后MCU 应在SS 线上产生一个上升沿结束本次传输。写数据的具体步骤可见表5.2 。表5.2 ZLG500A 读写模块写数据步骤序号动作发出者动作动作接收者动作说明1 MCU SDATA=1 SCLK=0 SS= 下降沿ZLG500 本次数据传输开始请求2

24、ZLG500 SDATA= 上升沿MCU 本次数据传输响应名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 3 MCU SDATA= 串行数据ZLG500 数据传输4 MCU SCLK= 上升沿、延时、下降沿ZLG500 产生时钟 ZLG500 读数据5 MCU 重复动作 3、4 传送N 8 位ZLG500 数据传输 N 字节6 MCU SS= 上升沿 SDATA=0 SCLK=0 ZLG500 本次数据传输结束传输过程中必须严

25、格遵守以下时间要求:t17s ,t214s ,tH7s,tL9s ,t3= 任意下面是 MCU 向 ZLG500写入数据的子程序, 为满足上述时间要求,可通过加入空操作来实现。SPI_SEND: ANL P3,#0F7H ; 恢复 SS的输出功能, 传输开始请求DEC R0 ; 发送数据的首地址SETB SDATA CLR SCLK JB SDATA,$ ; SADATA仍为高则等待CLR SS MOV R5,#100 DL33: MOV R6,#7DH DL44: JB SDATA,ASDF ; MCU等待 SDATAD 的上升沿DJNZ R6,DL44 DJNZ R5,DL33 AJMP

26、SPI_SEND ASDF: ANL P1,#0FDH ; STADA 恢复输出SENDBYTE: NOP INC R0 NOP NOP MOV A,R0 MOV R3,#8 ; 设置一个字节的位数NOP NOP SENDBIT: NOP RLC A MOV SDATA,C ; 发送数据位NOP NOP SETB SCLK: NOP NOP CLR SCLK DJNZ R3,SENDBIT DJNZ R2,SENDBYTE SETB SS ; 本次数据传输结束CLR SDATA NOP 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

27、 - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - JB SS,$ RET 4) 读数据 ZLG500 MCU 响应信号 SCLK 信号由 MCU 产生,SS 信号和 SDATA 信号由 ZLG500 产生。ZLG500 会在 SS 线上产生一个下降沿发出请求数据传输的信号,等待MCU 响应后本次数据传输开始,MCU 将在SCLK 为高时读取 SDATA 线上的数据,传输完毕后ZLG500 将会在 SS 线上产生一个上升沿结束本次传输。读数据的具体步骤可见表5.3 表5.3 ZLG500A 读写模块读数据步骤动作序号动作发出者动作动作接

28、收者动作说明1 ZLG500 SDATA=1 SS= 下降沿MCU 本次数据传输开始请求2 MCU SDATA= 上升沿ZLG500 本次数据传输响应3 ZLG500 SDATA= 串行数据MCU 数据传输4 MCU SCLK= 上升沿、延时、下降沿ZLG500 MCU 产生时钟,且读取数据5 双方重复动作 3、 4 传送N 8 位双方数据传输N字节6 ZLG500 SS= 上升沿 ,SDATA=0 MCU 本次数据传输结束传输过程中必须严格遵守以下时间要求t114s, t216s, tH6s, tL6s, t39s 下面是 MCU 从 ZLG500读取数据的子程序, 同理,为满足上述时间要求

29、,可通过加入空操作来实现。SPI_RCV: ORL P3,#08H ; SS 设置为输入ANL P1,#0FDH ; SDATA设置为输出DEC R0 CLR SCLK SETB SDATA NOP ORL P1,#02 ; SDATA设置为输入 NOP NOP RCVBYTE: MOV R3,#8 INC R0 RCVBIT: NOP NOP SETB SCLK NOP NOP MOV C,SDATA ; 读取一位RLC A NOP NOP 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

30、- 第 10 页,共 21 页 - - - - - - - - - CLR SCLK NOP NOP DJNZ R3,RCVBIT MOV R0,A ; 读取的一个字节存入指定地址NOP NOP JNB SS,RCVBYTE ANL P1,#0FDH ;SDATA 设置为输出CLR SDATA RET 2 门禁机主控模块上面我们对ZLG500A读写模块的功能特性、接口规范和控制方式作了比较详细地讲解,在此基础上, 可以进一步完成MCU 对 ZLG500A的读写和控制, 如果附加上周边的辅助功能和驱动控制,就可以形成一个完整的智能卡读写器。首先,我们看一下MCU 部分的设计和控制的实现。图 5.

31、6 是 MCU 控制框图, 从图中可以看出 MCU 除了完成对ZLG500A读写模块的控制外,还要承担其它功能的控制,主要包括四大部图 6 门禁机控制框图分:键盘和显示部分、 实时时钟和掉电保护部分、数据存储和数据传输部分、驱动控制部分。1) 键盘和显示部分键盘和显示是一般智能化仪器仪表均须具有的功能,是人机交互最主要的方式。不同的智能仪器,随着其功能、MCU 资源的占用、使用环境等各种条件的不同,可采用多种键盘和显示方案。本应用系统中,由于外围部件较多,MCU 资源占用较大,为了尽可能的减少MCU输入输出I/O 的占用,键盘的设计采用串入并出的方式,利用一片74LS164,占用 MCU 的四

32、根 I/O 口,就可以实现16 个键的全部功能。具体电路见图5.7 :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 21 页 - - - - - - - - - 图 7 串行口扩展的行列式键盘从系统监控软件的角度来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要解决,否则,在操作键盘时就容易引起误操作、失控等现象。首先是去抖动处理。按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的, 如不妥善处理, 将会引起按键命令的错误执行或重

33、复执行。最常用的一种方法是软件延时的方法来避开抖动阶段,延时过程一般取10ms50 ms。其次是连击的处理。当按下某个键时,键盘处理程序便查找相应的功能号, 并转到相应的功能模块程序去执行,如果这时操作者还没有释放按键,MCU 就会反复执行该按键对应的功能, 好像操作者在连续操作该键一样。本系统中需要按键去改变系统的实时日历,如果出现连击现象, 操作者就很难设定时间。要解决连击的问题最关键是一次按键只让它响应一次,该键不释放就不执行第二次。为此要分别检测到按键按下的时刻和释放的时刻。有两种程序结构都可以解决连击的问题,一是按下键盘就执行,执行完成后等待操作者释放按键,在末放前不再执行指定的功能

34、,从而避免了一次按键重复执行的现象。二是在按键释放后再执行指定的功能,同时可以避免连击,但与前一种相比,给人一种反应迟钝的感觉。具体采用哪种结构,可根据实际情况而定。关于键盘控制的具体编程,可参考有关的书籍和应用说明,在此就不再说明。显示是人与计算机系统打交道所必不可少的部分,本系统要求门禁在不打卡时具备显示当前时间 , 打卡时显示该卡卡号及打卡时间。为此,选用了具有有良好的显示界面的图形点阵液晶显示器。 图形点阵液晶显示器分辨率较高,显示出的结果非常细腻,且能够显示各种复杂图形, 为以后的扩展留下了余地。本系统所选择的是JG19264A图形点阵液晶, 图 5.8为 JG19264A的结构框图

35、,引脚说明见表5.4 。图 8 JG19264A 图形点阵液晶结构框图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 21 页 - - - - - - - - - 表 4 JG19264A 图形点阵液晶引脚说明引脚符号电平说明1 DB7 H/L 数据位 7 2 DB6 H/L 数据位 6 3 DB5 H/L 数据位 5 4 DB4 H/L 数据位 4 5 DB3 H/L 数据位 3 6 DB2 H/L 数据位 2 7 DB1 H/L 数据位 1 8 DB0 H/L 数据

36、位 0 9 E H,HL 片使能信号10 R/W H/L H:读; L: 写11 RS H/L H:数据; L: 指令12 V0 可调LCD驱动电压 , 对比度调节13 VDD 5.0V 电源电压14 VSS 0V 接地 (GND) 15 CSB H/L 片选信号, 00,01,10分别对应一片IC的 SEG ,11 三片均不选中16 CSA H/L 17 VEE -10.0V LCD驱动负电源18 RST L 复位信号,低有效19 LED+ 背光正极20 LED- 背光负极 JG19264A液晶的分辨率为19264 ,该液晶的显示内核是HD61202U与 HD61203U ,其中一片 HD6

37、1203作为 64 路行驱动器, 三片 HD61203U 组成 196 点列的列驱动器组。所以内置HD61202U 图形液晶显示模块的电路特性实际上是HD61203U和 HD61202U组合的电路特性。HD61203U 是带有振荡器和显示时序发生器的行驱动器。它具有64 路行驱动输出,但它的特点在于它本身带有振荡器和时序发生器,通过外接振荡电阻电容使其上电后就以其设定的占空比系数1/N 值开始行扫描工作;它可以自行完成行、列驱动时序的生成及分配,自动进行行驱动的工作;同时向列驱动器输出同步信号及显示数据驱动所需的脉冲时序,控制列驱动器 HD61202U的工作,所以我们只用控制HD61202U就

38、可以操作整个液晶模块。HD61202U 是带显示存储器的图形液晶显示列驱动控制器。它的特点是内置6464 位的显示存储器, 显示屏上各像素点的显示状态与显示存储器的各位数据一一对应,显示存储器的数据直接作为图形显示驱动信号。显示数据为 “1”,相应的像素点显示; 显示数据为 “0”相应的像素点就不显示。同时HD61202U 配备了一套显示存储器的管理电路和与计算机的连接口电路。HD61202U一共可以有七条指令,从作用上可分为两类。第一条和第二条指令为显示状态设置类;其余指令为数据读/ 写操作指令,见表5.5 表 5 HD61202U 的指令一览表。指令名称控制信号控制代码D/I R/W D7

39、 D6 D5 D4 D3 D2 D1 D0 显示开关设置0 0 0 0 1 1 1 1 1 D 显示起始行设置0 0 1 1 L5 L4 L3 L2 L1 L0 页面地址设置0 0 1 0 1 1 1 P2 P1 P0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 21 页 - - - - - - - - - 列地址设置0 0 0 1 C5 C4 C3 C2 C1 C0 读取状态字0 1 BUSY 0 on/off reset 0 0 0 0 写显示数据1 0 数据读

40、显示数据1 1 数据下面是各个指令的功能:(1)读状态字( Status Read )BUSY 0 ON/OFF RESET 0 0 0 0 状态字是计算机了解HD61202U当前状态,或是HD61202U向计算机提供其内部状态的唯一信息渠道。状态字为一个字节,其中仅有3 位有效位,它们是:BUSY :表示当前HD61202U接口控制电路运行状态。BUSY=1表示 HD61202U正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除读状态字外的任何操作。BUSY=0表示 HD61202U接口控制电路已处于”准备好”状态,等待计算机的访问。ON/OFF :表示当前HD61202U的工作

41、状态,即反映RST端的电平状态。当RST为低电平状态时, HD61202U处于复位工作状态,REST=1 。 当 RST为高电平状态时,HD61202U 为正常工作状态, RESET=0 。在指令设置和数据读写时要注意状态字中的BUSY标志。只有在BUSY=0时,计算机对HD61202U 的操作才能有效。因此计算机在每次对HD61202U操作之前,都要读出状态字判断BUSY 是否为” 0”。 若不为” 0 ”, 则计算机需要等待, 直至 BUSY=0 为止。计算机对 HD61202U操作的流程如图5.9 。读状态字BUSY=1?入口退出写指令代码或显示数据否是图 9 HD61202U操作的流程

42、(2)显示开设置(Display on/off)0 0 0 0 0 0 0 D 该指令设置显示开/ 关触发器的状态, 由此控制显示数据锁存的工作方式,从而控制显示位为开 /关的控制位。当D=1为显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。此时在状态字中ON/OFF=1 。当 D=0 为关显示设置,显示数据锁存器被置零,显示存储器并没有被破坏,在状态字中ON/OFF=0 。(3)显示起始行设置(Display Start Line)1 1 L5 L4 L3 L2 L1 L0 该指令设置了显示起始行寄存器的内容。HD61202U有 64 行显示的管理能力,该指令中L5L0 显示起

43、始行的地址,取值在0 3FH (164行) 范围内,它规定了显示屏上最顶一行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 21 页 - - - - - - - - - 所对应的显示存储器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。(4)页面地址设置(Set Page (X address) )1 0 1 1 1 P2 P1 P0 该指令设置了页面地址:X地址寄存器的内容。HD61202U将显示存储分成8 页,指令代码中 P2P0就是要确定当前所要选择的

44、页面地址,取值范围为0007H,代表显示第18 页。该指令规定了以后的读/ 写操作将在哪一个页面上进行。(5)列地址设置(Set Y address)0 1 C5 C4 C3 C2 C1 C0 该指令设置了Y地址计数器的内容,C5C0=03FH(164) 代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加1 功能经,在每一次读 / 写数据后它将自动加1,所以在连续进行读/写数据时, Y地址计数器不必每一次都设置一次。页面地址的设置和列地址的设置将显示存储单元唯一确定下来,为后来的显示数据的读/ 写作了地址选通。(6)写显示的数据(Write Displ

45、ay Data)1 0 数据该操作将8位数据写入先前已确定的显示存储器的单元内。操作完成后列地址计数器自动加一。(7)读显示的数据(Read Display Data) 1 1 数据该操作是将HD61202U接口部分的输出到寄存器内容读出,然后列地址自动加一。本系统采用直接访问式的接口方式,就是将液晶显示模块的接口作为存储器或I/O 设备直接挂在计算机总线上,计算机以访问存储器或I/O 设备的方式操作液晶显示模块的工作。其具体的原理图如图5.10 所示:图 5.10 液晶与MCU 接口电路在图中,MCU 通过 P2.6 控制 CSA , P2.7 控制 CSB,以选通液晶显示屏上各区的控制器H

46、D61202U ,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 21 页 - - - - - - - - - 其关系如表5.6 所示:表 5.6 液晶显示屏控制关系CSA CSB JG19264 0 0 左区0 1 中区1 0 右区1 1 末选另外, MCU 的 P2.1 接液晶显示模块的R/W ,用来控制数据总线的数据流向;用P2.0 接液晶显示模块的RS ,用来区分是数据还是指令;用P2.4 接液晶显示模块的E,控制模块的使能; P0 口直接与液晶显示模块的双向数

47、据/ 地址端相连。为了加强P0 口的驱动能力和减少外界的干扰,该口全部外接了上拉电阻。JG19264A的读写时序图如图5.12 所示,按照此时序编程,MCU 即可对液晶实现正常的控制。图 11 JG19264A 读时序图图 12 JG19264A 写时序图2) 实时时钟和掉电保护部分在门禁系统中,需要实时记录出入数据(开门的卡号及其出现的时间)。若采用单片机名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 21 页 - - - - - - - - - 软件计时, 一方面需

48、要占用硬件计数器资源,另一方面需要设置中断、查询等,耗费单片机的 CPU资源。而在系统中采用实时时钟芯片则能很好地解决这个问题。实时时钟采用了美国DALLAS公司推出的一种高性能、低功耗、带RAM 的 DS1302芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压2.5 5.5V 。采用三线接口与CPU进行同步通信, 并可采用突发方式一次传送多个字节的时钟信号或 RAM数据。 DS1302内部有一个31的用于临时性存放数据的RAM寄存器。 DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后备电源双电源引脚,同时提供了对后备电源进行涓细电流充

49、电的能力。下图为DS1302的管脚及内部结构图:图 13 DS1302 的管脚及内部结构图DS1302共有 12 个寄存器,其中有7 个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与 RAM 相关的寄存器分为两类,一类是单个RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM 寄存器,此方式下可一次性读写所有的RAM

50、的 31 个字节,命令控制字为 FEH (写)、FFH (读)。具体的参数见表5.6 。表 5.6 DS1302 寄存器参数表寄存器名命令字取值范围各位内容写操作读操作7 6 5 4 3 2 1 0 秒寄存器80H 81H 00 59 CH 10SEC SEC 分钟寄存器82H 83H 00 59 0 10MIN MIN 小时寄存器84H 85H 01 12或 00 23 12/24 0 1 HR HR 日期寄存器86H 87H 01 28 29 30 31 0 0 10DATA DATA 月份寄存器88H 89H 01 12 0 0 0 0 MONTH 周日寄存器8AH 8BH 01 07

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁