




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章 51单片机人机交互,7.1外部显示元件设计 7.2 键盘输入设计 7.3 外接打印机接口设计,第7章 51单片机人机交互,在线教务辅导网:,教材其余课件及动画素材请查阅在线教务辅导网,QQ:349134187 或者直接输入下面地址:,,第7章 51单片机人机交互,在一个单片机应用系统中人机交互功能是必不可少的,键盘和显示器件是一个系统中不可缺少的输入输出设备。在系统工作的过程中,用户需要对系统相应控制操作,键盘是重要的输入控制信息的设备,对系统各种状态进行控制。通过显示设备显示系统各种状态信息和控制指令的执行结果,显示采集信号的值、A/D转换结果和向用户显示报警信息等功能。可以实时的了解系统运行状态,以便做出及时的处理。一些单片机应用系统中还需要打印各种状态信息或定时生成一些数据报表,特别是在各种便携式设备中,通过单片机控制的微型打印机得到了更多的应用。,第7章 51单片机人机交互,第7章 51单片机人机交互,7.1.1 LED数码管 一、LED工作原理常用的七段LED显示器是由7条发光二极管组成显示字段,有的还带有一个小数点dp。发光二极管组成的一个阵列,并封装于标准的外壳中,为了适应不同的驱动电路,引线有共阳极和共阴极两种结构。所以共有八段。分别用ag及dp表示。如图7-1 (a) 所示。,7.1外部显示元件设计,(a) (b) (c)图7-1 七段LED数码管显示器,第7章 51单片机人机交互,对于公共端加电压的操作称为位选,对各段加电压操作称为段选。所有段的段选组合在一起称为字形码,可以用一个字节数字位D0D7作为段选信号S0S7来控制段af和dp。表7-1 十六进制数七段LED字形码,第7章 51单片机人机交互,二、LED的驱动接口LED工作时需要一定的工作电流,才能正常发光。单个LED实际上是一个压降为1.52.5V的发光二极管,流过LED的电流大小决定了它的发光强度。图7-2 为单个LED的驱动接口电路。LED最高电流计算公式为(7-1)所示:,(7-1)式中: VF- LED的正向压降;VCS- LED驱动器的压降;R- LED的限流电阻;VCC- 电源电压;IF- LED的工作电流。,第7章 51单片机人机交互,图7-2 中的7406是一个集电极开路的反相器,用于驱动LED。当单片机的I/O端口PXX为高电平时,反相器输出低电平,LED发光;当单片机的I/O端口为低电平时,反相器输出高电平,没有电流流过LED,LED熄灭。图7-2 单个LED的驱动接口电路限流电阻计算如公式(7-2)所示(7-2),第7章 51单片机人机交互,三、LED数码管的工作方式LED数码管显示器常用的工作方式又可分为: 静态方式显示和动态方式显示两种。在设计过程中可以根据系统总体资源分配情况,选择合适的方式。,第7章 51单片机人机交互,1. 静态显示方式静态显示方式是指显示器显示某一个字符时,发光二极管的位选始终被选中。静态显示主要的优点是显示稳定,在发光二极管的导通电流一定情况下,显示器的亮度大。该显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制,占用硬件较多,一般仅用于显示器位数较少的场合。由于单片机本身提供的I/O口有限,实际使用中,通过扩展相应锁存器和译码器来解决输出口数量不足的问题。,第7章 51单片机人机交互,2. 动态显示方式动态显示方式是指一位一位地轮流点亮每位显示器,即每个数码管的位选被轮流选中,多个数码管公用一组段选。显示时,段选控制相应字符段选码,位选控制该显示位的电平。并保持延时一段时间,以造成视觉暂留效果。刷新周期一般约为50ms。显示的亮度同驱动电流大小、点亮时间和关断时间有关,调整它们可控制LED显示亮度并实现稳定显示。动态显示器因硬件成本低,多位数显示时常采用。软件复杂,并要占用单片机较多的时间去定时刷新,因此多用在功能简单的系统中。,第7章 51单片机人机交互,四、LED与单片机连接的典型应用电路设计 1. LED驱动芯片介绍LED驱动芯片常采用74LS47芯片,图7-3 给出了该芯片的引脚图。图 7-3 74LS47的引脚图,第7章 51单片机人机交互,表7-2 74LS47 BCD-7段译码器输入/输出端信号对照表,第7章 51单片机人机交互,2. LED 典型应用电路设计 LED静态显示电路设计,第7章 51单片机人机交互,LED静态显示流程图,第7章 51单片机人机交互, LED动态显示电路设计,第7章 51单片机人机交互,LED动态显示流程图,第7章 51单片机人机交互,五、LED控制的单片机程序设计 1. 图7-4 LED静态显示电路的应用汇编语言编程如下:ORG 0000HLJMP MAINORG 0010H ;-第一片74LS74工作- MAIN: SETB P1.4 CLR P1.5 ;第二、三片74LS74锁存数据CLR P1.6NOPCLR P1.0 ;第一位显示0CLR P1.1CLR P1.2CLR P1.3,第7章 51单片机人机交互,;-第二片74LS74工作-CLR P1.4 SETB P1.5 ;第一、三片74LS74锁存数据CLR P1.6NOPSETB P1.0 ;第一位显示1CLR P1.1CLR P1.2CLR P1.3 ;-第三片74LS74工作-CLR P1.4 CLR P1.5 ;第一、二片74LS74锁存数据SETB P1.6NOPCLR P1.0 ;第一位显示2SETB P1.1CLR P1.2CLR P1.3END,第7章 51单片机人机交互,2.图7-5动态显示电路采用C语言编程如下:#include#include#define uchar unsigned char#define uint unsigned intsbit LED1=P31;sbit LED2=P32;sbit LED3=P33;/-延时-void delay(uint x) uint a,b;for(a=x;a0;a-)for(b=5;b0;b-); ,第7章 51单片机人机交互,/-LED所显示的数字-uchar code table18= 0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71,0X00; /-主函数-void main()while(1)/-第一个LED显示0-LED1=0;LED2=1;LED3=1;P0=table0;delay(10);,第7章 51单片机人机交互,/-第二个LED显示1-LED1=1;LED2=0;LED3=1;P0=table1;delay(10);/-第三个LED显示2-LED1=1;LED2=1;LED3=0;P0=table2;delay(10);,第7章 51单片机人机交互,7.1.2 16x2字符型液晶显示器编程 一、LCD概述液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。1602系列在国内应用比较广泛,该系列的液晶显示器是高性价比的LCD段式液晶显示器。本书以1602为例进行LCD模块应用的介绍。,第7章 51单片机人机交互,二、1602的管脚和指令介绍1602字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块,如图7-8所示。该显示模块为57点阵、16字2行,具有简单而功能较强的指令集,可实现字符的移动、闪烁等显示功能。,第7章 51单片机人机交互,1. 引脚功能:Vss:逻辑负电源输入引脚,接地。Vdd:逻辑正电源输入引脚,接+5V电源。VL:LCD驱动电源输入引脚,可调LCD显示对比度。RS:数据/指令寄存器选择引脚,RS为高电平时,数据D0-D7与数据寄存器通信;RS为低电平时,数据D0-D7与指令寄存器通信。R/W:读/写引脚,高电平时读数据,低电平时写数据。E:读写使能引脚,高电平有效,下降沿锁定数据。D0-D7:8位数据引脚。BLA:背光电源输入引脚,接+5V电源。BLK:背光电源输入引脚,接地。,第7章 51单片机人机交互,2. 指令描述 清显示指令:清除所有的显示数据。返回指令:光标返回至原始状态。输入方式设置指令:设置光标移动方向及整体显示移动。显示开关控制指令:控制画面、光标及闪烁的开与关。光标或整体显示移位位置指令:光标左移、右移、跟随。功能设置指令:设置接口数据位数以及显示模式。设置CGRAM地址指令:设置对CGRAM读/写操作的地址。设置DDRAM 地址指令:设置对DDRAM读/写操作的地址。读忙标志位及地址指令:读取(BF)位忙信号位。写数据指令:写数据到CGRAM或DDRAM。读数据指令:从CGRAM或DDRAM读出8位数据。,第7章 51单片机人机交互,三、工作时序读时序:,第7章 51单片机人机交互,写时序:,第7章 51单片机人机交互,四、1602与单片机接口电路,第7章 51单片机人机交互,五、1602程序设计 LCD1602流程图:,第7章 51单片机人机交互,汇编程序如下:ORG 0000HSJMP L0ORG 0030H L0: MOV SP,#0FHRW BIT P1.2RS BIT P1.1E BIT P1.3MOV P2,#0FFH ;# ;# 显示器部分操作程序 # ;# 1 XSQ-初始化 # ;# 2 SWAIT1-显示一字符 # ;# 3 SWAIT2向LCD发一命令 # ;# 4 XSSJ2-显示一字节两位十进制数 # ;# 5 CSART-造字符(年月日时分) # ;#,第7章 51单片机人机交互,XSQ: MOV P2,#38H ;8位口,2行显示,5X7点阵CLR RSCLR RW XSQ1: SETB EANL P2,#38H NOPCLR EMOV A,#06H ;读写后自动加1LCALL SWAIT2MOV A,#14H ;光标平移LCALL SWAIT2MOV A,#0EH ;显示光标LCALL SWAIT2MOV A,#01H ;清显示器LCALL SWAIT2RET,第7章 51单片机人机交互,SWAIT1: NOPLCALL SWAITCLR RW ;显示器输出一字符SETB RS ;RS=1,R/W=0,E=MOV P2,ASETB ECLR ERET ;- SWAIT2: NOPLCALL SWAITCLR RW ;向显示器输出一命令CLR RS ;RS=0,R/W=0,E=MOV P2,ASETB ECLR ERET,第7章 51单片机人机交互,SWAIT: MOV P2,#0FFHSETB C SWAI: CLR RS ;等待显示器SETB RW ;RS=0,R/W=1,E=SETB EMOV C,P2.7CLR EJC SWAI CLR RWRET XSSJ2: MOV A,47H ;47H中为要显示的数据ANL A,#0F0HSWAP AORL A,#30HLCALL SWAIT1MOV A,47HANL A,#0FHORL A,#30HLCALL SWAIT1RET,第7章 51单片机人机交互,CHART: MOV R0,#13H ;置CGRAM地址初始值00HMOV R4,#08H CH0: MOV R3,#09HSETB 7AH CH1: MOV A,R0MOVC A,A+PCJNB 7AH,CH2LCALL SWAIT2SJMP CH3 CH2: LCALL SWAIT1 CH3: INC R0CLR 7AHDJNZ R3,CH1DJNZ R4,CH0RET,第7章 51单片机人机交互,DB 40H,08H,0FH,12H,0FH,0AH,1FH,02H,00H ;00H置字符“年“点阵DB 00H,0FH,09H,0FH,09H,0FH,09H,13H,00H ;01H置字符“月“点阵DB 00H,0FH,09H,09H,0FH,09H,09H,0FH,00H ;02H置字符“日“点阵DB 00H,00H,04H,04H,1FH,0EH,0EH,11H,00H ;03H置字符“点阵DB 00H,01H,07H,19H,1BH,1DH,03H,01H,00H ;04H置字符“时“点阵DB 00H,0AH,11H,1EH,0AH,0AH,16H,02H,00H ;05H置字符“分“点阵DB 00H,18H,19H,07H,09H,08H,09H,06H,00H ;06H置字符“点阵DB 00H,04H,05H,1EH,0EH,15H,0CH,04H,00H ;07H置字符“水“点阵,第7章 51单片机人机交互,采用C51语言编程程序如下: #include#define uchar unsigned char#define uint unsigned int/-sbit rs=P11; /管脚定义sbit rw=P12;sbit lcden=P13;/-确定输入内容-uchar table1=“FD“; uchar table2=“153144046“;,第7章 51单片机人机交互,/-延时-void delay(uint x) uint a,b;for(a=x;a0;a-)for(b=10;b0;b-); void delay1(uint x)uint a,b;for(a=x;a0;a-)for(b=100;b0;b-); ,第7章 51单片机人机交互,/-写地址-void write_com(uchar com) P2=com; /向P2口写地址rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;/-写数据-void write_date(uchar date) P2=date; /向P2口写数据rs=1;lcden=0;delay(10); /延时lcden=1;delay(10); /延时 lcden=0;,第7章 51单片机人机交互,/-初始化-void init() write_com(0x38); /准备向38H地址中写数据delay(20); /延时write_com(0x0f); /准备向0FH地址中写数据delay(20); /延时write_com(0x06);delay(20);write_com(0x01);delay(20); ,第7章 51单片机人机交互,/-主函数-void main() uchar a;init();rw=0;write_com(0x80+17); /第一行送地址delay(20); for(a=0;a2;a+)write_date(table1a); /取table1 表中的数据delay(20); write_com(0xc0+17); /第二行送地址delay(50); for(a=0;a9;a+),第7章 51单片机人机交互,write_date(table2a); /取table2 表中的数据delay(50); for(a=0;a16;a+)write_com(0x18); /数据平移delay1(200);while(1); ,第7章 51单片机人机交互,7.2 键盘输入设计在单片机组成的控制系统中,用得最多的是非编码系统。键盘中每个按键都是一个常开电路,如下图所示。,第7章 51单片机人机交互,当键K断开时,P1.1输入为高电平,按下闭合时P1.1输入为低电平。通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号波形如下图所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,因而在闭合及断开的瞬间均伴随着一连串的抖动。,第7章 51单片机人机交互,7.2.1 键盘接口类型 一、独立式键盘独立式键盘的各个按键之间彼此是独立的,每一个按键连接一根I/O口线。当键盘按键数量比较多时,需要的I/O口线也较多,因此独立式键盘只适合于按键较少的应用场合。独立式键盘可以工作在查询方式和中断扫描方式。查询方式是通过读I/O口状态可判断是否有键按下和哪一个键被按下。中断扫描方式只要有键按下就会发出中断请求,CPU响应中断,查询各按键对应I/O状态。需要额外的硬件电路来实现中断请求。,第7章 51单片机人机交互,二、矩阵式键盘矩阵式键盘是一种扫描式键盘,由行线、列线及位于行列交叉点上的按键等部分组成。按键数等于矩阵行数与列数的乘积。1. 扫描法扫描法是先使列(行)线全输出低电平,然后判断行(列)线状态,来判断有无键按下及键的位置。扫描法对键的识别采用逐行(列)扫描的方法获得键的位置。2. 线反转法线反转法的第一步也是把列线置低电平,行线置高电平然后读行状态;第二步与第一步相反把行线置低电平,列线置高电平然后读列线状态来判断有无键按下及键的位置。,第7章 51单片机人机交互,三、其他形式的键盘 1. I/O端口组合复用(一),第7章 51单片机人机交互,2. I/O端口组合复用(二),第7章 51单片机人机交互,3. 改进型I/O端口复用,第7章 51单片机人机交互,7.2.2键盘的防抖技术 一、硬件消抖通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。利用积分电路对于干扰脉冲的吸收作用,只要选择好时间常数,就能在按键抖动信号通过此滤波电路时,消除抖动影响。滤波消除抖动电路图如下。,第7章 51单片机人机交互,二、软件消抖如果按键较多,采用硬件消抖,会提高成本,增加电路的复杂性,因此常采用软件的方法进行消抖。软件消抖可以减少开发系统的成本简化键盘的电路设计,即检测出键闭合后,执行一个延时程序510ms的延时,再确认该键电平是否仍保持闭合状态电平,如果保持闭合状态电平则确认为真正有键按下,然后判断是否是按下同一个键。如果仍然是按下同一个键,则说明是键盘真的按下,根据系统设计执行相应的处理程序,从而消除了抖动的影响。,第7章 51单片机人机交互,7.2.3 键盘扫描方式编程,第7章 51单片机人机交互,7.2.4 键盘中断方式编程,第7章 51单片机人机交互,7.3 外接打印机接口设计 7.3.1打印机接口信号 并行方法的电路:,第7章 51单片机人机交互,串行方法的电路:,第7章 51单片机人机交互,7.3.2字符和编码代码00H无效,代码01H0FH为命令,10HFFH代码中,101F为用户自定义代码。20H7FH为标准ASC代码。即拉丁字母大写和小写字母、数字和符号。全部ASCII代码如表所示。,第7章 51单片机人机交互,7.3.3 打印命令TPP -16B命令代码及功能如表7-5所示。,第7章 51单片机人机交互,TPP -16B命令代码的命令格式和功能表如下。,第7章 51单片机人机交互, TPP -16B打印机接受下述代码串5个字节后,打印结果如何?从例3可知,02H即空2个字节,05H即空5 个字节,可见02H05H、0BH和0CH此六个代码分别为6种不同数目空位命令。此命令对于打印表格,账单等十分方便,减少了输送代码的代码数量。,第7章 51单片机人机交互,打印6个空子位后是“$32.00”字串的打印命令为:03 03 24 33 32 2E 30 30 0D空6位 $ 3 2 . 0 0 回车打印一行点数,输入打印机的代码字节为:99 0E 10 0D99为“”代码,0E为重复代码打印命令,10H为重复次数16。当然,如不使用0E命令,与此等效的代码串为16个字节的99H。重复代码打印命令的格式:XX 0E YYXX-被重复的代码0E-重复打印命令字节YY-重复个数,第7章 51单片机人机交互,7.3.4 外接打印机接口电路设计TPP系列并行口打印机与计算机通过机后的20芯扁平电缆及插件连接。,第7章 51单片机人机交互,TPP系列并行口打印机信号时序:,第7章 51单片机人机交互,TPP连接的并行接口电路,第7章 51单片机人机交互,7.3.5 外接打印机驱动程序设计以C51语言编程如下:#include#include#define uchar unsigned char#define COM8155 XBYTE0x7ff0#define PA8155 XBYTE0x7ff1#define PC8155 XBYTE0x7ff3sbit BUSY=P33;uchar code tbhead40=0x1c,0x26,0x20,0x20,0x20,0x20,0xc4,0xea,0x20,0x20,/打印中文年0xd4,0xc2,0xb7,0xdd,0xb5,0xe7,0xbb,0xb0,0xb7,0xdl,第7章 51单片机人机交互,/月份电话费0X0a,0xb5,0xa5,0xce,0xbb,0x20,0x20,0xb3,0xa4,0xcd,0xbe,/换行单位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全员竞聘安全服务题及答案
- 2025年BIM安全管理体系建设题及答案
- 2025年建筑施工企业三类人员-B-证笔试预测题
- 2025年安全生产管理模拟题答案解析
- 2025年维修工笔试高频题库与解析
- 2025年视距内无人机面试必考题
- 2025年文物保护师初级考试题集
- 课件中时间轴
- 2025年健身教练从业资格水平考核试题及答案解析
- 2025年建筑材料工程师专业知识考核试题及答案解析
- 地理与劳动教育
- 第5课 甲午中日战争与列强瓜分中国狂潮 公开课一等奖创新教学设计
- 初中数学新人教版七年级上册第二章《有理数的运算》教案(2024秋)
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- 厂房消防应急预案
- 景区开发政府战略框架协议书(2篇)
- “雄鹰杯”全国小动物医师技能大赛考试题库(660题)
- 实验室隐患排查培训
- 九年级化学第三单元课题1分子和原子人教新课标版省公开课获奖课件说课比赛一等奖课件
- 宠物医疗器械创新与发展
- 4《给植物画张“像”》教学设计-2024-2025学年科学一年级上册教科版
评论
0/150
提交评论