第八章-显示键盘接口_第1页
第八章-显示键盘接口_第2页
第八章-显示键盘接口_第3页
第八章-显示键盘接口_第4页
第八章-显示键盘接口_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章MCS-51与LED显示器和键盘的接口

一、MCS-51与LED显示器接口

常见的显示器有CRT显示器、LED显示器、LCD显示器

等。而LED显示器是单片机应用产品中最常用的廉价的

输出设备,其可靠性很高。

1、显示器的结构

常用的显示器结构如图所示:

A、共阳极显示器

B、共阴极显示器

2、显示器的工作方式:

A、静态显示方式所谓静态显示,是指显示器显示一字符时,相应的发光二极管恒定地导通或截止。这种显示方式的每一个数码显示器,需要一个8位输出口控制。所以硬件较多,但字符较亮。

a、采用8位锁存器74LS273作为静态显示器接口

(1)接口电路:

b、采用移位寄存器74LS164作为静态显示器接口

(1)、使用串口TXD、RXD与74LS164连接

接口电路:

显示程序:

显示子程序:

MCS-51串行口工作于方式0输出

显示段码:F9H显‘1’

DIR:MOVR7,#08H

MOVR0,#5FH

DL0:MOVA,@R0

ADDA,#0BH

MOVCA,@A+PC

MOVSBUF,A2 DL1:JNBT1,DL13

CLRT12

DECR01

DJNZR7,DL02

RET1

TAB:DBC0H,F9H,A4H,B0H,99H

D7D6D5D4D3D2D1D0Dpgfedcba1100000011111001

…….

(2)、使用P口线与74LS164连接接口电路:显示程序(作为练习)

B、动态显示方式

所谓动态显示是指一位一位地轮流点亮各位显示

器。对于每一位显示器来说,每隔一段时间点亮一次,

通常点亮时间为1mS左右,相隔时间为20mS

a、6位共阴显示器和8255的接口电路:

设8255的CS接P2.7

b、显示程序的设计思路:(1)8255的端口地址与初始化:

8255的I/O端口地址为:7F00H-7F03H8255的控制字为:80H

注:A口作为位数据口,其输出只能有一位为高。(2)显示缓冲区:设显示缓冲区为40H-45H,它用来存放显示数据。

(3)字形表:

TABDB3FH,06H,5BH,…

c、显示子程序

显示子程序流程图:

c、显示子程序:

DIR:MOVR0,#40HRLA

MOVR3,#01HMOVR3,A

MOVA,R3SJMPL0

L0:MOVDPTR,#7F00HL1:RET

MOVX@DPTR,ATABDB3FH,06H…

INCDPTR

MOVA,@R0

ADDA,#0DHDY1:MOVR7,#02H

MOVCA,@A+PCL2:MOVR6,#FFH

DIR1:MOVX@DPTR,AL3:DJNZR6,L3

ACALLDY1DJNZR7,L2

INCR0RET

MOVA,R3

JBACC.5,L1

d、时钟显示将30H(时)31H(分)32H(秒)单元中的时钟数据显示出来。显示格式为:χχ.χχ.χχ

时分秒

将时钟数据(30H-32H)送显示缓冲区(40H-45H)

ST:MOVR0,#40HAHX:MOVR2,A

MOVA,30HSWAPA

ACALLAHXANLA,#0FH

INCR0MOV@R0,A

MOVA,31HINCR0

ACALLAHXMOVA,R2

INCR0ANLA,#0FH

MOVA,32HMOV@R0,A

ACALLAHXRET

RET

注:小数点显示二、键盘接口

键盘是由若干个按键组成的开关矩阵,它是单

片机最简单的输入设备,操作员可以通过键盘输入

数据或命令,实现人机通信。

1、键盘工作原理及键盘扫描程序设计思路:

一个4X4的键盘结构如图所示:

A、按键与否的判别

我们使所有行为低自列线读入数据,若列线中有一

位为低,则可判为有键按下,否则全为高为无键按下。

B、按键的识别

由于矩阵网络上每一个键都可以由它所在的行与列

来定位。所以,我们可使第0行至第3行逐行为低,通过

读入列数据来识别是何键按下。

例如:当使行2为低,读入列值时,其列1值为低,

则可判是键5按下。

C、键抖动及消除

键按下和释放时存在着机械抖动,其对应的列线电

压波形如图示,通常抖动时间为5-10mS。

为了保证CPU对键的闭合只作一次处理,必须消除抖动,通常增加一个10ms-20ms左右的延时程序,在键稳定

闭合时才去读取按值键。

