基于单片机的电子密码锁设计_毕业设计论文(3)

2019-06-02 15:13

图3-3 单片机最小系统

3.3 矩阵键盘设计

一组键或者一个键盘,需要通过接口电路和CPU相连接,CPU可以采用查

询接口或者中断的方式了解有没有键被按下,并检查是哪个键被按下。无论是查询方式还是中断方式都要用到单片机的I/O口。由于单片机I/O口较少的原因,当系统中需要用到较多按键时,为了能够更合理更有效地利用单片机的I/O口,一般采用矩阵键盘的方式来实现多按键的功能。

图3-4是4x4矩阵键盘在PROTEUS中的电路原理仿真图。

图3-4 4x4矩阵键盘

矩阵键盘又叫做行列式键盘。行列式键盘的硬件结构比较简单,由行输出口和列输出口构成行列式键盘,按键设置在行、列交点上。图3-4中,P1.0~P1.3是行输出口,P1.4~P1.7是列输出口。行输出口和列输出口不相交,只有当键被按下时相应的行和列才能相连。如此,只要检测行和列是否相连就可以知道是否有键按下。

由于按键设置在行、列线交点上,行、列分别连接到按键开关的两端,平时无键按下时,行线处于高电平,假设列线为低电平,当有键按下时,按下的键就会将相应的行和列连通,使得对应的行线被列线拉低,也变为低电平。这就是识别矩阵键盘是否有键被按下的关键。

当确定有键被按下时,通过逐行扫描,读出I/O口的值可以知道哪一行的值被改变了,被改变了的行即是被按下的按键所在行。同时,由于每个键都有它的行值和列值,行值和列值得组合就是这个按键的编码,当算法一定时,每个按键的编码是固定的,且各个按键的编码互不相同,所有通过读I/O的值还能具体知道是哪一个键被按下,这样就实现了键盘的识别。

3.4 LCD显示模块设计

在单片机应用系统中,常用的显示设备有单个发光二极管、八段LED

显示器、液晶显示器(LCD)、屏幕显示器(CRT)等。在本次设计中,基于设计所要实现的功能和节约成本等实际情况,我采用LCD1602作为本次设计的显示器。

LCD1602是一种字符型液晶显示器,是一种专门用于显示字母、数字、符号等的点阵式液晶显示器。LCD1602的显示容量为16x2个字符(可以显示2行,每行显示16个字符),芯片工作电压为4.5~5.5V,工作电流为2.0mA(5.0V),模块最佳工作电压是5.0V。

LCD1602具有16个引脚,如表3-1所示。在LCD1602的有关设计中,主要是通过编写程序控制LCD1602的4、5、6引脚来实现数据或者指令的写入和执行,再通过数据或者指令的写入和执行来进一步实现LCD1602的显示功能。

表3-1是LCD1602的16个引脚和引脚对应功能。

表3-1 LCD1602引脚说明

引脚号 引脚名 功能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VSS VCC VEE RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K 电源地 电源(+5V) 对比调整电压 0:输入指令;1:输入数据 0:向LCD写指令或者数据;1:从LCD读取信息 使能信号,1:读取信息,1→0:执行命令 数据总线(最低位) 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线(最高位) LCD背光电源正极 LCD背光电源负极 作为一个字符型液晶显示器,LCD1602内部自带有一个字符发生存储器,此字符发生存储器就相当于一个字符集。LCD1602的字符集中存有160个不同的字符,这些字符包括了英文大小写字母、阿拉伯数字、标点符号等一些经常用到的字符。字符集中的每一个字符都对应有一个固定的ASCII码值,通过显示ASCII码对应的字符图像就能够实现对应字符的显示。

图3-5是PROTEUS中显示模块的仿真图。

由于LCD要正常工作必须提供足够的电流,因此在实际应用为了保证显示器能够正常工作,应在数据端口接一上拉电阻。图3-5中RP1同时还是P0口的上拉电阻。

图3-5 LCD模块仿真图

3.5 掉电存储模块

3.5.1 I2C总线

I2C总线为同步串行数据传输总线,用于单片机的外围扩展。I2C总线

上所有的外围器件都有规范的器件地址,器件地址有7位组成,它和1位方向为构成了I2C总线器件的寻址字节。寻址字节格式如下:

表3-2 I2C寻址格式

D7

D6 D5 D4 A2 A1 A0 R/W ——D7~D4是I2C总线的器件地址,由厂家在器件出厂时给定,对于AT24C

——

系列固定为1010。A2~A0根据电路中A2,A1,A0引脚接电源或者接地而不同,接地则相应位为0,接电源则相应位为1。R/W位为I2C总线的数据方向位,决定I2C总线的数据传送方向,高电平为接收,低电平为发送。

图3-6为I2C总线的数据传送时序。

SDA SCL 1 起始信号 2 3 4 5 6 7 8 9 ACK P 停止信号

图3-6 I2C总线数据传送时序

起始信号:时钟线SCL为高电平,数据线SDA出现由高向低的负跳变

时,启动I2C总线。

停止信号:时钟线SCL为高电平,数据线SDA出现由低向高的正跳变

时,停止I2C总线。

应答信号位ACK:I2C总线进行数据传送时,每成功传送一个字节的数

据后,接收器件都必然产生一个应答信号,即在第9个时钟周期时将SDA线拉低,表示其已经成功接收到一个8个数据。图3-6中的第9个时钟脉冲对应于应答位。应答位对应的数据线SDA上是低电平时为应答信号,是高电平则为非应答信号。为非应答信号时,证明器件没有成功接收到一个8位数据。

数据传送位:图3-6中的第1~8个时钟脉冲为一个字节的8位数据传

送位。脉冲为高电平时,串行传送数据;脉冲为低电平时,不传送数据,允许总线上数据线SDA的电平发生变化。在I2C数据传输过程中,只有当SCL为低电平时才允许SDA变化,当SCL为高电平时,不允许SDA电平改变。当然,起始信号和停止信号是例外。因此,当SCL为高电平时,SDA的变化被看成是起始信号或者停止信号。


基于单片机的电子密码锁设计_毕业设计论文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:【田径】易犯错误及纠正方法2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: