单片微机原理及应用课件第9章显示器键盘打印机接口

上传人:仙*** 文档编号:47437422 上传时间:2021-12-20 格式:PPT 页数:95 大小:1.41MB
收藏 版权申诉 举报 下载
单片微机原理及应用课件第9章显示器键盘打印机接口_第1页
第1页 / 共95页
单片微机原理及应用课件第9章显示器键盘打印机接口_第2页
第2页 / 共95页
单片微机原理及应用课件第9章显示器键盘打印机接口_第3页
第3页 / 共95页
资源描述:

《单片微机原理及应用课件第9章显示器键盘打印机接口》由会员分享,可在线阅读,更多相关《单片微机原理及应用课件第9章显示器键盘打印机接口(95页珍藏版)》请在装配图网上搜索。

1、第第9章章 显示器、键盘、打印机显示器、键盘、打印机接口接口9.1 显示器接口显示器接口电路电路9.2 键盘接口键盘接口电路电路9.3 打印机接口打印机接口电路电路9.1.1 LED显示器显示器1LED显示器结构与原理显示器结构与原理LED显示器是由发光二极管显示字段的显示器显示器是由发光二极管显示字段的显示器件。件。在微机应用系统中通常使用的是七段在微机应用系统中通常使用的是七段LED。这。这种显示块有共阴极与共阳极两种,如图种显示块有共阴极与共阳极两种,如图9-1所示。所示。七段显示器与微机接口非常容易。如表七段显示器与微机接口非常容易。如表9-1所示。所示。 图图9-1 9-1 七段七段

2、LEDLED显示器显示器 使用使用LED显示器时,要注意区分这两种不同的接法。为了显显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计个小数点,共计8段。因此为段。因此为LED显示器提供的编码正好是一个显示器提供的编码正好是一个字节。用字节。用LED显示器显示显示器显示16进制数的编码已列在表进制数的编码已列在表9-1所示。所示。 abcdegGNDfdpGNDabcefgddpabcdefgdpdpgfedcba5V(a)(b)字型共阳极代码共阴极代码012345670F8

3、H07H82H7DH92H6DH99H66H0B0H4FH0A4H5BH0F9H06H0C0H3FH880H7FH字型共阳极代码共阴极代码9ABCDEF灭0FFH00H8EH71H86H79H0A1H5EH0C6H39H83H7CH88H77H90H6FH 为了实现为了实现LED显示器的动态扫描,除了要给显示器提供显示器的动态扫描,除了要给显示器提供段码(字形编码)的输入之外,还要对显示器加位的控制段码(字形编码)的输入之外,还要对显示器加位的控制(控制(控制LED显示器亮灭),这就是通常所说的显示器亮灭),这就是通常所说的位控和段控。位控和段控。 表表9-1 LED显示器显示器16进制数编码

4、进制数编码 P229表9-1 七段LED的段选码 2LED显示器与显示方式显示器与显示方式在微机应用系统中使用在微机应用系统中使用LED显示块构成显示块构成N位位LED显示器。图显示器。图9-11是是N位显示器的构成原理。位显示器的构成原理。LED显示器有两种显示方式:显示器有两种显示方式:(1)LED静态显示方式(如图静态显示方式(如图9-12所示)所示) (2)LED动态显示方式(如图动态显示方式(如图9-13所示)所示) a b c d e f Rdpa b c d e f Rdpa b c d e f Rdpa b c d e f Rdpa b c d e f Rdp3.83.83.8

5、3.83.8 I/O口位选控制 I/O口段选控制图图9-11 N位位LED显示器显示器 GND/+5VGND/+5VGND/+5VGND/+5VGND/+5VI/O(1)I/O(2)I/O(3)I/O(4)图图9-12 四位静态四位静态LED显示器电路显示器电路 静态显示静态显示即由单片机一次输出显示后,就能保持,即由单片机一次输出显示后,就能保持,直到下次送新的显示模式为止。直到下次送新的显示模式为止。优点:优点:显示可靠,占用机时少。显示可靠,占用机时少。缺点:缺点:使用元件多,线路比较复杂。使用元件多,线路比较复杂。 适用于显示位数少的情况。每个显示器需适用于显示位数少的情况。每个显示器

6、需8位输出口位输出口控制。控制。 动态显示动态显示即单片机定时对显示器扫描。此时,显示即单片机定时对显示器扫描。此时,显示器件分时工作,每次只能有一个器件显示。(仿真器)器件分时工作,每次只能有一个器件显示。(仿真器)优点:优点:硬件少,价格低。硬件少,价格低。缺点:缺点:占用机时多,只要单片机不执行显示程序,显示占用机时多,只要单片机不执行显示程序,显示就立即停止。就立即停止。3LED显示器接口显示器接口从从LED显示器的原理可知,为了显示字母与数显示器的原理可知,为了显示字母与数字,必须最终转换成相应的段选码。这种转换可字,必须最终转换成相应的段选码。这种转换可以通过以通过硬件译码器或软件

7、进行译码硬件译码器或软件进行译码。l l 硬件译码器硬件译码器LED显示器接口(如图显示器接口(如图9-14所示)所示)l l 软件译码软件译码LED显示器接口(如显示器接口(如图图9-15 9-16所所示)示)硬件译码:硬件译码:锁存器锁存器 译码驱动器译码驱动器 显示器显示器CD4511图图9-14 利用硬件译码器的七段利用硬件译码器的七段LED接口电路接口电路 MC14495为七段码显示器译码驱动器为七段码显示器译码驱动器图图9-15 通过通过8155扩展扩展I/O口控制的口控制的8位位LED动态显示接口动态显示接口8155的的A口作为位控口,经反相驱动器接显示口作为位控口,经反相驱动器

8、接显示器的公共阴极;器的公共阴极;8155的的B口作为段码控制口,经同相驱动器接口作为段码控制口,经同相驱动器接显示器的各个阳极。显示器的各个阳极。软件译码程序设计思想:软件译码程序设计思想:1 1、将段码表(显示数据)存放在将段码表(显示数据)存放在RAM的的 (79H7EH)中。)中。2、根据要显示的数字或字符去查相应的段码。、根据要显示的数字或字符去查相应的段码。3、然后将段码输出到七段、然后将段码输出到七段LED的驱动器上。的驱动器上。4、采用扫描的方式控制、采用扫描的方式控制LED的点亮顺序。的点亮顺序。显示数据显示数据79H7EH8155的口地址:的口地址:7F00H7F05H偏移

9、量偏移量ROM表首地址当前表首地址当前PC地址地址MOVC A,A+PC是以是以PC为基址寄存器的单字节指令。为基址寄存器的单字节指令。执行过程是:执行过程是:CPU读取本指令后,读取本指令后, PC的值自动的值自动加,累加器加,累加器A的内容作为无符号数与新的的内容作为无符号数与新的PC的的内容相加形成一个内容相加形成一个16位地址,再将该地址指出的位地址,再将该地址指出的程序存储器单元的内容送累加器程序存储器单元的内容送累加器A。指令执行后。指令执行后PC指向下一条指令继续执行。指向下一条指令继续执行。显示缓冲区在显示缓冲区在RAM中中7EH 7DH 7CH 7BH 7AH 79HLED6

10、 LED2 LED1存放要显示的数据和字符的段码存放要显示的数据和字符的段码程序清单:程序清单:DIR: MOV R0,#79H;置缓冲器指针初值置缓冲器指针初值 MOV R3,#01H;置扫描位初值置扫描位初值 MOV A, R3LD0: MOV DPTR ,#7F01H;A口地址口地址 MOVX DPTR,A INC DPTR; B口地址口地址 MOV A,R0;取显示数据;取显示数据 ADD A,0DH;加偏移量;加偏移量 MOVC A,A+PC;查表取段码查表取段码DIR1:MOVX DPTR,A;段数据送段数据送B口口 ACALL DL1;延时;延时ms INC R0 MOV A,R

11、3 JB A.5,LD1 RL A MOV R3,A SJMP LD0LD1: RETDSEG: DB 3FH,06H,5BH,.DSEG1:DB 7DH,07H,7FH,.DSEG2:DB 39H,5EH,79H,.DSEG3:DB 31H,6EH,1CH,.DSEG4:DB 18H,00H,00H,.DL1: MOV R7,#02HDL: MOV R6,#0FFHDL6: DJNZ R6,DL6 DJNZ R7,DL RET图图-16 动态显示子程序流程图动态显示子程序流程图返回本节P23199.1.2 LCD显示器接口显示器接口1LCD的基本结构及工作原理的基本结构及工作原理图图9-17

12、 液晶显示器基本结构液晶显示器基本结构特点是体积小、重量轻、功耗极低、抗干扰能力强。特点是体积小、重量轻、功耗极低、抗干扰能力强。2 2LCDLCD的驱动方式的驱动方式 LCDLCD七段显示器除了七段显示器除了agag七个笔划之外还有一个公共七个笔划之外还有一个公共极极COMCOM。可。可采用采用静态驱动方式(加直流信号)和动态驱动静态驱动方式(加直流信号)和动态驱动方式(加交流信号)。方式(加交流信号)。 静态驱动回路及波形如图静态驱动回路及波形如图9-18所示,图中所示,图中LCD表示表示某个液晶显示段。某个液晶显示段。 当显示字段增多时,为减少引出线和驱动回路数,当显示字段增多时,为减少

13、引出线和驱动回路数,需要采用时分割驱动法。时分割驱动方式通常采用电压需要采用时分割驱动法。时分割驱动方式通常采用电压平均化法,其占空比有平均化法,其占空比有1/2,1/8,1/11,1/16,1/32,1/64等,偏比有等,偏比有1/2,1/3,1/4,1/5,1/7,1/9等。等。(a)驱动回路;()驱动回路;(b)真值表;()真值表;(c)驱动波形)驱动波形图图9-18 静态驱动回路及波形静态驱动回路及波形CA为显示频率信号为显示频率信号B为显示控制信号为显示控制信号 LCD两端相对电压为两端相对电压为0不不显示,两端的方波信号相位相反时,显示。显示,两端的方波信号相位相反时,显示。3LC

14、D接口实例接口实例硬件接口电路:硬件接口电路:图图8-19为六位液晶静态显示电为六位液晶静态显示电路。路。典型显示子程序:典型显示子程序:设显示缓冲区为设显示缓冲区为8031片内片内RAM的的22H27H六个单元依次放置六位分离的六个单元依次放置六位分离的BCD码。码。点阵液晶显示模块能显示的字符多,并且还能点阵液晶显示模块能显示的字符多,并且还能显示汉字。显示汉字。图图9-19 六位六位LED静态显示电路静态显示电路 返回本节八八段段数码数码管显示管显示一、实验一、实验要求要求利利用实验用实验仪提供的仪提供的显示电显示电路路,动动态态显示一行数据显示一行数据.二二、实验目的、实验目的1 了了

15、解解数码管动数码管动态态显示显示的的原原理理。2 了了解解用用总线总线方方式式控制数码管显示控制数码管显示1本本实验实验仪提供了仪提供了6 位位8 段码段码LED 显示电显示电路,学生路,学生只要只要按按地址地址输出输出相相应应数据数据,就就可以可以实实现对现对显示器显示器的的控制控制。显显示器示器共共有有6个个,用动用动态态方方式式显示显示。8 位位段码、段码、6位位位位码码是是由由两两片片74HC374输出输出。位。位码码经经MC1413倒倒相相驱驱动动后后,选择相选择相应应显示显示位。位。2.2.本本实验实验仪仪中中 8 位位段码输出段码输出地址地址为为0X004H,位,位码输出码输出地

16、地址址为为 0X002H。此处此处X 是是由由KEY/LED CS 决决定定,参见参见地地址址译译码码。做。做键盘和键盘和LED实验时实验时,需需将将KEY/LED CS 接接到到相相应的应的地址地址译译码上码上。以。以便便用用相相应的应的地址地址来来访访问问。例如例如,将将KEY/LED CS 接接到到CS0 上上,则则段码段码地址地址为为08004H,位,位码码地址地址为为08002H。OUTBIT equ 08002h ; 位位控控制口制口OUTSEG equ 08004h ; 段控段控制口制口LEDBuf equ 60h ; 显示缓冲区显示缓冲区Num equ 70h ; 显示显示的数

17、据的数据DelayT equ 75h ; Org 0000h ljmp StartLEDMAP: ; 八段管显示代八段管显示代码(码(1-1-F)F)db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: mov r7, #0 ; 延时延时子子程序程序DelayLoop:djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共共6个个八段管八段管 mov r2, #

18、00100000b ; 从左从左边边开始开始显示显示Loop: mov dptr, #OUTBIT mov a, #0 movx dptr, a ; 关所有八段关所有八段管管 mov a, r0 mov dptr, #OUTSEG movx dptr,a mov dptr, #OUTBIT mov a, r2 movx dptr, a ; 显示显示一位一位八八段管段管 mov r6, #01 call Delay mov a, r2 ; 显示显示下一位下一位 rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0 movx

19、 dptr, a ; 关所有八段管关所有八段管 retStart: mov sp, #40h mov Num, #0MLoop: inc Num mov a, Num mov b, a mov r0, #LEDBufFillBuf: mov a, b anl a, #0fh mov dptr, #LEDMap movc a, a+dptr ; 数字转换数字转换成显成显示示码码 mov r0,a ; 显示在显示在码码填填入入显示缓显示缓冲冲 inc r0 inc b cjne r0, #LEDBuf+6, FillBuf mov DelayT,#30DispAgain: call Display

20、LED ; 显示显示 djnz DelayT,DispAgain ljmp MLoop end9.2 键盘接口电路键盘接口电路编码键盘:编码键盘:由硬件自动提供与被按键对应的由硬件自动提供与被按键对应的ASCII码或其它编码。如标准计算机(不是本章码或其它编码。如标准计算机(不是本章讨论的内容)讨论的内容)非编码键盘:非编码键盘:软件方式产生编码。软件方式产生编码。优点:优点:结构简单、成本低廉。结构简单、成本低廉。非编码键盘非编码键盘接口技术的主要内容是如何确定被按接口技术的主要内容是如何确定被按键的行、列位置,即键码(值)识别是接口技术键的行、列位置,即键码(值)识别是接口技术的关键问题。

21、的关键问题。按键识别:常用行扫描法。按键识别:常用行扫描法。键盘工作原理键盘工作原理行列式键盘电路原理如图行列式键盘电路原理如图8-3所示。按键设置在所示。按键设置在行列式交点上,行列线分别连接到按键开关的两行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接端。当行线通过上拉电阻接+5伏时,被钳位在高伏时,被钳位在高电平状态。电平状态。键盘中有无按键按下是由列线送入全扫描字、键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘中哪一个键按行线读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来下可由列线逐列置低电平后,检查行输入状态

