《键盘、显示、打印机及其它接口.ppt》由会员分享,可在线阅读,更多相关《键盘、显示、打印机及其它接口.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 键盘、显示等接口4.1 按键、键盘及其接口按键、键盘及其接口4.2 LED显示及显示器接口显示及显示器接口4.3 LCD显示及显示及显示器接口显示器接口4.4 微型打印机接口微型打印机接口4.5 语音接口技术语音接口技术4.6 其它接口其它接口4.1.1 键输入过程与软件结构键输入过程与软件结构MCS51单片机键输入过程4.1 按键、键盘及其接口按键、键盘及其接口4.1.2 键盘接口和键输入软件中应解决的几个问题键盘接口和键输入软件中应解决的几个问题1消除键抖动 2键编码及键值3键盘的监测方法4.1.3 独立式按键独立式按键1独立式按键接口结构2独立式按键的软件结构4.1.4 行列式键
2、盘行列式键盘1行列式键盘的接口2键盘工作原理1)查询工作方式查询工作方式2)定时扫描工作方式定时扫描工作方式 3)中断工作方式中断工作方式1、键盘的分类、键盘的分类 键盘分编码键盘和非编码键盘。键盘上闭键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算生键编码号或键值的称为编码键盘,如计算机键盘机键盘.而靠软件编程来识别的称为非编码键盘;而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘。也有
3、用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。4.1.1 键输入过程与软件结构键输入过程与软件结构MCS51单片机键输入过程4.1 按键、键盘及其接口按键、键盘及其接口有否键按下?是哪个键按下?根据键值散转 对于计算机应用系统,键盘扫描只是对于计算机应用系统,键盘扫描只是CPU工作工作的一部分,键盘处理只是在有键按下时才有意义。的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有对是否有键按下的信息输入方式有中断方式中断方式与与查询查询方式方式两种。两种。3键盘的监测方法键盘的监测方法1独立式按键接口结构独立式按键接口结构独立式按键的接口电路示意
4、图独立式按键的接口电路示意图(a)中断方式;中断方式;(b)查询方式查询方式 4.1.2 独立式按键独立式按键一般用排阻进行上拉。一般用排阻进行上拉。下面是查询方式的键盘程序。下面是查询方式的键盘程序。K0K0K7K7为功能程序入口地址标为功能程序入口地址标号,号,PROM0PROM0PROM7PROM7分别为每个按键的功能程序。设按键从分别为每个按键的功能程序。设按键从P1P1口口输入。输入。START:MOVA,#0FFH;MOVP1,A;置P1口为输入状态MOVA,P1;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.1,K1;检测1号键是否按下,按下转 2独立
5、式按键的软件结构独立式按键的软件结构JNBACC.2,K2;检测2号键是否按下,按下转JNBACC.3,K3;检测3号键是否按下,按下转JNBACC.4,K4;检测4号键是否按下,按下转JNBACC.5,K5;检测5号键是否按下,按下转JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转AJMPSTART;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1K7:AJIMPPROM7;入口地址表PROM0:;0号键功能程序LJMPSTART;0号键功能程序执行完返回PROM1:;1号键功能程序LJMPSTART;1号键功能程序
6、执行完返回PROM7:;7号键功能程序LJMPSTART;7号键功能程序执行完返回START:MOVA,#0FFH;MOVP1,A;置P1口为输入状态MOVA,P1;键状态输入JNBACC.0,K0;检测0号键是否按下,按下转JNBACC.1,K1;检测1号键是否按下,按下转JNBACC.6,K6;检测6号键是否按下,按下转JNBACC.7,K7;检测7号键是否按下,按下转AJMPSTART;无键按下返回,再顺次检测K0:AJMPPROM0K1:AJMPPROM1K7:AJMPPROM7PROM0:;0号键功能程序LJMPSTART;0号键功能程序执行完返回PROM1:;1号键功能程序LJMP
7、STARTPROM7:;7号键功能程序LJMPSTART;入口地址表独立式按键的软件结构独立式按键的软件结构 行列式键盘又叫矩阵式键盘。用行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构,口线组成行、列结构,按键设置在行列的交点上按键设置在行列的交点上。例如。例如44的行列结构可组成的行列结构可组成16个键的个键的键盘。因此,在按键数量较多时,可以节省键盘。因此,在按键数量较多时,可以节省I/O口线。口线。4.1.4 行列式键盘行列式键盘 行列式键盘的接口方法有许多,例如直接接口于单片机行列式键盘的接口方法有许多,例如直接接口于单片机的的I/O口上;利用扩展的并行口上;利用扩展的并行I/O
8、接口;用串行口扩展并行接口;用串行口扩展并行I/O口接口;利用一种可编程的键盘、显示接口芯片口接口;利用一种可编程的键盘、显示接口芯片8279进进行接口等。其中,行接口等。其中,利用扩展的并行利用扩展的并行I/O接口方法方便灵活,接口方法方便灵活,在单片机应用系统中比较常用在单片机应用系统中比较常用。1行列式键盘的接口行列式键盘的接口(1)用键盘连接的用键盘连接的I/O线的二进制组合表示键码线的二进制组合表示键码 例如用例如用4行、行、4列线构成的列线构成的16个键的键盘,可使用一个个键的键盘,可使用一个8位位I/O口口线的高、低线的高、低4位口线的二进制数的组合表示位口线的二进制数的组合表示
9、16个键个键的编码。的编码。2键编码及键值键编码及键值 如图所示,各键相应的键值为:如图所示,各键相应的键值为:88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的但离散性大,不便安排散转程序的入口地址。入口地址。(2)顺序排列键编码顺序排列键编码 如图所示,这种方法键值的形成如图所示,这种方法键值的形成要根据要根据I/O线的状态作相应的程序处线的状态作相应的程序处理。键码可按下式形成:理。键码可按下式形成:键码键码=行首键码行首
10、键码+列号列号D4:0行0000D5:1行0100D6:2行1000D7:3行1100D0:0列0000D1:1列0001D2:2列0010D3:3列0011行行列列键码键码 0000,0001,0010,00110100,0101,0110,01111000,1001,1010,10111100,1101,1110,11110行行3行行0列列3列列行首键码行首键码列号列号列线行线0 1 2 3 4 5 6 701230行:000001行:010002行:100003行:11000行首键码行首键码列号列号000111键码键码=行首键码行首键码+列号列号键码键码:0行:00000001111行:
11、01000011112行:10000101113行:11000111118155扩展I/O口组成的行列式键盘共32个键PA口每位依次送出口每位依次送出0,如有某键按下,则在,如有某键按下,则在PC口能读到口能读到相应的值,结合相应的值,结合PA口的信息,则能确定键值。口的信息,则能确定键值。列线行线0 1 2 3 4 5 6 70123 按键设置在行、列线的交点上,行、列线分别连接到按键开按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接关的两端。行线通过上拉电阻接+5 V,被箝位在高电平状态。,被箝位在高电平状态。对键盘的工作过程可分两步对键盘的工作过程可分两步
12、:第一步是第一步是CPU首先检测键盘上是否有键按下;首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。第二步是再识别是哪一个键按下。检测键盘上有无键按下可采用检测键盘上有无键按下可采用查询工作方式查询工作方式、定时扫描工作定时扫描工作方式方式和和中断工作方式中断工作方式。2行列式键盘工作原理行列式键盘工作原理 判断判断有无键按下有无键按下是由是由列线列线送入全扫描字,读入行线状态来判送入全扫描字,读入行线状态来判别的。别的。其方法是其方法是:PA口输出口输出00H,即所有列线置成低电平,然后,即所有列线置成低电平,然后将行线电平状态读入累加器将行线电平状态读入累加器A中。如果有键按下,
13、总会有一根行线中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为电平被拉至低电平,从而使行输入状态不全为1。判断判断哪一个键按下哪一个键按下是由列线是由列线逐列置低逐列置低电平后,检查行输入状电平后,检查行输入状态,称为逐列扫描。态,称为逐列扫描。其方法是其方法是:从:从PA0开始,依次输出开始,依次输出0,置对,置对应的列线为低电平,然后从应的列线为低电平,然后从PC口读入行线状态,如果全为口读入行线状态,如果全为1,则,则所按下之键不在此列;如果不全为所按下之键不在此列;如果不全为1,则所按下的键必在此列,则所按下的键必在此列,而且是与而且是与0电平行线相交的交点上的
14、那个键。电平行线相交的交点上的那个键。为求取键码,在逐列扫描时,可用计数器记录下当前扫描列为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为的列号,然后用行线值为0的行首键码加列号的办法计算。的行首键码加列号的办法计算。1)查询工作方式查询工作方式列线行线0 1 2 3 4 5 6 701230行:000001行:010002行:100003行:11000行首键码行首键码如如1212号键按下号键按下,列扫描号为列扫描号为0100,0100,PC PC口读入时口读入时PC1=0,PC1=0,可确定行可确定行首键码为首键码为01000,故键值为故键值为:01000+0100
15、=01100 1消除键抖动消除键抖动键稳定键按下后沿抖动前沿抖动键合、键断时的电压抖动4.1.3 键盘接口和键输入软件中应解决的几个问题键盘接口和键输入软件中应解决的几个问题硬件:采用消除键抖动电路原理:基本RS触发器,/S0,Q1/R0,Q0抖动时,/R=/S=1,Q不变。/S/RQ软件:采用延时判别程序(具体程序后叙)有键按下否有键按下否调用调用6 ms延时子程序延时子程序开开 始始调用调用12 ms延时子程序延时子程序有键按下否有键按下否判断闭合键,键码入栈保存判断闭合键,键码入栈保存闭合键释放否闭合键释放否键码键码 A A返返 回回YYYNNN键盘扫描子程键盘扫描子程序流程框图序流程框
16、图键盘扫描子程序如下:KEY1:ACALLTM6;调6ms延时子程序ACALLKS1;调用判断有无键按下子程序JNZLK1;有键按下时,(A)0转消抖延时AJMPKEY1;无键按下返回LK1:ACALLTM12;调12ms延时子程序ACALLKS1;查有无键按下,若有则真有键按下JNZLK2;键(A)0逐列扫描AJMPKEY1;不是真有键按下,返回转逐列扫描LK2:MOVR2,#0FEH;初始列扫描字(0列)送入R2MOVR4,#00H;初始列(0列)号送入R4LK4:MOVDPTR,#7F01H;DPTR指向8155PA口MOVA,R2;列扫描字送至8155PA口MOVXDPTR,AINCD
17、PTRINCDPTR;DPTR指向8155PC口MOVXA,DPTR;从8155PC口读入行状态JBACC.0,L_ONE;查第0行无键按下,转查第1行MOVA,#00H;第0行有键按下,行首键码#00HAAJMPLKP;转求键码L_ONE:JBACC.1,L_TWO;查第1行无键按下,转查第2行MOVA,#08H;第1行有键按下,行首键码#08HAAJMPLKP;转求键码;逐列扫描;逐列扫描11111110 R2L_TWO:JBACC.2,L_THR;查第2行无键按下,转查第3行MOVA,#10H;第2行有键按下,行首键码#10HAAJMPLKP;转求键码L_THR:JBACC.3,NEXT
18、;查第3行无键按下,转向查下一列MOVA,#18H;第3行有键按下,行首键码#18HALKP:ADDA,R4;求键码,键码=行首键码+列号PUSHACC;键码进栈保护LK3:ACALLKS1;等待键释放JNZLK3;键未释放,等待POPACC;键释放,键码ARET;键扫描结束,出口状态(A)=键码;开始求键码;逐列扫描(续);逐列扫描(续)NEXT:INCR4;准备扫描下一列,列号加1MOVA,R2;取列号送累加器AJNBACC.7,KEND;判断8列扫描否?扫描完返回RLA;扫描字左移一位,变为下一列扫描字MOVR2,A;扫描字送入R2AJMPLK4;转下一列扫描KEND:AJMPKEY1;
19、从新开始键扫描。;准备扫描下一列准备扫描下一列;逐列扫描(续);逐列扫描(续)11111110 R21111110101111111扫描第0列第1列第7列KS1:MOVDPTR,#7F01H;DPTR指向8155PA口MOVA,#00H;全扫描字AMOVXDPTR,A;全扫描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,DPTR;读入PC口行状态CPLA;以高电平表示有键按下ANLA,#0FH;屏蔽高4位,只保留低4位行线值RET;出口状态:(A)0时有键按下TM12:MOVR7,#18H;延时12ms子程序TM6:MOVR6,#0FFHTM61:DJ
20、NZR6,TM61DJNZR7,TM6RET;判有无键按下判有无键按下键盘上有键闭合否键盘上有键闭合否开开 始始KM=1KP=1返返 回回1 KM0 0 KM0 0 KP查询键码查询键码1 1 KPNNNYYY2)定时扫描工作方式定时扫描工作方式定时扫描方式程序框图定时扫描方式程序框图思路:思路:CPU CPU每隔一定时间对键每隔一定时间对键盘进行一次扫描,并将结盘进行一次扫描,并将结果置成不同标志。果置成不同标志。KM,KPKM,KP:标志位:标志位无按键无按键:0:0KM,00KP第一次读到键:第一次读到键:11KM第二次读到键:查询键码第二次读到键:查询键码,11KP。如如KMKP1,表
21、示已查询过的按键,表示已查询过的按键没释放,不再继续查询。没释放,不再继续查询。计算机应用系统工作时,并不经常计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还需要键输入。但无论是查询工作方式还是定时扫描工作方式,是定时扫描工作方式,CPU经常处于空经常处于空扫描状态。为了提高扫描状态。为了提高CPU的效率,的效率,可采可采用中断工作方式用中断工作方式。这种工作方式是当键。这种工作方式是当键盘上有键按下时,向盘上有键按下时,向CPU发一个中断请发一个中断请求信号,求信号,CPU响应中断后,在中断服务响应中断后,在中断服务程序中扫描键盘,执行键功能程序。程序中扫描键盘,执行键功能程
22、序。中断服务程序中应完成键识别、消中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。能,可参考查询工作方式键盘程序。3)中断工作方式中断工作方式 1 MCS-511 MCS-51与显示器的接口与显示器的接口v为方便人们观察和监视单片机的运行,通常需要用一种为方便人们观察和监视单片机的运行,通常需要用一种显示器作为单片机的输出设备,用来显示单片机的键输显示器作为单片机的输出设备,用来显示单片机的键输入值、中间信息及运算结果。入值、中间信息及运算结果。v单片机系统中常用的显示器主要有单片机系统中常用的显示器主要有LED
23、(LED(发光二极管发光二极管)和和LCD(LCD(液晶显示器液晶显示器)。v两种显示器具有耗电省、配置灵活、线路简单、安装方两种显示器具有耗电省、配置灵活、线路简单、安装方便、耐振动、寿命长等优点。两者相比,便、耐振动、寿命长等优点。两者相比,LEDLED价格更低廉,价格更低廉,结构更简单;结构更简单;LCDLCD功耗更低,显示清晰度更高。功耗更低,显示清晰度更高。一一.MCS-51.MCS-51对对LEDLED的接口的接口1.LED1.LED的种类的种类 LED(Light-Emitting Diode)LED(Light-Emitting Diode)是发光二极管的简称。是发光二极管的简
24、称。LEDLED有七段和八段之分,也有共阴和共阳两种。有七段和八段之分,也有共阴和共阳两种。(a)(a)共阴共阴LEDLED结构结构(b)(b)共阴共阴LED (c)LED (c)共阳共阳LEDLEDabcdefgspabcdefgspGGacdefbgabsp2.LEDLED数码显示管原理数码显示管原理 数码管发光原理分两种情况:共阳极型数码管发光原理分两种情况:共阳极型a,b,c,d,e,f,ga,b,c,d,e,f,g 各引脚哪个输入低电平,哪个二极管发亮;共阴极型各引脚哪个输入低电平,哪个二极管发亮;共阴极型a-ga-g哪个为高电平,哪个二极管亮。每个二极管为段,哪个为高电平,哪个二极
25、管亮。每个二极管为段,不同的发光段亮,可组成不同字形。不同的发光段亮,可组成不同字形。对于共阴对于共阴LEDLED,显示,显示“3”“3”,需要在,需要在8 8个管脚上施加控制个管脚上施加控制电平电平04FH-(04FH-(字型码字型码),04FH04FH是按照是按照 h h,g g,f f,e e,d d,c c,b b,a a D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 对于共阳对于共阳LEDLED,显示,显示“3”“3”字型码字型码是是 h h,g g,f f,e e,d
26、d,c c,b b,a a D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 0 0 0 01 0 1 1 0 0 0 0 七段七段LED的段选码的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82H31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“灭”00HFFHA77H88HB7CH83Hdpgf
27、edcbaD7D6D5D4D3D2D1D03.MCS-513.MCS-51对对LEDLED的显示的显示 MCS-51 MCS-51对对LEDLED的显示分为静态和动态两种。的显示分为静态和动态两种。静态显示的特点是:每个数码管能稳定地同时显示各静态显示的特点是:每个数码管能稳定地同时显示各自字形;即工作过程中加在每一个自字形;即工作过程中加在每一个LEDLED上的信号始终同上的信号始终同时存在。各位的显示字符一旦确定,加在每一块显示时存在。各位的显示字符一旦确定,加在每一块显示器上的信号维持不变,直到显示另一个字符为止。器上的信号维持不变,直到显示另一个字符为止。优点:各显示模块相互独立,显示
28、亮度高,编程简单。优点:各显示模块相互独立,显示亮度高,编程简单。缺点:需占用较多的硬件资源。缺点:需占用较多的硬件资源。单片机系统中,常采用单片机系统中,常采用74LS4774LS47、MC14495MC14495等芯片作为等芯片作为LEDLED的的静态显示接口。静态显示接口。4.2.2 LED显示器与显示方式显示器与显示方式1LED静态显示方式静态显示方式N位静态显示器要求有位静态显示器要求有N8根根I/O口线口线1硬件译码显示器接口硬件译码显示器接口MC14495内部逻辑与引脚图内部逻辑与引脚图4.2.3 LED显示器接口显示器接口锁存锁存/译码译码/驱动器驱动器地址译码和字段ROM阵列
29、bcdefgh+iaVCR29098434锁存器5A6B9C10D7LE12111314151216VDDVSS1111111111111174LS48,4511,4543,14495等等4 4位位静态静态LEDLED显示器接口显示器接口译码器1#MC14495a b c d e f g G2#MC14495a b c d e f g G3#MC14495a b c d e f g G4#MC14495a b c d e f g GLELELELE8031GABY1Y0Y2Y3P1.7P1.6P1.5P1.4P1.2P1.1P1.0MC14495MC14495芯片的作用是输入被显示字符的二进制
30、码(或芯片的作用是输入被显示字符的二进制码(或BCDBCD码),并把它自动转换成相应字形码,送给码),并把它自动转换成相应字形码,送给LEDLED显示。显示。译码器1#MC14495a b c d e f g G2#MC14495a b c d e f g G3#MC14495a b c d e f g G4#MC14495a b c d e f g GLELELELE8031GABY1Y0Y2Y3P1.7P1.6P1.5P1.4P1.2P1.1P1.0n用于输出欲显示字符的二进制码用于输出欲显示字符的二进制码(BCD(BCD码码);nP1.2P1.2控制二四译码器工作;控制二四译码器工作;n
31、P1.1P1.1和和P1.0P1.0经译码输出后控制经译码输出后控制MC14495MC14495中哪一个接收欲中哪一个接收欲显示的代码。显示的代码。使用MC14495的8位LED静态显示接口显示方式:静态。口线占用:8根。使用芯片:3/8译码器1片。MC14495显示译码器8片。动态显示动态显示 动态显示是指各动态显示是指各LEDLED轮流地一遍一遍显示各自字符;轮流地一遍一遍显示各自字符;人们因为视觉器官惰性而看到的是各人们因为视觉器官惰性而看到的是各LEDLED似乎在同时似乎在同时显示不同字形。显示不同字形。特点特点是所有是所有LEDLED的段选线并联在一起,而每个的段选线并联在一起,而每
32、个LEDLED对对应一根位选线位选线控制哪一位接收字段码。应一根位选线位选线控制哪一位接收字段码。采用动态扫描显示。所谓动态扫描显示:各位共用采用动态扫描显示。所谓动态扫描显示:各位共用一个字形口,利用相应的字位选择轮流向各位送出一个字形口,利用相应的字位选择轮流向各位送出字形码。字形码。优点:优点:硬件开销小。硬件开销小。缺点:缺点:显示的亮度比静态显示差些,位数越多,在显示的亮度比静态显示差些,位数越多,在动态显示时亮度越低,同时需要动态显示时亮度越低,同时需要CPUCPU用于显示刷新的用于显示刷新的频率越高。软件编程较复杂;其实质是:以牺牲频率越高。软件编程较复杂;其实质是:以牺牲CPU
33、CPU的时间换取系统的低功耗,节省了系统资源但使显的时间换取系统的低功耗,节省了系统资源但使显示亮度降低。为了保证显示效果,动态显示位数不示亮度降低。为了保证显示效果,动态显示位数不能太多,一般不超过能太多,一般不超过8 8位。位。8位LED动态显示器电路2LED动态显示方式动态显示方式N位动态显示器要求有N8根I/O口线。P272例7.78031GALEEAP0.0P0.7WRRDP2.7RESETALERDWRRESETAD7AD0CEIO/MPB7PB6PB5PB4PB3PB2PB1PB0PC5PC4PC3PC2PC1PC08155LED5LED4LED3LED2LED1LED08003
34、H8002HGGGGG共阳请根据上图编出能在请根据上图编出能在LEDLED5 5LEDLED0 0上显示上显示1995.61995.6的动的动态显示子程序。态显示子程序。例 解:设解:设显示缓冲区显示缓冲区放在放在CPUCPU内部内部RAMRAM中,始址为中,始址为70H70H,显示,显示 缓冲区中被显示字符的字形码表的地址偏移量应预先缓冲区中被显示字符的字形码表的地址偏移量应预先 放入。如下图所示:放入。如下图所示:06H13H05H09H09H01HDS0DS0DS1DS1DS2DS2DS3DS3DS4DS4DS5DS570H70H71H71H72H72H73H73H74H74H75H75
35、H76H76H ORG 0600HORG 0600HDISPLYDISPLY:MOV A MOV A,#06H#06H ;方式控制字;方式控制字06H06H送送A A MOV DPTR MOV DPTR,#8000H#8000H MOVX DPTR MOVX DPTR,A A ;方式控制字送;方式控制字送81558155命令口命令口DISPLY1DISPLY1:MOV RMOV R0 0,#70H#70H ;显示缓冲区始址送;显示缓冲区始址送R R0 0 MOV R MOV R3 3,#0FEH#0FEH;字位码始值送;字位码始值送R R3 3 MOV A MOV A,R R3 3 LD0 L
36、D0:MOV DPTRMOV DPTR,#8003H#8003H;C C口地址送口地址送DPTRDPTR MOVX DPTR MOVX DPTR,A A ;字位码送;字位码送C C口口 MOV DPTR MOV DPTR,#8002H#8002H;B B口地址送口地址送DPTRDPTR MOV AMOV A,RR0 0 ;待显字符地址偏移量送;待显字符地址偏移量送A A ADD A ADD A,#13#13 ;对;对A A进行地址修正进行地址修正 MOVC A MOVC A,A+PC A+PC ;查字形码表;查字形码表 MOVX DPTR MOVX DPTR,A A ;字形码送;字形码送B B
37、口口 ACALL DELAY ACALL DELAY ;延时;延时1ms1ms INC R INC R0 0 ;修正显示缓冲区指针;修正显示缓冲区指针 MOV A MOV A,R R3 3 ;字位码送;字位码送A A JNB ACC.5 JNB ACC.5,LDLD1 1;若显示完一遍,则;若显示完一遍,则LEDLED1 1 RL A RL A ;字位码左移一位;字位码左移一位 MOV R MOV R3 3,A A ;送回;送回R R3 3 AJMP LD AJMP LD0 0 ;显示下一个数码;显示下一个数码 LD1 LD1:RETRET DTABDTAB:DB 0C0H DB 0C0H,F
38、9HF9H,0A4H0A4H,0B0H0B0H,99H99H DB 92H DB 92H,82H82H,0F8H0F8H,80H80H,90H90H DB 88H DB 88H,83H83H,0C6H0C6H,0A1H0A1H,86H86H DB 8EH DB 8EH,0FFH0FFH,0CH0CH,89H89H,7FH7FH DB 0BFH DB 0BFH DELAY DELAY:MOV RMOV R7 7,#02H#02H ;延时;延时1ms1ms程序程序 DELAY1 DELAY1:MOV RMOV R6 6,#0FFH#0FFH DELAY2 DELAY2:DJNZ RDJNZ R6
39、6,DELAY2DELAY2 DJNZ R DJNZ R7 7,DELAY1DELAY1 RET RET END END1键盘、显示器组合接口电路键盘、显示器组合接口电路如图是一个采用8155并行扩展口构成的键盘、显示器组合接口电路。图中设置了32个键。如果全部用完PC口线(6根),可以增加按键,最多可达86=48个键。LED显示器采用共阴极。段选码由8155PB口提供,位选码由PA口提供。键盘的列输入由PA口提供,与显示器的位选输入公用,行输入由PC0PC3提供。显然,因为键盘与显示器公用了PA口,比单独接口节省了一个I/O口。4.2.4 键盘、显示器组合接口键盘、显示器组合接口8155扩展扩展I/O口的键盘、显示器组合接口口的键盘、显示器组合接口 PB口:段选码输出PA口:位选码输出兼键盘列扫描输出。PC0PC3:键盘行输入设地址为设地址为7FHPA7PA6PA5PA4PA3PA2PA1PA0PB0PB1PB2PB3PB4PB5PB6PB7