D、键释放处理通常采用等待键释放后,再去进行键处理,但这种方法实时性差。较好的方法是建立一个按键标志,该标

志在键释放后置0,键处理后置1。在进行键处理时,只有按键标志为0时,才去进行键处理。

E、由键值求键号由于所得到的键值是一个不规则数,为了得到一个规则数(即键号),应当将键值作成一个键值表,编一

个由项值求项号的查表程序,处于表首址的键值所对应的键号为00H。

2、键盘接口电路

3、键盘扫描程序:

各按键对应的键值与键号如下:键盘进行扫描管理的流程:

具体程序如下:

ST:MOVDPTR,#7F00HLK0:CLR00H MOVA,#00HLK1:MOVA,#FFH MOVX@DPTR,ARET INCDPTR

INCDPTR

MOVXA,@DPTR

CPLA

ANLA,#0FH

JNZLK2

LK2:ACALLDIR

ACALLDIR

MOVR2,#08H

MOVR3,#FEH

LK3:MOVDPTR,#7F00H

MOVA,R3

MOVX@DPTR,A

RLA

MOVR3,AINCDPTR

INCDPTR

MOVXA,@DPTR

CPLA ANLA,#0FHJNZLK4DJNZR2,LK3

SJMPLK0LK4:SWAPA

ORLA,R2

MOVB,A

JB00H,LK1

MOVDPTR,#TAB

MOVR3,#1FH

LK5:MOVA,R3

MOVCA,@A+DPTR

CJNEA,B,LK7LK6:SETB00H

MOVA,R3

RET

LK7:DJNZR3,LK5

SJMPLK6 TAB:DB88H,48H,47H,…三、7279可编程数码管/键盘串行接口

HD7279A是一片数码管/键盘串行接口芯片,其主要特性如下:

串行接口,无需外围元件可直接驱动LED。

各位具有独立控制译码/不译码及消隐和闪烁属性。

具有(循环)左移/(循环)右移指令。

具有段寻址指令,方便控制独立LED。

具有64键键盘控制器,内含去抖动电路。

1、引脚说明:

CS:片选CLK:时钟输入端

DATA:串行数据入/出端CLK0:振荡输出端

KEY:按键有效输出端RES:复位端

SG-SA:段g—段a驱动输出DP:小数点驱动输出

DIG0-7:数位0-7驱动输出RC:RC振荡器连接端

7279芯片与数码管、键盘的接口电路如图所示:

2、控制指令

HD7279A的控制指令分为二大类——纯指令和带

有数据的指令。

主要控制指令如下:

A、纯指令

a、复位(清除)指令A4HD7D6D5D4D3D2D1D010100100

当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。

b、左移指令A1HD7D6D5D4D3D2D1D0101000014252LP39

例如,原显示为:

其中第2位‘3’和第4位‘L’为闪烁显示,执行了左移指令后,显示变为:252LP39第2位‘9’和第4位‘P’为闪烁显示。

c、右移指令A0H

D7D6D5D4D3D2D1D010100000

与左移指令类似,但所做移动为自左向右(从第8位向第1位)移动,移动后,最左边一位为空。

B、带有数据的指令

a、下载数据且按方式0译码D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010000a2a1a0DPXXXd3d2d1d0

命令由二字节组成,前半部分为指令,其中a2,a1,

a0为位地址。d0-d3为数据,收到此指令时,按以下规

则进行译码。

0000:显01001:显9

1010:显-1111:显空白

小数点的显示由DP位控制:

DP=1时,小数点显示, DP=0时,小数点不显示。

b、下载数据且按方式1译码D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D011001a2a1a0DPXXXd3d2d1d0

此指令与上一条指令其本相同,所不同的是译码式,该指令的译码为按d0—d3值对应的是0—9,A~F。c、下载数据但不译码

D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010010a2a1a0DPABCDEFG

其中,a2,a1,a0为位地址,A-G和DP为显示数

据,分别对应7段LED数码管的各段。当相应的数据位

为‘1’时,该段点亮,否则不亮。此指令灵活,通过造

字形表,可以显示用户所需的字符。d、闪烁控制88H

D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010001000d8d7d6d5d4d3d2d1此命令控制各个数码管的闪烁属性,d1—d8分别对应数码管1-8。0=闪烁,1=不闪烁。开机后,缺省的状态为各位均不闪烁。

e、读键盘数据指令15H

D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000010101d7d6d5d4d3d2d1d0

该指令从HD7279A读出当前的按键代码。前一个字节15H为指令代码,而后一个字节d0-d7则HD7279A返回的按键代码,其范围是00H-3FH(无键按下时为FFH)。

