《MCS51单片机的并行接口课件》由会员分享,可在线阅读,更多相关《MCS51单片机的并行接口课件(40页珍藏版)》请在金锄头文库上搜索。
1、7.37.3单片机的显示与键盘单片机的显示与键盘 单片机应用系统通常都需要进行人单片机应用系统通常都需要进行人- -机对话。其中包机对话。其中包括人括人- -机应用系统的机应用系统的干预与数据输入干预与数据输入,应用系统状态与,应用系统状态与运行结果的运行结果的显示显示等。键盘与显示器是单片机应用系统中等。键盘与显示器是单片机应用系统中最常用的最常用的人人- -机交互机交互技术。技术。LEDLED数码管显示器数码管显示器键盘接口技术键盘接口技术1MCS51单片机的并行接口7.3.17.3.1 LED LED数码管显示器数码管显示器 与单片机应用系统接口的显示器主要是与单片机应用系统接口的显示器
2、主要是LEDLED显示器显示器和和LCD LCD (Liquid Crystal DisplayLiquid Crystal Display)显示器。显示器。LED(LightEmitingDiode)是是发光二极管发光二极管显示器的缩写。显示器的缩写。LED显示器由于结构简单、价格便宜、体积小、亮度高、显示器由于结构简单、价格便宜、体积小、亮度高、电压低、可靠性高、寿命长、响应速度快、配置灵活等特电压低、可靠性高、寿命长、响应速度快、配置灵活等特点,与单片机接口方便而得到广泛的应用。点,与单片机接口方便而得到广泛的应用。2MCS51单片机的并行接口1)数码管结构数码管结构数数码码管管由由8个
3、个发发光光二二极极管管(以以下下简简称称字字段段)构构成成,通通过过不不同同的的组组合合可可用用来来显显示示数数字字0 9、字字符符A F、H、L、P、R、U、Y、符符号号“ ”及及小小数数点点“ ”数数码码管管又又分分为为共共阴极和共阳极两种结构阴极和共阳极两种结构MCS51单片机的并行接口2)数码管工作原理数码管工作原理共阳极数码管的共阳极数码管的8个发光二极管的阳极(二极管正端)个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),连接在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端其它管脚接段驱动电路输出端。当
4、某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。为低电平时,则该端所连接的字段导通并点亮。共阴极数码管的共阴极数码管的8个发光二极管的阴极(二极管负端)连接个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,平时,则该端所连接的字段导通并点亮,MCS51单片机的并行接口2、七段LED的段选码 为使为使LEDLED显示不同的符号或数字,要为显示不同的符号或数字,要为
5、LEDLED提供提供段码段码(或称字形码)。正好是一个字节(或称字形码)。正好是一个字节(8 8段)。段)。各段与字节中各位对应关系各段与字节中各位对应关系一般如下一般如下: 字型及段码由设计者自行设定,习惯上还是以字型及段码由设计者自行设定,习惯上还是以“a a” 段对应段对应段码段码的的最低位最低位。如使用共阳极数码管,数据为如使用共阳极数码管,数据为0表示对应字段亮,表示对应字段亮,数据为数据为1表示对应字段暗;如使用共阴极数码管,数据表示对应字段暗;如使用共阴极数码管,数据为为0表示对应字段暗,数据为表示对应字段暗,数据为1表示对应字段亮。表示对应字段亮。5MCS51单片机的并行接口七
6、段LED的段选码 6MCS51单片机的并行接口3 3、LEDLED显示器工作原理显示器工作原理4 4位位 LEDLED显示器的结构原理图:显示器的结构原理图:N N个个LEDLED显示块有显示块有N N位位选线和位位选线和8N8N根段码线。根段码线。或称或称“字线字线”或称或称“位线位线”控制控制显示显示的的字型。字型。控制控制该显示该显示位的位的亮或暗。亮或暗。有有静态显示静态显示和和动态显示动态显示两种显示方式。两种显示方式。7MCS51单片机的并行接口(1 1)静态显示方式静态显示方式各位的公共端连接在一起(接地或各位的公共端连接在一起(接地或+5V+5V)。)。每位的段码线(每位的段码
7、线(a adpdp)分别与一个)分别与一个8 8位的锁存器输出相位的锁存器输出相连。显示字符一确定,相应锁存器的段码输出将维持不变,连。显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。直到送入另一个段码为止。8MCS51单片机的并行接口静静态态显显示示是是指指数数码码管管显显示示某某一一字字符符时时,相相应应的的发发光光二二极极管管恒恒定定导导通通或或恒恒定定截截止止。这这种种显显示示方方式式的的各各位位数数码码管管相相互互独独立立,公公共共端端恒恒定定接接地地或或接接正正电电源源。每每个个数数码码管管的的8个个字字段段分分别别与与一一个个8位位I/O口口地地址址相相连
8、连,I/O口口只只要要有有段段码码输输出出,相相应应字字符符即即显显示示出出来来,并并保保持持不不变变,直直到到I/O口口输输出出新新的的段段码码。静静态态显显示示的的特特点点是是每每个个数数码码管管必必须须接接一一个个8位位锁锁存存器器用用来来锁锁存存待待显显示示的的字字形形码码。送送入入一一次次字字形形码码显显示示字字形形一一直直保保持持,直直到到送送入入新新字字形形码码为为止止。这这种种方方法法的的优优点点是是占占用用CPU时时间间少少,较较小小的的电电流流即即可可获获得得较较高高的的亮亮度度,程程序序也也十十分分的的简简洁洁,显显示示便便于于监监测测和和控控制制。缺缺点点是是这这种种显
9、显示示方方法法占占用用的的I/O端端口口较较多多,硬硬件件电电路路复复杂杂,成成本本高高,只只适适合合于于显显示示位位数数较较少少的的场合。场合。MCS51单片机的并行接口应用举例应用举例例例共阴数码管静态显示共阴数码管静态显示0123 ORG 0000HMAIN: MOV P0,#3FH MOV P1,#06H MOV P2,#5BH MOV P3,#4FH SJMP $ ENDMCS51单片机的并行接口(2 2)动态显示方式动态显示方式所有位的段码线所有位的段码线相应段并在一起,由一个相应段并在一起,由一个8 8位位I/OI/O口控制口控制,形成,形成段码线的多路复用段码线的多路复用,各位
10、的,各位的公共端公共端分别由分别由相应的相应的I/OI/O线控制,形成各位的线控制,形成各位的分时选通分时选通。2)LED动态显示动态显示11MCS51单片机的并行接口动态扫描方式动态扫描方式段码线的多路复用段码线的多路复用,公共端分时选通公共端分时选通。只能点亮其中一个。只能点亮其中一个。p动态扫描显示的动态扫描显示的分时控制方法分时控制方法:动态显示时,首先将位选的最低位置为低,选中第一位动态显示时,首先将位选的最低位置为低,选中第一位数码管,然后由段代码数据输出数码管,然后由段代码数据输出0段代码,即可在第一位段代码,即可在第一位上显示上显示0这个数字,这时可将位选信号第这个数字,这时可
11、将位选信号第2位置低,选中位置低,选中第二位数码管,然后再由段代码数据线输出第二位数码管,然后再由段代码数据线输出1的代码,第的代码,第3位和第位和第4位也同样处理,如果每位的显示时间恰当,则位也同样处理,如果每位的显示时间恰当,则看到看到4位一起点亮的效果。位一起点亮的效果。12MCS51单片机的并行接口人眼的视觉暂留时间为人眼的视觉暂留时间为0.1秒,设计时,要注意每位显示的秒,设计时,要注意每位显示的间隔时间,由于一位间隔时间,由于一位7段段LED的熄灭时间不能超过的熄灭时间不能超过100ms,也就是说点亮其它位所用的时间不能超过也就是说点亮其它位所用的时间不能超过100ms,这样当有,
12、这样当有N位的位的7段段LED用来显示时,每一位间隔的时间用来显示时,每一位间隔的时间t就必须符就必须符合下面的式子:合下面的式子:t100ms/(N-1)比如,现在使用比如,现在使用4位,也就是位,也就是N4,则由式子可以算出,则由式子可以算出t33ms,就是每一位的间隔时间不能超过,就是每一位的间隔时间不能超过33ms。当然时间。当然时间可以也设得短一些,比如可以也设得短一些,比如5ms或或1ms。v软件延时扫描软件延时扫描v定时中断扫描(推荐)定时中断扫描(推荐)设置显示缓冲区,定时从缓冲区中设置显示缓冲区,定时从缓冲区中取出要显示的字符。取出要显示的字符。MCS51单片机的并行接口例:
13、动态显示方式例:动态显示方式6 6位动态显示器接口位动态显示器接口MCS51单片机的并行接口DIRDIR: MOV R0MOV R0,#79H #79H ;置缓冲器指针初值;置缓冲器指针初值 MOV R3MOV R3,#01H#01H MOV A MOV A,R3R3LD0LD0: MOV DPTRMOV DPTR,#7F01H #7F01H ; 模式模式8155A8155A MOVX DPTR MOVX DPTR,A A INC DPTR INC DPTR MOV A MOV A,R0 R0 ;取显示数据取显示数据 ADD AADD A,#0DH #0DH ;加查表修正量加查表修正量 MOV
14、C AMOVC A,A+PC A+PC ;查表取段数据查表取段数据DIR1DIR1: MOVX DPTRMOVX DPTR,A A ;段数据;段数据8155B8155B口口 LCALL DL1 LCALL DL1 ;延迟;延迟1ms1ms INC R0 INC R0 MOV A MOV A, R3R3 JB ACC.5 JB ACC.5, LD0LD0 RL A RL A MOV R3 MOV R3, A A SJMP LD0 SJMP LD0显示子程序:显示子程序:DSEGDSEG: 3FH3FH,06H06H,5BH5BH,4FH4FH,66H66H,6DH 6DH ;段数据表段数据表DS
15、EG1DSEG1: 7DH7DH,07H07H,7FH7FH,6FH6FH,77H77H,7CH 7CH ;段数据表段数据表DSEG2DSEG2: 39H39H,5EH5EH,79H79H,71H71H,73H73H,3EH 3EH ;段数据表段数据表DSEG3DSEG3: 31H31H,6EH6EH,1CH1CH,23H23H,40H40H,03H 03H ;段数据表段数据表DSEG4DSEG4: 18H18H,0000,0000,0000MCS51单片机的并行接口C语言例程 8位数码管显示0,1,7#includedofly=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x
16、7d,0x07,0x7f,0x6f;/ 显示段码值unsigned char code seg=0,1,2,3,4,5,6,7;/分别对应相应的数码管点亮,即位码void delay(unsigned int cnt) 延时子程序(省略)main() unsigned char i; while(1) P0=doflyi;/取显示数据,段码 P2=segi; /取位码 delay(2000); /扫描间隙延时 i+; if(8=i) /检测8位扫描完全? i=0; 16MCS51单片机的并行接口LEDLED大屏幕显示大屏幕显示无无论论是是单单个个LED(发发光光二二极极管管)还还是是LED七七
17、段段码码显显示示器器(数数码码管管),都都不不能能显显示示字字符符(含含汉汉字字)及及更更为为复复杂杂的的图图形形信信息息,这这主主要要是是因因为为它它们们没没有有足足够够的的信信息息显显示示单单位位。LED点点阵阵显显示示是是把把很很多多的的LED按按矩矩阵阵方方式式排排列列在在一一起起,通通过过对对各各LED发发光光与与不不发发光光的的控控制制来来完完成成各各种种字字符符或或图图形形的的显显示示。最最常常见见的的LED点点阵阵显显示示模模块块有有57(5列列7行行),79,88结结构构,前前两两种种主主要要用用于于显显示示各各种种西西文文字字符符,后后一一种种可可用用于于大大型型电电子子显
18、显示示屏屏的的基基本本组组建建单单元元。LED点点阵阵由由一一个个一一个个的的点点(LED发发光光二二极极管管)组组成成,总总点点数数为为行行数数与与列列数数之之积,引脚数为行数与列数之和。积,引脚数为行数与列数之和。MCS51单片机的并行接口 1 18 8 8 LED8 LED点阵简介点阵简介88LED点阵的外观及引脚图和等效电路图如图所示。点阵的外观及引脚图和等效电路图如图所示。图中只要各图中只要各LED处于正偏(处于正偏(Y方向为方向为1,X方向为方向为0),则对),则对应的应的LED发光。如发光。如Y7(0)=1,X7(H)=0时,则其对应时,则其对应的右下角的的右下角的LED会发光。
19、各会发光。各LED还需接上限流电阻,实际还需接上限流电阻,实际应用时,限流电阻即可接在应用时,限流电阻即可接在X轴,也可接在轴,也可接在Y轴。轴。MCS51单片机的并行接口图7.22 88点阵的等效电路MCS51单片机的并行接口7.3 7.3 键盘接口键盘接口在在单单片片机机应应用用系系统统中中,除除了了复复位位按按键键有有专专门门的的复复位位电电路路及及专专一一的的复复位位功功能能外外,其其它它按按键键都都是是以以开开关关状状态态来来设设置置控控制制功功能能或或输输入入数数据据的的。当当所所设设置置的的功功能能键键或或数数字字键键按按下下时时,计计算算机机应应用用系系统统应应完完成成该该按按
20、键键所所设设定定的的功功能能,键键信信息息输输入入是与软件结构密切相关的过程。是与软件结构密切相关的过程。对对于于一一组组键键或或一一个个键键盘盘,总总有有一一个个接接口口电电路路与与CPU相相连连。CPU可可以以采采用用查查询询或或中中断断方方式式了了解解有有无无将将键键输输入入,并并检检查查是是哪哪一一个个键键按按下下,将将该该键键号号送送入入累累加加器器ACC,然然后后通通过过跳跳转转指指令令转转入入执执行行该该键键的的功功能能程程序序,执执行行完完后后再再返返回回主主程序。程序。MCS51单片机的并行接口 1 1按键的分类按键的分类按按键按照按照结构原理可分构原理可分为两两类,一,一类
21、是触点式开关按是触点式开关按键,如机械式开关、,如机械式开关、导电橡胶式开关等;另一橡胶式开关等;另一类是无触点是无触点式开关按式开关按键,如,如电气式按气式按键,磁感,磁感应按按键等。前者造价低,等。前者造价低,后者寿命后者寿命长。目前,微机系。目前,微机系统中最常中最常见的是触点式开关按的是触点式开关按键。MCS51单片机的并行接口按按照照接接口口原原理理分分类类(区区别别是是识识别别键键符符及及给给出出相相应应键键码码的的方方法法):编编码码键键盘盘:用用硬硬件件来来实实现现对对键键的的识识别别,硬硬件件逻逻辑辑自自动动提提供供与与键键对对应应的的编编码码,此此外外,一一般般还还具具有有
22、去去抖抖动动和和多多键键、窜窜键键保保护护电路。这种键盘使用方便,但需要较多的硬件,价格较贵电路。这种键盘使用方便,但需要较多的硬件,价格较贵非非编编码码键键盘盘:只只简简单单地地提提供供行行和和列列的的矩矩阵阵,其其它它工工作作均均由由软软件完成。由于其经济实用,较多地应用于单片机系统中。件完成。由于其经济实用,较多地应用于单片机系统中。MCS51单片机的并行接口 3 3按键结构与特点按键结构与特点微微机机键键盘盘通通常常使使用用机机械械触触点点式式按按键键开开关关,其其主主要要功功能能是是把把机机械械上上的的通通断断转转换换成成为为电电气气上上的的逻逻辑辑关关系系。也也就就是是说说,它它能
23、能提提供供标标准准的的TTL逻逻辑辑电电平平,以以便便与与通通用用数数字字系系统统的的逻逻辑电平相容。辑电平相容。机机械械式式按按键键再再按按下下或或释释放放时时,由由于于机机械械弹弹性性作作用用的的影影响响,通通常常伴伴随随有有一一定定时时间间的的触触点点机机械械抖抖动动,然然后后其其触触点点才才稳稳定定下下来来,抖抖动动时时间间的的长长短短与与开开关关的的机机械械特特性性有有关关,一一般般为为5 10ms。MCS51单片机的并行接口常用常用软件来消除按键抖动。软件来消除按键抖动。 基本思想基本思想:检测到:检测到有键按下有键按下,键对应的行线为低,软,键对应的行线为低,软件延时件延时10m
24、s10ms后,行线如仍为低,则确认该行有键按下。后,行线如仍为低,则确认该行有键按下。如何消除按键的抖动(硬件法、软件法)如何消除按键的抖动(硬件法、软件法) 当键松开时当键松开时,行线变高,软件延时,行线变高,软件延时10ms10ms后,行线仍为后,行线仍为高,说明按键已松开。高,说明按键已松开。采取以上措施,采取以上措施,躲开了两个抖动期躲开了两个抖动期t1t1和和t3t3的影响的影响。为为了了克克服服按按键键触触点点机机械械抖抖动动所所致致的的检检测测误误判判,必必须须采采取取去去抖抖动动措措施施。在在键键数数较较少少时时,可可采采用用硬硬件件去去抖抖,而而当当键键数数较较多多时时,采采
25、用用软软件去抖。件去抖。24MCS51单片机的并行接口一一组组按按键键或或键键盘盘都都要要通通过过I/O口口线线查查询询按按键键的的开开关关状状态态。根根据据键键盘盘结结构构的的不不同同,采采用用不不同同的的编编码码。无无论论有有无无编编码码,以以及及采采用用什什么么编编码码,最最后后都都要要转转换换成成为为与与累累加加器器中中数数值值相相对对应的键值,以实现按键功能程序的跳转。应的键值,以实现按键功能程序的跳转。二、二、键盘接口的工作原理键盘接口的工作原理v独立式独立式按键接口和按键接口和行列式行列式键盘接口。键盘接口。MCS51单片机的并行接口7.3.2 7.3.2 独立式按键独立式按键
26、单单片片机机控控制制系系统统中中,往往往往只只要要几几个个功功能能键键,此此时时,可可采用独立式按键结构。采用独立式按键结构。 1. 1. 独立式按键结构独立式按键结构 独独立立式式按按键键是是直直接接用用I/OI/O口口线线构构成成的的单单个个按按键键电电路路,其其特特点点是是每每个个按按键键单单独独占占用用一一根根I/OI/O口口线线,每每个个按按键键的的工工作作不不会影响其它会影响其它I/OI/O口线的状态。口线的状态。MCS51单片机的并行接口独立式按键电路配置灵活,软件结构独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根简单,但每个按键必须占用一根I/OI/O口线,口线,
27、因此,在按键较多时,因此,在按键较多时,I/OI/O口线浪费较大,不宜采用。口线浪费较大,不宜采用。 在在此此电电路路中中,按按键键输输入入都都采采用用低低电电平平有有效效,上上拉拉电电阻阻保保证了按键断开时,证了按键断开时,I/OI/O口线有确定的高电平。口线有确定的高电平。2. 2. 独立式按键的软件结构独立式按键的软件结构 独立式按键的软件常采用查询式结构或中断式结构。独立式按键的软件常采用查询式结构或中断式结构。MCS51单片机的并行接口查询方式、中断方式的独立式查询方式、中断方式的独立式键盘键盘28MCS51单片机的并行接口例:例:用用三态缓冲器三态缓冲器扩展的扩展的I/OI/O口的
28、按键接口口的按键接口29MCS51单片机的并行接口独立式键盘编程,软件消抖,查询方式检测键的状态。仅有一独立式键盘编程,软件消抖,查询方式检测键的状态。仅有一键按下时才有效才处理。键按下时才有效才处理。KEYIN:KEYIN:MOV DPTR,#0BFFFHMOV DPTR,#0BFFFH;键盘端口地址;键盘端口地址BFFFHBFFFHMOVX A,DPTRMOVX A,DPTR;读键盘状态;读键盘状态ANL A,#1FHANL A,#1FH;屏蔽高三位;屏蔽高三位MOV R3,AMOV R3,A;保存键盘状态值;保存键盘状态值LCALL DELAY10LCALL DELAY10;延时;延时1
29、0ms10ms去键盘抖动去键盘抖动MOVX A,DPTRMOVX A,DPTR;再读键盘状态;再读键盘状态ANL A,#1FHANL A,#1FH;屏蔽高三位;屏蔽高三位 CJNE A,R3, CJNE A,R3,RETURN RETURN ;两次不同,抖动引起转;两次不同,抖动引起转RETURNRETURNCJNE A,#1EH,KEY2 CJNE A,#1EH,KEY2 ;相等,有键按下,不等转;相等,有键按下,不等转KEY2KEY230MCS51单片机的并行接口程序程序- -续续LCALL LCALL PKEY1PKEY1; ;是是S1S1键按下,转键按下,转PKEY1PKEY1键处理键
30、处理 ;子程序;子程序PKEY1PKEY1KEY2: CJNE A,#1DH,KEY3 ;S2KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转键未按下,转KEY3KEY3L LCALLCALL PKEY2PKEY2 ; ;S2S2键按下,转键按下,转PKEY2PKEY2处理处理KEY3:KEY3: CJNE A,#1BH,KEY4CJNE A,#1BH,KEY4 ;S3;S3未按下,转未按下,转KEY4KEY4L LCALLCALL PKEY3PKEY3 ;S3 ;S3按下,按下,转转PKEY3PKEY3处理处理KEY4: CJNE A,#17H,KEY5 ;S4KEY4: C
31、JNE A,#17H,KEY5 ;S4键未按下,转键未按下,转KEY5KEY5L LCALLCALL PKEY4 PKEY4 ;S4 ;S4按下,按下,转转PKEY4PKEY4处理处理KEY5:KEY5: CJNE A,#0FH, CJNE A,#0FH, RETURNRETURN ;S5;S5未按下,转未按下,转RETURNRETURNL LCALLCALL PKEY5 PKEY5 ;S5 ;S5按下,按下,转转PKEY5PKEY5处理处理RETURN:RETURN:RET ;RET ;重键或无键按下,从子程序返回重键或无键按下,从子程序返回识别和编程简单,识别和编程简单,用在按键数较少的场
32、合用在按键数较少的场合。31MCS51单片机的并行接口 7.1.3 7.1.3 矩阵式按键矩阵式按键 单片机系统中,若使用按键较多单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)时,通常采用矩阵式(也称行列式)键盘。键盘。 1. 1. 矩阵式键盘的结构及原理矩阵式键盘的结构及原理矩矩阵阵式式键键盘盘由由行行线线和和列列线线组组成成,按按键键位位于于行行、列列线线的的交叉点上,其结构如图所示。交叉点上,其结构如图所示。由由图图可可知知,一一个个44的的行行、列列结结构构可可以以构构成成一一个个含含有有16个个按按键键的的键键盘盘,显显然然,在在按按键键数数量量较较多多时时,矩矩阵阵式
33、式键键盘盘较较之独立式按键键盘要节省很多之独立式按键键盘要节省很多I/O口。口。MCS51单片机的并行接口矩阵式键盘中,行、列线分别矩阵式键盘中,行、列线分别连接到按键开关的两端,列线通过连接到按键开关的两端,列线通过上拉电阻接到上拉电阻接到5V上。当无键按下上。当无键按下时,列线处于高电平状态;当有键时,列线处于高电平状态;当有键按下时,行、列线将导通,此时,按下时,行、列线将导通,此时,列线电平将由与此列线相连的行线列线电平将由与此列线相连的行线电电平平决决定定。这这是是识识别别按按键键是是否否按按下下的的关关键键。然然而而,矩矩阵阵键键盘盘中中的的行行线线、列列线线和和多多个个键键相相连
34、连,各各按按键键按按下下与与否否均均影影响响该该键键所所在在行行线线和和列列线线的的电电平平,各各按按键键间间将将相相互互影影响响,因因此此,必必须须将将行行线线、列列线线信信号号配配合合起起来来作作适适当当处处理理,才才能确定闭合键的位置。能确定闭合键的位置。MCS51单片机的并行接口按键的识别方法按键的识别方法-a.a.扫描法扫描法 图中图中3 3号键被按下为例,来说明此键时如何被识号键被按下为例,来说明此键时如何被识别出来的。别出来的。p识别键盘有无键被按下的方识别键盘有无键被按下的方法,分两步进行:法,分两步进行:第第1 1步:步:识别键盘有无键按下;识别键盘有无键按下;第第2 2步:
35、步:如有键被按下,识别如有键被按下,识别出具体的按键。出具体的按键。 把所有列线置把所有列线置0 0,检查检查各行线电平是否有变化,如有变化,各行线电平是否有变化,如有变化,说明有键按下,如无变化说明有键按下,如无变化,则无键按下。则无键按下。 上述方法称为上述方法称为扫描法扫描法,即,即先把某一列置低电平,其余各先把某一列置低电平,其余各列为高电平,检查各行线电平的变化列为高电平,检查各行线电平的变化,如果某行线电平为低,如果某行线电平为低,可确定可确定此行列交叉点此行列交叉点处的按键被按下。处的按键被按下。34MCS51单片机的并行接口按键的识别方法按键的识别方法- - b. b. 线反转
36、法线反转法 只需两步便能获得此按键所在的行只需两步便能获得此按键所在的行列值,线反转法的原理如下图。列值,线反转法的原理如下图。第第1 1步:步:列线输出为全列线输出为全低电平,则行线中电平低电平,则行线中电平由高变低的所在行为按由高变低的所在行为按键所在行。键所在行。第第2 2步:步:行线输出为行线输出为全低电平,则列线中全低电平,则列线中电平由高变低所在列电平由高变低所在列为按键所在列。为按键所在列。 结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。35MCS51单片机的并行接口三、键盘的工作方式三、键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输单片机
37、在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。入,取决于键盘的工作方式。原则:原则:即要保证能及时响应按键操作,又不要过多占即要保证能及时响应按键操作,又不要过多占用用CPUCPU的工作时间。的工作时间。 通常,通常,键盘工作方式有键盘工作方式有3 3种,种,即:即:1.1.编程扫描、编程扫描、2.2.定时扫描定时扫描3.3.中断扫描。中断扫描。36MCS51单片机的并行接口1. 1. 编程扫描方式编程扫描方式 只有当单片机只有当单片机空闲时空闲时,才调用键盘扫描子程序,扫描,才调用键盘扫描子程序,扫描键盘。键盘。工作过程:工作过程:(1 1)在键盘扫描子程序中,先判断有无键
38、按下。在键盘扫描子程序中,先判断有无键按下。方法:方法:PAPA口口8 8位输出全位输出全0 0,读,读PCPC口低口低4 4位状态,若位状态,若PC0PC0PC3PC3为全为全1 1,则说明键盘无键按下;若不全为,则说明键盘无键按下;若不全为1 1,则说明键,则说明键盘可能有键按下。盘可能有键按下。(2 2)用软件来消除按键抖动的影响。如有键按下,则进用软件来消除按键抖动的影响。如有键按下,则进行下一步。行下一步。(3 3)求按下键的键号。求按下键的键号。(4 4)等待按键释放后,再进行按键功能的处理操作。等待按键释放后,再进行按键功能的处理操作。37MCS51单片机的并行接口定时扫描定时扫
39、描和和中断扫描中断扫描2. 2. 定时扫描工作方式定时扫描工作方式 利用单片机内的定时器,产生利用单片机内的定时器,产生10ms10ms的定时中断,对的定时中断,对键盘进行扫描。键盘进行扫描。3.3.中断工作方式中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。无键按下,单片机将不理睬键盘。总结:键盘所做的工作可分为三个层次。总结:键盘所做的工作可分为三个层次。38MCS51单片机的并行接口键盘所做的工作可分为三个层次键盘所做的工作可分为三个层次第第1 1层:层:单片机如何来监视单片机如何来监视键盘的输入。三种工作方键盘的输入。三种工作方 式:式:编程扫描编程扫描定时扫描定时扫描中断扫描。中断扫描。第第2 2层:层:确定具体按键的键号。确定具体按键的键号。体现在按键的识别方法上就体现在按键的识别方法上就是:是:扫描法;扫描法;线反转法。线反转法。第第3 3层:层:执行键处理程序。执行键处理程序。39MCS51单片机的并行接口MCS51单片机的并行接口