好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

95页
  • 卖家[上传人]:博****1
  • 文档编号:587903267
  • 上传时间:2024-09-06
  • 文档格式:PPT
  • 文档大小:1.41MB
  • / 95 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第9章章 显示器、键盘、打印机显示器、键盘、打印机接口接口9.1  显示器接口显示器接口电路电路9.2  键盘接口键盘接口电路电路9.3  打印机接口打印机接口电路电路 9.1.1  LED显示器显示器1..LED显示器结构与原理显示器结构与原理LED显示器是由发光二极管显示字段的显示器显示器是由发光二极管显示字段的显示器件在微机应用系统中通常使用的是七段在微机应用系统中通常使用的是七段LED这这种显示块有共阴极与共阳极两种,如图种显示块有共阴极与共阳极两种,如图9-1所示七段显示器与微机接口非常容易如表七段显示器与微机接口非常容易如表9-1所示  图图9-1 9-1 七段七段LEDLED显示器显示器 使用使用LED显示器时,要注意区分这两种不同的接法为了显显示器时,要注意区分这两种不同的接法为了显示数字或字符,必须对数字或字符进行编码七段数码管加上一示数字或字符,必须对数字或字符进行编码七段数码管加上一个小数点,共计个小数点,共计8段因此为段因此为LED显示器提供的编码正好是一个字显示器提供的编码正好是一个字节用LED显示器显示显示器显示16进制数的编码已列在表进制数的编码已列在表9-1所示。

      所示  为了实现为了实现LED显示器的动态扫描,除了要给显示器提供显示器的动态扫描,除了要给显示器提供段码(字形编码)的输入之外,还要对显示器加位的控制段码(字形编码)的输入之外,还要对显示器加位的控制(控制(控制LED显示器亮灭),这就是通常所说的显示器亮灭),这就是通常所说的位控和段控位控和段控 表表9-1  LED显示器显示器16进制数编码进制数编码 P229 表9-1 七段LED的段选码 2..LED显示器与显示方式显示器与显示方式在在微微机机应应用用系系统统中中使使用用LED显显示示块块构构成成N位位LED显示器图显示器图9-11是是N位显示器的构成原理位显示器的构成原理LED显示器有两种显示方式:显示器有两种显示方式:((1))LED静态显示方式(如图静态显示方式(如图9-12所示)所示) ((2))LED动态显示方式(如图动态显示方式(如图9-13所示)所示)  图图9-11  N位位LED显示器显示器 图图9-12  四位静态四位静态LED显示器电路显示器电路         静静态态显显示示即即由由单单片片机机一一次次输输出出显显示示后后,,就就能能保保持持,,直到下次送新的显示模式为止。

      直到下次送新的显示模式为止优点:优点:显示可靠,占用机时少显示可靠,占用机时少缺点:缺点:使用元件多,线路比较复杂使用元件多,线路比较复杂        适适用用于于显显示示位位数数少少的的情情况况每每个个显显示示器器需需8位位输输出出口口控制        动动态态显显示示即即单单片片机机定定时时对对显显示示器器扫扫描描此此时时,,显显示示器件分时工作,每次只能有一个器件显示仿真器)器件分时工作,每次只能有一个器件显示仿真器)优点:优点:硬件少,价格低硬件少,价格低缺缺点点::占占用用机机时时多多,,只只要要单单片片机机不不执执行行显显示示程程序序,,显显示示就立即停止就立即停止   3..LED显示器接口显示器接口从从LED显显示示器器的的原原理理可可知知,,为为了了显显示示字字母母与与数数字字,,必必须须最最终终转转换换成成相相应应的的段段选选码码这这种种转转换换可可以通过以通过硬件译码器或软件进行译码硬件译码器或软件进行译码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口作为位控口,经反相驱动器接显示口作为位控口,经反相驱动器接显示器的公共阴极;器的公共阴极;8155的的B口作为段码控制口,经同相驱动器接口作为段码控制口,经同相驱动器接显示器的各个阳极。

      显示器的各个阳极软件译码程序设计思想:软件译码程序设计思想:1 1、、将段码表(显示数据)存放在将段码表(显示数据)存放在RAM的的    ((79H~7EH))中2、根据要显示的数字或字符去查相应的段码根据要显示的数字或字符去查相应的段码3、然后将段码输出到七段、然后将段码输出到七段LED的驱动器上的驱动器上4、采用扫描的方式控制、采用扫描的方式控制LED的点亮的点亮顺序 显示数据  显示数据  79H~7EH8155的口地址:的口地址:7F00H~7F05H偏移量=偏移量=ROM表首地址-当前表首地址-当前PC地址-1地址-1MOVC  A,@A+PC是以是以PC为基址寄存器的单字节指令为基址寄存器的单字节指令执行过程是:执行过程是:CPU读取本指令后,读取本指令后, PC的值的值自动自动加1,累加器加1,累加器A的内容作为无符号数与新的的内容作为无符号数与新的PC的的内容相加形成一个内容相加形成一个16位地址,再将该地址指出的位地址,再将该地址指出的程序存储器单元的内容送累加器程序存储器单元的内容送累加器A指令执行后指令执行后PC指向下一条指令继续执行指向下一条指令继续执行 显示缓冲区在显示缓冲区在RAM中中7EH 7DH 7CH 7BH 7AH 79HLED6 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  ;  ;延时1延时1ms           INC   R0           MOV   A,R3          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 图图99-16  动动态态显显示示子子程程序序流流程程图图返回本节P2319 9.1.2  LCD显示器接口显示器接口1..LCD的基本结构及工作原理的基本结构及工作原理图图9-17  液晶显示器基本结构液晶显示器基本结构特点是体积小、重量轻、功耗极低、抗干扰能力强。

      特点是体积小、重量轻、功耗极低、抗干扰能力强 2 2..LCDLCD的驱动方式的驱动方式 LCDLCD七段显示器除了七段显示器除了a~ga~g七个笔划之外还有一个公共七个笔划之外还有一个公共极极COMCOM可可采用采用静态驱动方式(加直流信号)和动态驱动静态驱动方式(加直流信号)和动态驱动方式(加交流信号)方式(加交流信号)        静态驱动回路及波形如图静态驱动回路及波形如图9-18所示,图中所示,图中LCD表示表示某个液晶显示段某个液晶显示段        当当显显示示字字段段增增多多时时,,为为减减少少引引出出线线和和驱驱动动回回路路数数,,需需要要采采用用时时分分割割驱驱动动法法时时分分割割驱驱动动方方式式通通常常采采用用电电压压平平均均化化法法,,其其占占空空比比有有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不显不显示,两端的方波信号相位相反时,显示。

      示,两端的方波信号相位相反时,显示 3..LCD接口实例接口实例硬硬件件接接口口电电路路::图图8-19为为六六位位液液晶晶静静态态显显示示电电路典典型型显显示示子子程程序序::设设显显示示缓缓冲冲区区为为8031片片内内RAM的的22H~~27H六六个个单单元元依依次次放放置置六六位位分分离离的的BCD码点点阵阵液液晶晶显显示示模模块块能能显显示示的的字字符符多多,,并并且且还还能能显示汉字显示汉字 图图9-19  六位六位LED静态显示电路静态显示电路 返回本节 八八段段数码数码管显示管显示一、实验一、实验要求要求利利用实验用实验仪提供的仪提供的显示电显示电路路,动动态态显示一行数据显示一行数据.二二、实验目的、实验目的1.. 了了解解数码管动数码管动态态显示显示的的原原理理2.. 了了解解用用总线总线方方式式控制数码管显示控制数码管显示 1..本本实验实验仪提供了仪提供了6 位位8 段码段码LED 显示电显示电路,学生路,学生只要只要按按地址地址输出输出相相应应数据数据,,就就可以可以实实现对现对显示器显示器的的控制控制显显示器示器共共有有6个个,,用动用动态态方方式式显示显示。

      8 位位段码、段码、6位位位位码码是是由两由两片片74HC374输出输出位码码经经MC1413倒倒相相驱驱动动后后,,选选择相择相应应显示显示位2.2.本本实验实验仪仪中中 8 位位段码输出段码输出地址地址为为0X004H,,位位码输出码输出地址地址为为 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 ; 显示显示的数据的数据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, #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 @dptr, a ; 关所有八段管关所有八段管 ret Start: 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 DisplayLED ; 显示显示 djnz DelayT,DispAgain ljmp MLoop end 9.2  键盘接口电路键盘接口电路编编码码键键盘盘::由由硬硬件件自自动动提提供供与与被被按按键键对对应应的的ASCII码码或或其其它它编编码码。

      如如标标准准计计算算机机((不不是是本本章章讨论的内容)讨论的内容)非编码键盘:非编码键盘:软件方式产生编码软件方式产生编码优点:优点:结构简单、成本低廉结构简单、成本低廉非非编编码码键键盘盘接接口口技技术术的的主主要要内内容容是是如如何何确确定定被被按按键键的的行行、、列列位位置置,,即即键键码码((值值))识识别别是是接接口口技技术术的关键问题的关键问题按键识别:常用行扫描法按键识别:常用行扫描法  键盘工作原理键盘工作原理行行列列式式键键盘盘电电路路原原理理如如图图8-3所所示示按按键键设设置置在在行行列列式式交交点点上上,,行行列列线线分分别别连连接接到到按按键键开开关关的的两两端端当当行行线线通通过过上上拉拉电电阻阻接接+5伏伏时时,,被被钳钳位位在在高高电平状态电平状态键键盘盘中中有有无无按按键键按按下下是是由由列列线线送送入入全全扫扫描描字字、、行行线线读读入入行行线线状状态态来来判判断断的的键键盘盘中中哪哪一一个个键键按按下下可可由由列列线线逐逐列列置置低低电电平平后后,,检检查查行行输输入入状状态态来来判断  图图9-3  行列式键盘原理电路行列式键盘原理电路输出口输出口输入口输入口0 1 1 11 0 1 121 1 0 1111111011111  按键识别:按键识别:1、测试有无键按下;、测试有无键按下;     检查输入端,是否有端口为低电平。

      检查输入端,是否有端口为低电平2、去抖动、去抖动     软软件件方方法法::采采用用延延时时躲躲过过抖抖动动,,时时间间一一般般为为10~20ms也有硬件去抖动电路也有硬件去抖动电路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 2、去抖动、去抖动 3、键码计算、键码计算4、等待键释放、等待键释放        计算键码后,再以延时后进行行扫描的方法等待键计算键码后,再以延时后进行行扫描的方法等待键释放。

      等待释放是为了保证键的一次闭合仅进行一次处释放等待释放是为了保证键的一次闭合仅进行一次处理 9.2.1非编码键盘的接口非编码键盘的接口        键盘处理程序的关键是如何识别键码单片键盘处理程序的关键是如何识别键码单片机对键盘进行控制的方法分为程控扫描法(连续机对键盘进行控制的方法分为程控扫描法(连续扫描)、定时扫描法和中断扫描法扫描)、定时扫描法和中断扫描法 一、程序控制扫描方式一、程序控制扫描方式+5V8155PA7PA6.....PA0PC0PC1PC2PC35.1KΩ╳4CEIO/MWRRDALEP0WRRDALEP2.7P2.080310 12 34 5 678 9 10 11 12 1314 1516 17 18 19 20 2122 2324 25 26 27 28 2930 318155扩展扩展I/O口组成的行列式键盘口组成的行列式键盘8155PA口地址口地址7F01HPC口地址口地址7F03H 81558155::PAPA口输入列状态信号口输入列状态信号 PCPC口输出行扫描信号口输出行扫描信号ⅰ.判断有无键按下P PC C口输出口输出0000H H P PA A口输入列状态信号,若口输入列状态信号,若PA0~PA7PA0~PA7≠FFH≠FFH,,有键按下有键按下ⅱ.去抖动 延时5~10ms后再判断有无键按下,如果有,键处于稳定闭合期ⅲ.再确认哪个键被按下及其键号8155的PC口依次输出下列扫描字:PC3 PC2 PC1 PC0 1 1 1 0 读读入列值,入列值,若若PA0~PA7PA0~PA7=FFH=FFH,,无键按下无键按下1 1 0 1 若若PA0~PA7PA0~PA7≠FFH≠FFH,,有键按下,有键按下,求出键值求出键值……0 1 1 1 求键值求键值时,采用行值、列值两个寄存器。

      时,采用行值、列值两个寄存器    每扫描一行后,如无键按下,则行值寄存器加每扫描一行后,如无键按下,则行值寄存器加08H;;    如有键按下,则行值寄存器保持原值,并转向求相应如有键按下,则行值寄存器保持原值,并转向求相应的列值     首先将列值读数右移(到进位位),每移位一次列值首先将列值读数右移(到进位位),每移位一次列值寄存器加寄存器加1,直到有键按下(低电平)为止直到有键按下(低电平)为止      最后将行值和列值相加,即得到键值最后将行值和列值相加,即得到键值     9.2.1 非编码键盘非编码键盘的接口的接口键盘的工作方式:键盘的工作方式:   程程控控扫扫描描方方式式、、定定时时扫扫描描方方式式、、中中断断扫扫描描方方式式三种一、程控扫描方式一、程控扫描方式P233 键盘扫描显示键盘扫描显示实验实验一、实验一、实验要求要求在在上一上一个个实验实验的的基基础础上上,利利用实验用实验仪提供的仪提供的键盘扫描电键盘扫描电路路和显示电和显示电路路,做做一一个个扫描键盘和数码显示实验扫描键盘和数码显示实验,,把把按按键输键输入入的的键码键码在在六位六位数码管上显示出数码管上显示出来来。

      实验程序实验程序可分可分成三成三个模个模块块①①键输入键输入模模块块::扫描键盘、读扫描键盘、读取取一一次次键盘并键盘并将将键键值值存入存入键键值值缓缓冲冲单单元元②②显示显示模模块块::将将显示单显示单元元的的内内容容在在显示器上动显示器上动态态显示显示③③主主程序程序::调调用键输入用键输入模模块和显示块和显示模模块块 二二、实验目的、实验目的1、、掌握掌握键盘和显示器键盘和显示器的接的接口方法和口方法和编编程方法程方法2、、掌握掌握键盘扫描和键盘扫描和LED八段码显示器八段码显示器的工的工作原作原理理三、实验三、实验电路及电路及连连线线这这里里只是只是键盘键盘草草图图,,详细原详细原理理参见下图参见下图 本本实验实验仪提供了仪提供了一一个个6××4的的小小键盘键盘,,向向列扫描码列扫描码地址地址(0X002H)逐逐列输出列输出低低电电平,平,然然后后从从行码行码地址地址(0X001H)读读回回如果有如果有键键按按下下,则则相相应应行行的的值值应为应为低低,如果无如果无键键按按下,下,由由于于上上拉拉的的作作用用,,行码行码为高这这样样就就可以可以通通过过输出输出的的列列码和读码和读取取的的行码行码来判来判断断按按下的下的是什么是什么键键。

      在在判判断断有有键键按按下下后后,,要要有有一定一定的的延延时时,,防防止止键盘键盘抖抖动动地址地址中中的的X 是是由由KEY/LED CS 决决定定,,参见参见地址地址译译码码做键盘和键盘和LED实实验时验时,,需需将将KEY/LED CS 接接到到相相应的应的地址地址译译码上码上以便便用用相相应的应的地址地址来来访访问问例如例如将将KEY/LED CS信号接信号接CS0 上上,,则则列扫描列扫描地址地址为为08002H,,行码行码地址地址为为08001H列列扫描码扫描码还还可以分可以分时用时用作作LED的位的位选选通通信号 2.键盘工作方式.键盘工作方式(如图(如图8-4~8-7所示)所示)键盘的工作方式:键盘的工作方式:   编编程程扫扫描描方方式式、、定定时时扫扫描描方方式式、、中中断断扫扫描描方方式式三种在键盘扫描子程序中完成下述几个功能在键盘扫描子程序中完成下述几个功能1)判断键盘上有无键按下)判断键盘上有无键按下((2)去键的机械抖动影响去键的机械抖动影响 ((3)求按下键的键号求按下键的键号 ((4)键闭合一次仅进行一次键功能操作键闭合一次仅进行一次键功能操作 a.程序控制扫描方式—以8155扩展I/O口组成的行列式键盘为例+5V8155PA7PA6.....PA0PC0PC1PC2PC35.1KΩ╳4CEIO/MWRRDALEP0WRRDALEP2.7P2.080310 12 34 5 678 9 10 11 12 1314 1516 17 18 19 20 2122 2324 25 26 27 28 2930 318155扩展I/O口组成的行列式键盘8155PA口地址7F01HPC口地址7F03H 8155:PA口输入列状态信号 PC口输出行扫描信号ⅰ.判断有无键按下PC口输出00H PA口输入列状态信号,若PA0~PA7≠FFH,有键按下ⅱ.去抖动 延时5~10ms后再判断有无键按下,如果有,键处于稳定闭合期ⅲ.再确认哪个键被按下及其键号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 FDH……0 1 1 1 1 1 1 1 7FH 8155的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 、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 ;调用判断有无键按下子程序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 ;读入行状态JB 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 ;求键号=行首键号+列号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 DPTR ;指向8155的PC口MOVX A,@DPTR ;读入行状态,若有键按下,则A≠0FFHCPL A ;改成正逻辑,若有键按下,则A≠00HANL A ,#0FH ;屏蔽高四位RET ;子程序返回,当有键按下时,AA≠00HT12sm:MOV R7, #18H ;12sm延时子程序TM:MOV R6,#0FFH TM6:DJNZ R6, TM6DJNZ R7,TMRET;td=[1+(1+255*2+2)*24+2]*MC d.键操作及功能处理求出键号后要进行键处理:先判断是何种键,然后:对数字键----送显示缓冲区显示;对功能键----执行相应的功能键处理程序。

      设图5.36中,0~15号键为数字键,即键号键号<10<10H H的是数字键的是数字键;16~31号键为功能键,即键号键号≥≥1010H H的是功能键的是功能键,其功能键处理程序入口地址分别为:AAA、BBB、CCC、……PPP则转入功能键处理程序清单如下:ORG 8000HKEYADR:MOV A ,BUFF ;键号送ACLR CSUBB A,#10H ;Y与10H比较JC DIGPRO ;<10H,数字键,转 AJMP @A+DPTRRL A ;使键值为0、2、4、6、…偶数KEYTBL:MOV DPTR,#JMPTBLJMPTBL:AJMP AAA ;2 字节指令散转到16个功能键处理 AJMP BBB ; 程序入口AJMP CCCAJMP DDDAJMP EEEAJMP FFFAJMP GGGAJMP HHHAJMP IIIAJMP JJJAJMP KKKAJMP LLLAJMP MMMAJMP NNNAJMP OOOAJMP PPP 图图9-4  8155扩展扩展I/O口组成的行列式键盘口组成的行列式键盘 图图9-5  键键扫扫描描子子程程序序框框图图 图9-6 定时扫描方式程序框图 图9-7 中断方式键盘接口 3.键盘扫描方式.键盘扫描方式 (a)线反转法第一步 (b)线反转法第二步图9-8 线反转法原理 4.行列式键盘接口(.行列式键盘接口(如图如图8-9所示)所示) 通用并行扩展通用并行扩展I/O口键盘接口口键盘接口8031串行串行I/O口扩展的键盘接口口扩展的键盘接口 图9-9 8031串行I/O口扩展的行列式键盘接口 返回本节 图9-19 六位LED静态显示电路 返回本节 9.2.3  典型键盘典型键盘/显示器接口实例显示器接口实例1..8155扩展扩展I/O口的键盘口的键盘/显示器接口显示器接口接接口口电电路路::LED显显示示器器采采用用共共阴阴极极如如图图8-20所所示示 ;;LED采采用用动动态态显显示示软软件件译译码码,,键键盘盘采采用用逐逐行行扫扫描描查查询询方方式式;;LED的的驱驱动动采采用用北北京京集集成成电电路路设设计中心生产的集电极开路输出八位驱动器计中心生产的集电极开路输出八位驱动器8718。

      软软件件设设计计::由由于于键键盘盘与与显显示示做做成成一一个个接接口口电电路路,,因因此此在在软软件件设设计计中中合合并并考考虑虑键键盘盘查查询询与与动动态态显显示示,,键盘消颤的延时子程序用显示程序代替键盘消颤的延时子程序用显示程序代替 图9-20 8155扩展I/O口的键盘/显示器接口电路 2.串行口扩展的键盘.串行口扩展的键盘/显示器接口显示器接口接接口口电电路路::图图中中使使用用一一片片74LS164和和2根根行行线线扩扩展展16键键盘电路原理如图键键盘电路原理如图9-21所示软软件件设设计计::在在图图9-21中中,,设设显显示示器器位位数数存存于于R7,,显显示示缓缓冲冲区区首首址址存存于于R0,,显显示示字字符符以以BCD码码形形式式存存放放,,8031 RAM中中20H为为键键码码缓缓冲冲区区,,无无键键输入时,输入时,20H中为中为80H 图9-21 串行口扩展的键盘/显示器接口 3..8279键盘键盘/显示器接口显示器接口8279是专用键盘是专用键盘/显示器控制芯片,能对显示器显示器控制芯片,能对显示器自动扫描,能识别键盘上按下键的键号;可充分自动扫描,能识别键盘上按下键的键号;可充分提高提高CPU的工作效率。

      的工作效率8279与与MCS-51接口方便,由它构成的标准键盘接口方便,由它构成的标准键盘/显示器接口在微机应用系统中使用越来越广泛显示器接口在微机应用系统中使用越来越广泛  4..8279接口和编程的一般方法接口和编程的一般方法接口电路的一般连接方法接口电路的一般连接方法    8279的的键键盘盘/显显示示器器电电路路与与8031接接口口的的一一般般连连接方法如图接方法如图8-22所示    ALE可可直直接接与与8279CLK相相连连,,由由8279设设置置适适当当的分频数,分频至的分频数,分频至100KHz 图9-22 8279的键盘/显示器电路及与8031接口   8279键盘、显示接口应用特性:键盘、显示接口应用特性:((1))8279操作命令(表操作命令(表8-2所示)所示) ((2))8279的的FIFO状态查询状态查询((3))8279的数据输入的数据输入/输出输出((4)显示器的填入)显示器的填入/移位方式移位方式((5))8279的内部译码与外部译码的内部译码与外部译码((6)键盘键值的给定)键盘键值的给定 表9-2 8279命令功能键一览表 (续表) 8031和和8279键盘键盘/显示器接口的编程方法显示器接口的编程方法  对对于于图图8-22所所示示的的一一般般接接口口电电路路,,键键盘盘的的读读出出既既可用中断方式,也可用查询方式。

      可用中断方式,也可用查询方式    设若设若16位位LED显示,显示,16个按键,键盘采用查询个按键,键盘采用查询方式读出方式读出16位显示数据的段选码存放在位显示数据的段选码存放在8031片片内内RAM的的30H~~3FH单元;单元;16个键的键值读出后个键的键值读出后存放在存放在 40H~~4FH中8031晶振晶振为为8MHz  图9-23 8×8键盘的键值与键号返回本节 9.3  打印机接口打印机接口9.3.1  TPμP-40A主要性能、接口要求及时序主要性能、接口要求及时序9.3.2  字符代码及打印命令字符代码及打印命令9.3.3  TPμP-40A/16A与与MCS-51单片机接口单片机接口9.3.4  打印程序实例打印程序实例返回本章首页 9.3.1  TPμP-40A主要性能、接口要求及时序主要性能、接口要求及时序1..TPμP-40A的主要技术性能的主要技术性能((1))采采用用单单片片机机控控制制,,具具有有2KB监监控控程程序序及及标标准的准的Centronic 并行接口并行接口2))具具有有较较丰丰富富的的打打印印命命令令,,命命令令代代码码均均为为单单字节,格式简单。

      字节,格式简单3))可可产产生生全全部部标标准准的的ASCII代代码码字字符符,,以以及及128个非标准字符和图符个非标准字符和图符4)可打印出)可打印出8×240点阵的图样点阵的图样5))字字符符、、图图符符和和点点阵阵图图可可以以在在高高和和宽宽的的方方向向放大为放大为×2、、×3、、×4倍 ((6))每每行行字字符符的的点点行行数数可可用用命命令令更更换换,,即即字字符符行间距空点行在行间距空点行在0~~256间任选7)带有水平和垂直制表命令,便于打印表格带有水平和垂直制表命令,便于打印表格8))具具有有重重复复打打印印同同一一字字符符命命令令,,以以减减少少输输送送代码的数量代码的数量9)带有命令格式的检错功能带有命令格式的检错功能  2.接口要求.接口要求TPμP-40A微微型型打打印印机机与与计计算算机机应应用用系系统统通通过过机机箱箱后后部部的的20芯芯扁扁平平电电缆缆及及插插件件相相连连打打印印机机箱箱后后部接插件引脚信号如图部接插件引脚信号如图8-24所示DB0~~DB7::数据线,单向由计算机输入打印机数据线,单向由计算机输入打印机STROBE):):数据选通信号数据选通信号。

       BUSY::打印机打印机“忙忙”状态信号状态信号 ((ACKNOWLEGE):):打印机的应答信号打印机的应答信号 ((ERROR):):出错信号出错信号  图9-24 TPμP-40A/16A插脚安排(从打印机背视) 3.接口信号时序.接口信号时序图9-25 TPμP-40A/16A接口信号时序 4.主计算机端推荐接口电路.主计算机端推荐接口电路 图8-26 TPμP-40A/16A推荐接口电路图返回本节 9.3.2  字符代码及打印命令字符代码及打印命令1.字符代码.字符代码字符代码串实例如下:字符代码串实例如下:l l 打印字符串打印字符串“$$3265.37”输送代码串为:输送代码串为:24,,33,,32,,36,,35,,2E,,33,,37,,0Dl 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,,0Dl l打印打印“32.8cm2”输送代码为:输送代码为:33,,32,,2E,,38,,63,,6D,,9D,,0D 2.打印命令.打印命令命令代码命令功能01H打印字符、图等,增宽(×1,×2,×3,×4)02H打印字符、图等,增高(×1,×2,×3,×4)03H打印字符、图等,宽和高同时增加(×1,×2,×3,×4)04H字符行间距更换/定义05H用户自定义字符点阵06H驻留代码字符点阵式样更换07H水平(制表)跳区08H垂直(制表)跳区09H恢复ASCII代码和清输入缓冲区命令0AH一个空位后回车换行 0BH~0CH无效0DH回车换行 0EH重复打印同一字符命令0FH打印位点阵图命令表8-3 TPμP-40A打印命令代码及功能 3.命令非法时的出错提示.命令非法时的出错提示图8-27 出错代码信息打印格式返回本节 9.3.3  TPμP-40A/16A与与MCS-51单片机接口单片机接口TPμP-40A/16A没没有有读读写写信信号号线线,,只只有有一一对对握握手手线、线、BUSY,,接口如图接口如图8-28所示。

      所示图图9-29是是通通过过单单片片机机应应用用系系统统中中的的扩扩展展I/O口口连连接的打印机接口电路接的打印机接口电路图图9-28、、图图9-29中中打打印印机机的的口口地地址址由由地地址址线线P2口线决定,使用时,口地址设为口线决定,使用时,口地址设为7FFFH 图9-28 TPμP-40A/16A与8031数据总线接口电路图 图9-29 TPμP-40A/16A与8031扩展I/O口连接的接口电路图返回本节 9.3.4  打印程序实例打印程序实例下下面面以以图图8-29作作为为打打印印机机接接口口,,介介绍绍一一种种使使用用TPμP-16A打打印印机机打打印印16×16点点阵阵汉汉字字“作作业业”的的程程序序程程序序清清单如下:单如下:HZDY::MOVDPTR,,#TAB2 ;;置字型表首址置字型表首址 MOVR6,,#02H DY1:: MOVB,,#20H  LCALLSUB2;;调用打印机控制子程序调用打印机控制子程序 DJNZR6,,DY1 RETSUB1::PUSHDPH;;DPTR入栈入栈 MOVDPTR,,#TAB1 ;;置打印机控制字表首址置打印机控制字表首址   MOVR5,,#05H;;送打印控制字串到打印机送打印控制字串到打印机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口口 MOVX@DPTR,,A MOVDPTR,,#7F03H;;用用8155 PC口模拟打印机信号口模拟打印机信号 MOVA,,#00H MOVX@DPTR,,A MOVA,,#01H  MOVX@DPTR,,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,,20H,,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 !!本章到此结束,本章到此结束,谢谢!谢谢!结束放映返回本章首页 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.