(1)、当HD7279A检测到有效的按键时,KEY引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果HD7279A接收到‘读键盘数据指令’,则输出当前按键的键盘代码;

(2)、如果在收到‘读键盘指令’时没有有效按键,HD7279A将输出FFH。

3、串行接口的时序图。

A、HD7279A的指令结构类型:

a、不带数据的纯指令,指令的宽度为8个BIT。即微处

理器需发送8个CLK脉冲。

b、带有数据的指令,宽度为16个BIT,即微处理器需

发送16个CLK脉冲。

c、读取键盘数据指令,宽度为16个BIT,前8个为微处

理器发送到HD7279A的指令,后8个BIT为HD7279A返

回的键盘代码。执行此指令时,HD7279A的DATA端在

第9个CLK脉冲的上升沿变为输出状态,并与第16个

脉冲的下降沿恢复为输入状态,等待接收下一个指

令。

B、串行接口的时序图:

a、纯指令

T1=50us;T2=8us;T3=8us

b、带数据指令

T4=25usc、读键盘指令T5=25us;T6=8us;T7=8us

4、HD7279A应用举例

A、硬件电路:

注意:

(1).HD7279A应连接共阴式数码管。

(2).应用中,无需用到的键盘和数码管可以不连接。

(3).应用中,串入DP及SA-SG连接的8只电阻为200欧。

(4).应用中,8只下拉电阻和8只键盘连接位选线DIG0 -DIG7的电阻,应遵从一定的比例 关系,典型值为10倍,

下拉电阻的取值范围是10K—100K

位选电阻的取值范围是1K—10K

(5).HD7279A需要一外接的RC振荡电路以供系统工 作,其典型值分别为R=1.5KΩ,C=15pF。

B、软件编程

(设F晶=6MHZ)

a、发送一字节子程序:(发送数存于A中)

STFS:MOVR7,#08H设:P1.0CS

L1:RLCAP1.1CLK

MOVP1.2,CP1.2DATA

SETBP1.1P1.3KEY

MOVR6,#02H

L2:DJNZR6,L2

CLRP1.1

MOVR6,#02H

L3:DJNZR6,L3

DJNZR7,L1

RET

b、接收一字节子程序:(接收字符存于A中)

STJS:MOVR7,#08H

L1:SETBP1.1

SETBP1.2

MOVR6,#02H

L2:DJNZR6,L2

MOVC,P1.2

RLCA

CLRP1.1

MOVR6,#01H

L3:DJNZR6,L3

DJNZR7,L1

RET

c、显示程序:采用下载数据但不译码方式,其字形表 由用户根据需要和硬件连线来确定,指 令码为90H~97H.显缓区为40H~47H。

DTR:MOVR5,#08HMOVCA,@A+PC

MOVR0,#40HACALLSTFS

MOVR1,#97HMOVR6,#02H

L1:CLRP1.0L4:DJNZR6,L4

MOVR6,#0CHSETBP1.0

L2:DJNZR6,L2INCR0 MOVA,R1DECR1

ACALLSTFSDJNZR5,L1

MOVR6,#04HRETL3:DJNZR6,L3TABDB7EH,30H,6DH…MOVA,@R0ADDA,#0DH

d、读键值子程序:所读的键值保存在A中,其值与按键 在键盘中位置及硬件连线有关。

KEY1:CLRP1.0

MOVR6,#0CH

L1:DJNZR6,L1

MOVA,#15H

ACALLSTFS MOVR6,#06H

L2:DJNZR6,L2

ACALLSTJS

SETBP1.0 RET

e、读键值三种方式:

(1)中断方式:将KEY连到INT引脚上,在中断程序中, 用KEY1子程序读取键值。

(2)查询方式:软件查询KEY脚电平,当为低电平时读取值。采用这种方式要求主循环程序时间应小于100ms,为保证按一次键只得到一个键值,在软件中应建立一个标志。

设00H为标志位.A保存按键值,当A=FFH时,表示无键按下.

KEY:SETBP1.3SETB00H

MOVC,P1.3RET

JCL2L2:CLR00H

JB00H,L1L1:MOVA,#FFH

LCALLKEY1RET

(3)直读方式:

在主程序循环中,安排一个读键值子程序。当读到的值为FFH为无键按下,当读到的值不为FFH时,表示有键按下,其值为键值。采用这种方式要求主循环程序应小于100ms,为了解决在按一次键时可读到多个同样的值的问题,在软件中应建立一个标志。设00H为标志位.