22、来判断。判断。 图图9-3 行列式键盘原理电路行列式键盘原理电路输出口输出口输入口输入口0 1 1 11 0 1 11 1 0 1111111011111(a)(b)(c)输入口输入口输入口AAA1111111111010 1 1 1 1 11 11 0 1 1 1 11 11 1 0 1 1 11 1+5V+5V+5V输出口输出口输出口按键识别:按键识别:1、测试有无键按下;、测试有无键按下; 检查输入端,是否有端口为低电平。检查输入端,是否有端口为低电平。2、去抖动、去抖动 软件方法:采用延时躲过抖动,时间一般为软件方法:采用延时躲过抖动,时间一般为1020ms。(也有硬件去抖动电路。(也

23、有硬件去抖动电路P233)3、确定键的物理位置(行、列),计算键码。、确定键的物理位置(行、列),计算键码。4、等待键释放,通过时间延迟实现。、等待键释放,通过时间延迟实现。 如键码编排为:如键码编排为: 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH键码计算公式:键码计算公式: 键码键码= 行首键号行首键号+列号列号 00 04 +(0,1,2,3) 08 0C 单片机的键盘接口处理单片机的键盘接口处理 单片机的键盘接口处理的内容包括以下几个方面:单片机的键盘接口处理的内容包括以下几个方面:1、键扫描、键扫描2

24、2、去抖动、去抖动键按下键稳定前沿抖动后沿抖动3、键码计算、键码计算4、等待键释放、等待键释放 计算键码后,再以延时后进行行扫描的方法等待键计算键码后,再以延时后进行行扫描的方法等待键释放。等待释放是为了保证键的一次闭合仅进行一次处释放。等待释放是为了保证键的一次闭合仅进行一次处理。理。00H19H18H17H16H13H12H11H10H08H09H0AH0BH0EH0FH07H06H03H02H01H1AH1BH1EH1FH。9.2.1非编码键盘的接口非编码键盘的接口 键盘处理程序的关键是如何识别键码。单片键盘处理程序的关键是如何识别键码。单片机对键盘进行控制的方法分为程控扫描法(连续机对

25、键盘进行控制的方法分为程控扫描法(连续扫描)、定时扫描法和中断扫描法。扫描)、定时扫描法和中断扫描法。一、程序控制扫描方式一、程序控制扫描方式+5V8155PA7PA6.PA0PC0PC1PC2PC35.1K4CEIO/MWRRDALEP0WRRDALEP2.7P2.080310 12 34 5 678 9 10 11 12 1314 1516 1718 19 20 21222324 2526 27 28 2930318155扩展扩展I/O口组成的行列式键盘口组成的行列式键盘8155PA口地址口地址7F01HPC口地址口地址7F03H81558155:PAPA口输入列状态信号口输入列状态信号

26、PCPC口输出行扫描信号口输出行扫描信号.判断有无键按下PCPC口输出口输出00H00H PAPA口输入列状态信号,若口输入列状态信号,若PA0PA7PA0PA7FFHFFH,有键按下,有键按下.去抖动 延时510ms后再判断有无键按下,如果有,键处于稳定闭合期.再确认哪个键被按下及其键号8155的PC口依次输出下列扫描字:PC3 PC2 PC1 PC0 1 1 1 0 读入列值,读入列值,若若PA0PA7PA0PA7=FFH=FFH,无键按下,无键按下1 1 0 1 若若PA0PA7PA0PA7FFHFFH,有键按下,有键按下,求出键值求出键值0 1 1 1 求键值时,采用行值、列值两个寄存

27、器。求键值时,采用行值、列值两个寄存器。 每扫描一行后,如无键按下,则行值寄存器加每扫描一行后,如无键按下,则行值寄存器加08H; 如有键按下,则行值寄存器保持原值,并转向求相应如有键按下,则行值寄存器保持原值,并转向求相应的列值。的列值。 首先将列值读数右移(到进位位),每移位一次列值首先将列值读数右移(到进位位),每移位一次列值寄存器加寄存器加1,直到有键按下(低电平)为止。,直到有键按下(低电平)为止。 最后将行值和列值相加,即得到键值。最后将行值和列值相加,即得到键值。 9.2.1 非编码键盘非编码键盘的接口的接口键盘的工作方式:键盘的工作方式: 程控扫描方式、定时扫描方式、中断扫描方

28、式程控扫描方式、定时扫描方式、中断扫描方式三种。三种。一、程控扫描方式一、程控扫描方式P233 键盘扫描显示键盘扫描显示实验实验一、实验一、实验要求要求在在上一上一个个实验实验的的基基础础上上,利利用实验用实验仪提供的仪提供的键盘扫描电键盘扫描电路路和显示电和显示电路路,做做一一个个扫描键盘和数码显示实验扫描键盘和数码显示实验,把把按按键输键输入入的的键码键码在在六位六位数码管上显示出数码管上显示出来来。实验程序实验程序可分可分成三成三个模个模块块。键输入键输入模模块块:扫描键盘、读扫描键盘、读取取一一次次键盘并键盘并将将键键值值存入存入键键值值缓缓冲冲单单元元。显示显示模模块块:将将显示单显

29、示单元元的的内内容容在在显示器上动显示器上动态态显示显示。主主程序程序:调调用键输入用键输入模模块和显示块和显示模模块块。二二、实验目的、实验目的1、掌握掌握键盘和显示器键盘和显示器的接的接口方法和口方法和编编程方法程方法。2、掌握掌握键盘扫描和键盘扫描和LED八段码显示器八段码显示器的工的工作原作原理理。三、实验三、实验电路及电路及连连线线这这里里只是只是键盘键盘草草图图,详细原详细原理理参见下图参见下图本本实验实验仪提供了仪提供了一一个个64的的小小键盘键盘,向向列扫描码列扫描码地址地址(0X002H)逐逐列输出列输出低低电电平,平,然然后后从从行码行码地址地址(0X001H)读读回回。如

30、果有如果有键键按按下下,则则相相应应行行的的值值应为应为低低,如果无如果无键键按按下,下,由由于于上上拉拉的的作作用用,行码行码为高。为高。这这样样就就可以可以通通过过输出输出的的列列码和读码和读取取的的行码行码来判来判断断按按下的下的是什么是什么键键。在在判判断断有有键键按按下下后后,要要有有一定一定的的延延时时,防防止止键盘键盘抖抖动动。地址地址中中的的X 是是由由KEY/LED CS 决决定定,参见参见地址地址译译码码。做。做键盘和键盘和LED实验时实验时,需需将将KEY/LED CS 接接到到相相应的应的地址地址译译码上码上。以以便便用用相相应的应的地址地址来来访访问问。例如例如将将K

31、EY/LED CS信号接信号接CS0 上上,则则列扫描列扫描地址地址为为08002H,行码行码地址地址为为08001H。列扫描码列扫描码还还可以分可以分时用时用作作LED的位的位选选通通信号。信号。2键盘工作方式键盘工作方式(如图(如图8-48-7所示)所示)键盘的工作方式:键盘的工作方式: 编程扫描方式、定时扫描方式、中断扫描方式编程扫描方式、定时扫描方式、中断扫描方式三种。三种。在键盘扫描子程序中完成下述几个功能。在键盘扫描子程序中完成下述几个功能。(1)判断键盘上有无键按下)判断键盘上有无键按下(2)去键的机械抖动影响。)去键的机械抖动影响。 (3)求按下键的键号。)求按下键的键号。 (

32、4)键闭合一次仅进行一次键功能操作。)键闭合一次仅进行一次键功能操作。a.程序控制扫描方式以8155扩展I/O口组成的行列式键盘为例+5V8155PA7PA6.PA0PC0PC1PC2PC35.1K4CEIO/MWRRDALEP0WRRDALEP2.7P2.080310 12 34 5 678 9 10 11 12 1314 1516 1718 19 20 21222324 2526 27 28 2930318155扩展I/O口组成的行列式键盘8155PA口地址7F01HPC口地址7F03H8155:PA口输入列状态信号 PC口输出行扫描信号.判断有无键按下PC口输出00H PA口输入列状态信

