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

电子第10章接口技术.ppt

34页
  • 卖家[上传人]:ni****g
  • 文档编号:584278261
  • 上传时间:2024-08-30
  • 文档格式:PPT
  • 文档大小:645.52KB
  • / 34 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第1010章章 接口技术接口技术 教学目的:了解80C51系列单片机与键盘、显示器、功率器件及打印机等外设连接的技术教学重点: 1.键盘接口的工作原理及应用; 2.LED显示器接口的工作原理及应用 3.打印机的接口及应用教学难点: 1.键盘接口的工作原理 2.LED显示器接口的工作原理 10.1 键盘接口 键盘电路的设计应使CPU不仅能识别是否有键按下,还要能识别是哪一个键按下,而且能把此键所代表的信息翻译成计算机所能接收的形式 在单片机应用系统中多采用非编码键盘,其分为独立式键盘和矩阵式键盘,硬件上此类键盘只提供通、断两种状态,其它工作都靠软件来完成 10.1.1 键盘工作原理1.键输入原理2.键输入接口与软件应解决的问题(l)键开关状态的可靠输入 通常去抖动影响的方法有硬、软件两种通常去抖动影响的方法有硬、软件两种 图10.1键闭合及断开时的电压波动 ((2 2)对按键进行编码以给定键值或直接给出键号)对按键进行编码以给定键值或直接给出键号 l ①监测有无键按下;l ②有键按下后,在无硬件去抖动电路时,应用 软件延时方法除去抖动影响;l ③有可靠的逻辑处理办法;l ④输出确定的键号以满足散转指令要求。

      10.1.2 独立式按键 1 1.独立式按键结构.独立式按键结构 在此电路中,按键输入都设置为低电平有效,上拉电阻保证了按键断开时,I/O口线有确定的高电平 图10.2独立式按键电路 2.独立式按键的软件编制 START: MOV A,#0FFH ;置输入方式 MOV P1,AL1: MOV A,P1 ;输入键状态 CJNE A,#0FFH, L3 ;有键按下转L3 LCALL DELAY ;延时5mS,省略 SJMP L1L3: LCALL DELLAY ;延时5mS LCALL DELLAY ;延时5mS MOV A,P1 ;再读P1口 CJNE A,#0FFH ,L2 ;确实有键按下转L2 SJMP L1 ;误读键,返回L2: JNB ACC.0,TAB0 ;为0转0号键首地址 JNB ACC.1,TAB1 ;为1转1号键首地址 JNB ACC.2,TAB2 ;为2转2号键首地址 JNB ACC.3,TAB3 ;为3转3号键首地址 lJNB ACC.4,TAB4;为4转4号键首地址lJNB ACC.5,TAB5;为5转5号键首地址lJNB ACC.6,TAB6;为6转6号键首地址lJNB ACC.7,TAB7;为7转7号键首地址lSJMP L1 ;再次读入键状态lTAB0: LJMP OPR0;转向0号键功能程序lTAB1: LJMP OPR1l……..l lTAB7: LJMP OPR7l……..l lOPR0:…….. ;0号键功能程序lLJMP START ;0号键程序执行完返回l ……l0PR7: …….. ;7号键功能程序l……. lLJMP START ;7号键程序执行完返回l 10.1.3 10.1.3 行列式键盘行列式键盘1.行列式键盘电路的结构及原理 图10.3 单片机I/O口组成的行列式键盘 l 2.键盘的工作方式 l(l)循环扫描方式l键盘扫描程序一般应具备下述几个功能: l判断键盘上有无键按下;l去除键的抖动影响;l扫描键盘,得到按下键的键号;l判别闭合的键是否释放。

      l图8-3中32个键的键值从左上角的数字“0”键对应为如下分布 : 00H,01H, 02H, 03H, 04H, 05H, 06H, 07H 08H,09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH 10H,11H, 12H, 13H, 14H, 15H, 16H, 17H 18H,19H, 1AH, 1BH, 1CH, 1DH, 1EH, 1FH l行线P2.0~P2.3处于输入状态,列线P1.0~P1.7为输出状态按键设置在行、列线交点上,当某个键闭合时,则对应的行线和列线短路,行线输入即为列线输出获取这32个键值时,P1口和P2口输出与输入的相应值为如下分布 :l 0 1 2 3 4 5 6 7 0 FE×E FD×E FB×E F7×E EF×E DF×E BF×E 7F×E8 FE×D FD×D FB×D F7×D EF×D DF×D BF×D 7F×D 10 FE×B FD×B FB×B F7×B EF×B DF×B BF×B 7F×B 18 FE×7 FD×7 FB×7 F7×7 EF×7 DF×7 BF×7 7F×7 由以上分布可以总结出: 闭合键的键号值=行首键号+列号 例如,当P1口的输出为F7H(11110111B),即其第3列有输出,读出P2口低4位的值为0DH(1101B),说明是第1行与第3列相交的键闭合,则键号=8+3=11。

      l读键盘程序如下:lKEY: LCALL KS;调用KS判别有键按下吗?lJNZ K1;有键按下转移l LCALL DELAY ;无键按下,调延时子程序 l LJMP KEYlK1:LCALL DELAY ;加长延时时间,消除键抖动l LCALL DELAYl LCALL KS ;调用KS子程序再次判别有无键闭合lJNZ K2 ;键按下,转逐列扫描lLJMP KEY ;误读键,返回lK2: MOV R2,#0FEH ;首列扫描字送R2lMOV R4,#00H ;首列号送R4lK3: MOV A,R2 lMOV P1,A ;列扫描字送P1口lMOV A,P2 ;读取行扫描值lJB ACC.0,L1;第0行无键按下,转查第1行lMOV A,#00H;第0行有键按下,该行的行首键号#0H送AlLJMP LK ;转求键号 L1: JB ACC.1,L2 ;第1行无键按下,转查第2行MOV A,#08H ;第1行有键按下,该行行首键号#08H送A LJMP LK ;转求键号L2: JB ACC.2,L3 ;第2行无键按下,转查第3行MOV A,#l0H ;第2行有键按下,该行的行首键号 # l0H送A LJMP LK ;转求键号L3: JB ACC.3,NEXT ;第3行无键按下,改查下一列 MOV A,#18H ;第3行有键按下,该行的行首键号 ;#l8H送ALK: ADD A,R4 ;形成键码送入A PUSH ACC ;键码入栈保护K4: LCALL DELAY LCALL KS ;等待键释放 JNZ K4 ;未释放,等待 POP ACC ;键释放,弹栈送ACC RET ;键扫描结束,返回 lNEXT : INC R4 ;修改列号,指向下一列lMOV A,R2 lJNB ACC.7,KEY ;第7位为0,已扫描完最高列转KEY RL A ;未扫描完,扫描字左移一 位,变为下列扫描字lMOV R2,A;扫描字暂存R2lLJMP K3 ;转下列扫描lKS: MOV A,#0 lMOV P1, A;全扫描字#00H送P1口lMOV A,P2 ;读入P2口行状态lCPL A ;变正逻辑,以高电平表示有键按下lANL A,#0FH ;屏蔽高4位lRET ;出口状态:A0时有键按下 ((2 2)中断工作方式)中断工作方式 l采用中断扫描工作方式可提高CPU的工作效率 。

      一种简易键盘接口如图10.5所示图10.5 中断方式键盘电路 l由于P1口为双向I/O口,可以采用 “线路反转”法识别键值步骤如下:l(1)P1.0~P1.3输出0,由P1.4~P1.7输入并保存数据到A中;l(2)P1.4~P1.7输出0,由P1.0~P1.3输入并保存数据到B中;l(3)A的高四位与B的低四位相或成为键码值;l(4)查表求得键号 l线路反转程序如下:lORG 0000HlLJMP STARTlORG 0003lLJMP FZH ;转读键值程序lORG 0030HlSTART:lMOV SP,#50Hl MOV P1,#0FHlMOV IE,#81H ;CPU和外部中断0开中断 l…lSJMP $lORG 0080H ;读键值中断程序lFZH :SETB RS0 ;选择第1组工作寄存器 l MOV P1,#0F0H ;设P1.0~P1.3输出0lMOV A,P1 ;读P1口lANL A,#0F0H ;屏蔽低4位,保留高4位lMOV B,A ;P1.4~P1.7的值存B l MOV P1,#0FH ;反转设置,设P1.4~P1.7输出0l MOV A,P1lANL A,#0FH ;屏蔽高4位,保留低4位lORL A,B ;与P1.4~P1.7的值相或,形成键码lMOV B,AlMOV R0,#00H ;置键号初值lMOV DPTR, #TAB;lLOOP: MOV A,R0lMOVC A,@A+DPTR ;取键码值lCJNE A,B,NEXT2 ;与按键值相比较,不相等,继续lSJMP RR0 ;相等返回,键码值在A中lNEXT2: INC R0 ;键值加1lCJNE R0,#10H,LOOP ;是否到最后一个键lRR0: CLR RS0 ;恢复第0组工作寄存器l RETI lTAB: DB 0EEH,0EDH,0EBH,0E7H ;0,1,2,3的键码值lDB 0DEH,0DDH,0DBH,0D7H ;4,5,6,7的键码值lDB 0BEH,0BDH,0BBH,0B7H ;8,9,10,11的键码值lDB 07EH,07DH,07BH,077H ;12,13,14,15的键码值 10.2 显示器接口 l10.2.1 10.2.1 概述显示器概述显示器l10.2.2 LED10.2.2 LED显示器的结构与原理显示器的结构与原理图10.6 “8”字型数码管 l下面以共阴极数码管为例说明字形与字形码的关系。

      l对照图10-6(a)字段,字形码各位定义如下:lD7 D6 D5 D4 D3 D2 D1 D0lDP G f e d c b al数据位D0与a字段对应,D1与b字段对应……,依此类推参考图10-6(a)和(b)可以看出,如要显示“1”字形, b、c 2字段应点亮,所以对应的字形码为00000110B 10.2.3 LED静态显示方式 图10.7 静态显示电路 l 显示子程序如下:l 功能:把数据从显示缓冲区送到数码管l 入口:要显示的数放在以DIS0为首的8个单元中l 出口:把预置的数输出以更新原有的显示lDIR: SETB RS0 ;保护第0组工作寄存器l PUSH ACC ;保护现场l PUSH DPHl PUSH DPLl MOV R2,#08H ;显示8个数码管l MOV R0,#DIS7 ;显示缓冲区末地址送入R0lDL0:MOV A,@R0 ;取要显示的数作查表偏移量l MOV DPTR,#TAB ;指向字形表首l MOVC A,@A+DPTR ;查表得字形码l MOV SBUF,A ;发送显示 lDL1: JNB TI,DL1 ;等待发送完一帧l CLR TI ;清中断标志,准备继续发送 l DEC RO;更新显示单元l DJNZ R2,DL0 ;重复显示所有数码管l CLR RS0 ;恢复使用第0组工作寄存器 l POP DPL ;恢复现场l POP DPHl POP ACCl RETl TAB:DB 0COH,0F9H,0A4H,0BOH,99H ;0,1,2,3,4l DB 92H,82H,0F8H,80H,90H ;5,6,7,8,9 l DB 88H,83H,0C6H,0A1H,86H ;A,B,C,D,E l DB 8EH,0BFH,8CH,0FFH ;F,-,P,暗 10.2.4 LED动态显示方式 l 图 10.8 扫描式显示电路 这种工作方式是分时轮流选通数码管的公共端,使得各个数码这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通,即各数码管是由脉冲电流导电的(循环扫描一次的管轮流导通,即各数码管是由脉冲电流导电的(循环扫描一次的时间一般为时间一般为10ms10ms)。

      当所有数码管依次显示一遍后,软件控制循)当所有数码管依次显示一遍后,软件控制循环,使每位显示器分时点亮例如,如果要显示环,使每位显示器分时点亮例如,如果要显示““123DEF”123DEF”时,时,位选码、段选码扫描一遍的相应显示状态如表位选码、段选码扫描一遍的相应显示状态如表10.210.2所示 本段程序中,设CWR为8255控制口地址,POA为A口地址,POC为C口地址DIS0~DIS5是片外显示缓冲区,共6个单元对应6个数码管 l 程序清单如下:lMOD: PUSH ACC ;保护现场l PUSH DPHl PUSH DPLl MOV R0,#CWR;指向8255控制口l MOV A,#82H;设置8255工作方式字l MOVX @R0,A ;设A口、C口为基本输出方式lDIR:MOV R0,#DIS5;指向显示缓冲区首单元l MOV R6,#20H;选中最左数码管l MOV R7,#00H;设定显示时间l MOV DPTR,#TAB;指向字形表首地址lDIR1: MOV A,#00Hl MOV R1,#POC;指向8255C口(位选口)l MOVX @R1,A;关断显示l MOVX A,@R0;取要显示的数l MOVC A,@A+DPTR ;查表得字形码。

      l MOV R1,#POA;指向8255 A口(字形口)l MOVX @R1,A;送字形码 l MOV A,R6 ;取位选字l MOV R1,#POC ;指向位选口l MOV @R1,A ;送位选字lHERE: DJNZ R7,HERE ;延时l INC R0 ;更新显示缓冲单元l CLR Cl MOV A,R6l RRC A ;位选字右移l MOV R6,Al JNC DIR1 ;未扫描完继续循环l POP DPL ;恢复现场l POP DPH l POP ACCl RETlTAB:DB 3FH,06,5BH,4FH,66H,6DH,7DH,07 ;0~7l DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8~0FH 10.3 10.3 功率开关器件接口功率开关器件接口 l 10.3.1 10.3.1 输出接口的隔离技术输出接口的隔离技术(a) (b) (c) 图 10.9 光电隔离器原理及接法(a) (b) (c) (a) 10.3.2 10.3.2 功率开关器件举例功率开关器件举例1.1.1.1.直流负载驱动电路直流负载驱动电路直流负载驱动电路直流负载驱动电路 l1)晶体管 l2)达林顿开关驱动电路 l3)功率场效应管图 10.10 直流电源负载驱动电路 2 2.. 可控硅(晶闸管)驱动的负载电路1)可控硅及主要特性 2)可控硅与单片机接口电路 图10.12单片机控制的可控硅接口电路 3 3..固态继电器接口电路图 10.13 固态继电器接口电路(a)DC-SSR接口电路 (b) AC-SSR接口电路 10.4 打印机接口 10. 4. 1 TP10. 4. 1 TP P-40AP-40A主要技术性能及接口要求主要技术性能及接口要求1010..4 4..2 2 字符代码及打印命令字符代码及打印命令1010..4 4..3 TP3 TP P-40AP-40A//16A16A与单片机接口与单片机接口 图10.15 TPP-40A/16A与单片机I/O口连接图 l编制程序使打印机先打印片内50H~5FH单元内的数据,此数据区内的数据已是分离的BCD码,均放在低半字节。

      然后再打印时间“20012年8月8日”, l汇编程序清单:lMOV R0,#50H ;送打印数据区首地址lMOV R7,#16 ;送数据长度lLOOP1: MOV A,@R0lADD A,#30H ;变换为ASCII码lLCALL PRT ;打印一个数据或字符lINC R0lDJNZ R7, LOOP1 ;是否打印完数据lMOV A,#0DH ;送命令结束代码lLCALL PRTlCLR AlMOV R3,A l LP2: MOV DPTR,#TAB ;指向表首lMOVC A,@A+DPTR ;取待打印字符lLCALL PRT ;调打印程序lINC R3 lMOV A,R3lXRL A,#9lJZ LP3 ;打印完9个字符转LP3lMOV A,R3lSJMP LP2lLP3: MOV A,#0DH ;送回车换行符lLCALL PRTlHERE: SJMP HERElPRT: PUSH DPHl PUSH DPL lPRT1: JB P3.3,PRT1 ;没准备好等待lMOV DPTR,#7FFFH ;选中打印机lMOVX @DPTR,A ;送字符lPOP DPLlPOP DPHlRETlTAB: DB 32H,30H,31H,32H,8CH, 38H,8DH,38H,8EH 。

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