A保存按键值,当A=FFH时,表示无键按下.

KEY:ACALLKEY1ACALLKEY2

CJNEA,#0FFH,L1RET

CLR00HL2:MOVA,#FFH

RETRET

L1:JB00H,L2

SETB00H

f、求键号(设按键值存A,求得键号也存A)

KEY2:MOVB,AMOVR2,#00H

MOVR7,#0FH(16个键)

L1:MOVA,R2

ADDA,#0AH

MOVCA,@A+PC

CJNEA,B,L2

SJMPL3

L2:INCR2

DJNZR7,L1

L3:MOVA,R2

RET

TAB:DBXXH,XXH,┈(键值表)

g、7279初始化(复位)

ST:CLRP1.0 MOVR6,#0CH L0:DJNZR6,L0 MOVA,#A4H ACALLSTFS MOVR6,#02H L1:DJNZR6,L1 SETBP1.0 RET

五、单片机应用系统的软件设计

通常单片机应用系统的系统软件由主程序、定时中

断服务程序和若干个子程序构成。根据系统各操作的

性质,指定哪些操作由中断服务程序完成,哪些操作

由主程序完成。通常主程序完成显示及键盘处理,实现人机对话功

能。其实时时钟、现场参数采样、控制输出等则由定

时中断完成。下面以实时时钟为例,介绍单片机应用系统的软件

设计流程。

1、实时时钟技术要求:

A、实时显示时钟。

B、实时校时。

2、软件设计的有关参数

A、键盘及显示安排数字键:0-9个命令键:校时(0AH)

、确认(0BH)

数码管:6个显示方式:XX.XX.XX

B、内存单元及P1口安排:标志位:00H键标志P1口:P1.0CS01H校时标志 P1.1CLK02H半秒标志P1.2DATA

显缓区:40H---47H(7279)

显示指针:22H

时钟:30H(时) 31H(分)

32H(秒)

33H(100ms) 34H(100ms)

堆栈区:68H-7FH3、软件框图

键扫入口:0000H初始化显示处理、显示有键按下否键数-【显针】修改显针显针限值保存校时值置0校时标志键处理

A、主程序校时否数键YNNY确认初始化设置栈底(SP)定时器初始化开中断置“0”工作单元及标志校时建立校时标志建立显针

B、中断服务程序:入口:000BH保护现场(A、B、DPH、DPL、PSW等)选另一工作寄存器区重新置定时初值中断次数计数,建立时间标志(控制显示更新等)时钟计时恢复现场中断返回

4、实时时钟软件清单

A、主程序:

a、MAIN_1:

ORG0000HLJMPMAIN_1

MAIN_1:MOVSP,#67HM_0:CLRA

MOVTMOD,#01HMOV@R0,A

MOVTL0,#C0HINCR0

MOVTH0,#3BHDJNZR7,M_0

MOVIE,#82HACALLINT_7279

SETBTR0AJMPMAIN_2MOVR7,#30H

MOVR0,#20H

b、

MAIN_2:

MAIN_2:ACALLDIR_0M_4:CJNEA,#0BH,M_5ACALLDIRACALLMKEY_2ACALLKEYM_5:SJMPMAIN_2CJNEA,#FFH,M_1SJMPMAIN_2M_1:CJNEA,#0AH,M_2M_2:JNCM_3ACALLSKEYSJMPMAIN_2M_3:CJNEA,#0AH,M_4ACALLMKEY_1SJMPMAIN_2

c、DIR_0:(显示处理)

DIR_0:JB01H,D_1A_R0:MOVR2,A JNB02H,D_1 SWAPA CLR02H ANLA,#0FH MOVR0,#40H MOV@R0,A MOVA,30H INCR0 ACALLA_R0MOVA,R2 MOVA,31HANLA,#0FH ACALLA_R0 MOV@R0,A MOVA,32H INCR0 ACALLA_R0 RET MOV41H,#10H MOV43H,#10H D_1:RET

d、SKEY:(数键处理)

(1)方法1

SKEY:JNB01H,S_2MOVR0,22HMOV@R0,AINC22HMOVA,22HCJNEA,#46H,S_1S_1:JCS_2MOV22H,#40HS_2:RET

(2)方法2SKEY:JNB01H,S_2MOVR2,A MOVR7,#05H MOVR0,#41H S_1:MOVA,@R0 ANLA,#0FH DECR0 MOV@R0,A INCR0 INCR0 DJNZR7,S_1 MOV45H,R2 ORL41H,#10H ORL41H,#10H S_2:RETE、MKEY_1:(校时键处理)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论