33、号,若PA0PA7FFH,有键按下.去抖动 延时510ms后再判断有无键按下,如果有,键处于稳定闭合期.再确认哪个键被按下及其键号8155的PA口依次输出下列扫描字:PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 FEH1 1 1 1 1 1 0 1 FDH0 1 1 1 1 1 1 1 7FH8155的PC口输入行状态,可能为下列之一:PC5 PC4 PC3 PC2 PC1 PC0 1 1 1 0 EH 1 1 0 1 DH 1 0 1 1 BH 0 1 1 1 7H则每个键的键值(列行组合)FE E 、FD E 、 FB E 、 F7 E 、

34、EF E、DE E、BF E、 7F E FE D 、FD D 、 FB D 、 F7 D 、EF D、DE D、BF D、 7F D FE B 、FD B 、 FB B 、 F7 B 、EF B、DE B、BF B、 7F B FE 7 、 FD 7 、 FB 7 、 F7 7、 EF 7、 DE 7、 BF 7、 7F 7 每个键的键号(自己安排)N=行首键号+列号.判断按键是否抬起(以防止重复进行键处理)等待键释放后再进行进一步处理。键扫描程序框图入口有键按下?延时12ms有键按下?NYNY键号入栈保存按键抬起?NY键号送A返回ORG 1000HKEY1:ACALL KS1 ;调用判断有

35、无键按下子程序JNZ LK1 ;有键按下,转去抖动AJMP KEY1 ;无键按下,返回LK1:ACALL TM12S ;延时12msACALL KS1 ;再查有无键按下JNZ LK2 ;确实有键按下,逐行扫描,确定具体键AJMP KEY1 ;无键按下,返回LK2:MOV R2,#0FEH ;首列扫描字送R2 MOV R4,#00H ;首列号R4LK4:MOV DPTR,#7F01H ;首列扫描字送8155的PA口MOV A,R2 ;第一列扫描MOVX DPTR,A ;使第i 列为0(R2中Di位为0)INC DPTRINC DPTR ;指向8155的PC口MOVX A,DPTR ;读入行状态J

36、B ACC.0, LONE ;0行无键按下,转查1行LONE:JB ACC.1, LTWO ;1行无键按下,转查2行MOV A,#00H ;0行有键按下,行首键号#00H送AAJMP LKP ;求键号LTWO:JB ACC.2, LTHR ;2行无键按下,转查3行MOV A,#08H ;1行有键按下,行首键号#08H送AAJMP LKP ;求键号LTHR:JB ACC.3, NEXT ;3行无键按下,转查下一列MOV A,#10H ;2行有键按下,行首键号#10H送AAJMP LKP ;求键号MOV A,#18H ;3行有键按下,行首键号#18H送ALKP: ADD A,R4 ;求键号=行首键

37、号+列号PUSH ACC ;键号入栈LK3:ACALL KS1 ;等待键释放JNZ LK3 ;未释放,继续等待POP ACC ;已释放,键号送ARETNEXT:INC R4 ;指向下一列,列号加1MOV A, R2 ;判断8列扫描完没有JNB ACC.7,KND ;8列扫描完,返回RL A ;没扫描完,置下一列扫描字MOV R2, A ;扫描字送AAJMP LK4 ;继续下列扫描KND:AJMP KEY1 ;8列扫描完,返回KS1:MOV DPTR, #7F01H ;查有无键按下子程序MOV A,#00HMOVX DPTR,A ;8155 PA口输出全扫描字#00HINC DPTRINC DP

38、TR ;指向8155的PC口MOVX A,DPTR ;读入行状态,若有键按下,则A0FFHCPL A ;改成正逻辑,若有键按下,则A00HANL A ,#0FH ;屏蔽高四位RET ;子程序返回,当有键按下时,AA00HT12sm:MOV R7, #18H ;12sm延时子程序TM:MOV R6,#0FFH TM6:DJNZ R6, TM6DJNZ R7,TMRET;td=1+(1+255*2+2)*24+2*MCd.键操作及功能处理求出键号后要进行键处理:先判断是何种键,然后:对数字键-送显示缓冲区显示;对功能键-执行相应的功能键处理程序。设图5.36中,015号键为数字键,即键号键号10H

39、10H的是数字键的是数字键;1631号键为功能键,即键号键号10H10H的是功能键的是功能键,其功能键处理程序入口地址分别为:AAA、BBB、CCC、PPP。则转入功能键处理程序清单如下:ORG 8000HKEYADR:MOV A ,BUFF ;键号送ACLR CSUBB A,#10H ;Y与10H比较JC DIGPRO ;62201050ns0.5NO CARE时间不定(不同命令,数据而异)输入插头扁平电缆从打印机背面视图GND GNDGND GNDGNDGND GNDGND ACKACKERRDBDBDBDBDBDBDBSTBBUSYDBDBSTB01234770NEXT56DATA s

40、s3020 s图9-24 TPP-40A/16A插脚安排(从打印机背视)3接口信号时序接口信号时序BUSYDB246810121416182013579111315171921192020ns50ns62201050ns0.5NO CARE时间不定(不同命令,数据而异)输入插头扁平电缆从打印机背面视图GND GNDGND GND GNDGND GNDGND ACKACKERRDBDBDBDBDBDBDBSTBBUSYDBDBSTB01234770NEXT56DATA s s3020 s图9-25 TPP-40A/16A接口信号时序4主计算机端推荐接口电路主计算机端推荐接口电路 DDDDDDDD

41、CLKD CLR74LS27374LS2441357911131517192122328STBDBPAPER OUT/GNDACKERR+5V1000F2KWRADDRDCABRCCLR计算机DATABUSDBDBDBDBDBDBDBGNDBUSY+5V74LS123012345670123456774LS32图8-26 TPP-40A/16A推荐接口电路图返回本节9.3.2 字符代码及打印命令字符代码及打印命令1字符代码字符代码字符代码串实例如下:字符代码串实例如下:l l 打印字符串打印字符串“3265.37”输送代码串为:输送代码串为:24,33,32,36,35,2E,33,37,0D

42、。l l 打印打印“This is Micro-Printer”输送代码串为:输送代码串为:54,68,69,73,20,69,73,20,4D,69,63,72,6F,2D,70,72,69,6E,74,65,72,2E,0D。l l打印打印“32.8cm2”输送代码为:输送代码为:33,32,2E,38,63,6D,9D,0D2打印命令打印命令命令代码命令功能01H打印字符、图等,增宽(1,2,3,4)02H打印字符、图等,增高(1,2,3,4)03H打印字符、图等,宽和高同时增加(1,2,3,4)04H字符行间距更换/定义05H用户自定义字符点阵06H驻留代码字符点阵式样更换07H水平(

43、制表)跳区08H垂直(制表)跳区09H恢复ASCII代码和清输入缓冲区命令0AH一个空位后回车换行 0BH0CH无效0DH回车换行 0EH重复打印同一字符命令0FH打印位点阵图命令表8-3 TPP-40A打印命令代码及功能3命令非法时的出错提示命令非法时的出错提示ERROR: 0ERROR: 1ERROR: 2ERROR: 3ERROR: 4图8-27 出错代码信息打印格式返回本节9.3.3 TPP-40A/16A与与MCS-51单片机接口单片机接口TPP-40A/16A没有读写信号线,只有一对握手没有读写信号线,只有一对握手线、线、BUSY,接口如图,接口如图8-28所示。所示。图图9-29

44、是通过单片机应用系统中的扩展是通过单片机应用系统中的扩展I/O口连口连接的打印机接口电路。接的打印机接口电路。图图9-28、图、图9-29中打印机的口地址由地址线中打印机的口地址由地址线P2口线决定,使用时,口地址设为口线决定,使用时,口地址设为7FFFH。WRP2.7RDP0.7P0.0GNDSTBBUSYDB7DB0GNDTPP-40A/16A16281732333435363738391191715131197538031图9-28 TPP-40A/16A与8031数据总线接口电路图图9-29 TPP-40A/16A与8031扩展I/O口连接的接口电路图返回本节9.3.4 打印程序实例打

45、印程序实例下面以图下面以图8-29作为打印机接口,介绍一种使用作为打印机接口,介绍一种使用TPP-16A打印机打印打印机打印1616点阵汉字点阵汉字“作业作业”的程序。程序清的程序。程序清单如下:单如下:HZDY:MOVDPTR,#TAB2 ;置字型表首址;置字型表首址 MOVR6,#02H DY1: MOVB,#20H LCALLSUB2;调用打印机控制子程序;调用打印机控制子程序 DJNZR6,DY1 RETSUB1:PUSHDPH;DPTR入栈入栈 MOVDPTR,#TAB1 ;置打印机控制字表首址;置打印机控制字表首址 MOVR5,#05H;送打印控制字串到打印机;送打印控制字串到打印

46、机SB11:LCALL DAY2 LCALL DAY1 DJNZR5,SB11 MOVA,B LCALL DAY1 MOVA,#00H LCALL DAY1 POPDPL;DPTR出栈出栈 POPDPH RETSUB2: MOVR5,B;送由;送由B设置个数的汉字字型码到打印机设置个数的汉字字型码到打印机SB21: LCALL DAY2 LCALL DAY1 DJNZR5,SB21 MOVA,#0DH;回车换行;回车换行 LCALL DAY1 RETDAY1: PUSHDPH PUSHDPL MOVDPTR,#7F01H;将字型码送;将字型码送8155 PA口口 MOVXDPTR,A MOVD

47、PTR,#7F03H;用;用8155 PC口模拟打印机信号口模拟打印机信号 MOVA,#00H MOVXDPTR,A MOVA,#01H MOVXDPTR,A JBP3.3,$ ;打印机忙等待;打印机忙等待 POPDPL POPDPH RETDAY2: CLRA;取字型码子程序;取字型码子程序 MOVXA,A+DPTR INCDPTR RET TAB1:DB1BH,31H,00H,1BH,4BH;打印机控制字符串;打印机控制字符串TAB2:DB00H,00H,00H,0FFH,0FEH,00H,00H;汉字;汉字“作作”的下半部字形码的下半部字形码 DB00H,0FFH,0FFH,20H,20

48、H,20H,60H,20H DB00H,02H,02H,0E2H ,0C2H,0FEH,0FEH,02H ;汉字汉字“业业”下半部字形码下半部字形码 DB02H,0FEH,0FEH,62H,0C2H,02H,06H,02H DB00H,01H,06H,1FH,0F7H,60H,02H,0CH;汉字汉字“作作”的上半部字形码的上半部字形码 DB38H,0FFH,5FH,12H,12H,16H,32H,10H DB00H,08H,07H,03H,00H,0FFH,7FH,00H;汉字汉字“业业” 的上半部字形码的上半部字形码 DB00H,0FFH,7FH,00H,03H,1FH,0CH,00H返回本节THANK YOU VERY MUCH !本章到此结束,本章到此结束,谢谢!谢谢!结束放映返回本章首页

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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