




已阅读5页,还剩103页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章单片机接口技术,本章要点:掌握键盘接口技术掌握显示接口技术掌握转换器的接口技术本章主要介绍单片机与各种输入外部设备、输出设备的接口电路设计以及软件编程。,7.1键盘接口技术,7.1.1键盘工作原理1.按键的分类按照结构原理分为:机械触点式开关按键,无触点式开关按键。按照识别按键方法,分为:编码键盘,非编码键盘.(1)编码键盘的特点按键的识别由专用的硬件实现,并能产生键值的称为编码键盘,编码键盘每按下一个键,键盘能自动生成键盘代码。(2)非编码键盘的特点自编软件识别的键盘称为非编码键盘。非编码键盘只简单地提供行和列的矩阵,其他工作均由软件完成。,2.按键的输入与识别,在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。,3.按键的编码以及键盘程序的编制,一组按键或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。,4.常用接口方式和键盘接口功能,单片机与键盘的接口通常直接通过并行接口、串行口与键盘接口,或采用专用芯片与键盘接口。直接通过并行接口串行口与键盘接口采用专用芯片与键盘接口,5.按键抖动现象的消除,当按键按下和释放时,会向单片机CPU输入一个0或1电平,CPU根据收到的0或1电平信号,决定具体的操作。但是,按键按下或释放时,开关的机械触点会产生抖动,抖动时间的长短与开关的机械特性有关,一般为510ms,其抖动波形如图7-1所示。,(1)硬件去抖硬件去抖方法很多,在按键输出端加双稳态触发器、单稳态触发器或RC积分电路都可构成去抖电路。图72是一个利用RC积分电路构成的滤波去抖动电路。图7-3所示是一种双稳态R-S触发器构成的去抖动电路图7-4所示是一种单稳态触发器构成的去抖动电路(2)软件去抖,电路工作过程如下(略),图7-2利用RC积分电路构成的滤波去抖动电路。RC积分电路具有吸收干扰脉冲的滤波作用,只要适当选择RC电路的时间常数,就可消除抖动带来的不良后果。当按键未按下时,电容C两端的电压为零,经非门后输出为高电平。当按键按下后,电容C两端的电压不能突变,单片机不会立即接受信号,电源经R1向C充电,若此时按键按下的过程中出现抖动,只要C两端的电压波动不超过门开启电压(TTL为0.8V),非门的输出就不会改变。一般R1C应大于10ms,且VCCR2/(R1+R2)的值应大于门的高电平阈值,R2C应大于抖动波形周期。,电路工作过程如下(略),图7-3所示是一种双稳态R-S触发器构成的去抖动电路按键未按下时,a=0,b=1,输出Q=1。按键按下时,因按键的机械弹性作用的影响,使按键产生抖动。当开关没有稳定到达b端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1,输出Q不会产生抖动的波形。当开关稳定到达b端时,因a=1,b=0,使Q=0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达a端时,因Q=0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达a端时,因a=0,b=0,使Q=1,双稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。,(2)软件去抖,原理先检测是否有键按下若有,延时20ms再次检测是否仍有键按下键值处理等待按键释放按键处理返回,7.1.2独立式按键,非编码键盘按照结构的不同可分为:独立式键盘行列式键盘在单片机控制系统中,往往只需要几个功能键,不超过8个键时,可采用独立式按键结构。,1.独立式按键的结构,独立连接式按键是指直接用I/O端口线构成的单个按键电路。每个键单独占用一根I/O端口线,每根I/O线的工作状态不会影响其他I/O端口线的工作状态。,独立式按键工作状态:,未有键按下时,所有的数据输入线都处于高电平状态。当任何一个键压下时,与之相连的数据输入线将被拉成低电平要判断是否有键压下,只需用位操作指令即可。,2.独立式按键的软件设计,独立式按键的软件设计方法有:查询方式:定时查询IO端口的状态,检测是否有按键动作中断方式:有按键动作时,自动产生中断,由中断来处理,2.独立式按键的软件设计,独立式按键查询方式的软件设计:先逐位查询每根I/O口线的输入状态,如某一根I/O口线的输入为低电平,则可确认该I/O口线所对应的按键已按下,然后再转向该键的功能处理程序。键盘扫描,按键处理程序,键盘处理,2.独立式按键的软件设计(2),独立式按键中断方式的软件设计:初始化外部中断INT0;打开系统中断EA=1;编写中断服务函数INT0_ISR();中断方式键盘的电路,2.独立式按键的软件设计(2),键盘中断(外部中断INT0)的初始化中断服务函数(键盘扫描),7.1.3矩阵式键盘,独立式按键只能用于键盘数量要求较少的场合,在单片机系统中,当按键数较多时,为了少占用I/O端口线,这时常采用矩阵式键盘,又称行列式键盘。1.矩阵式键盘的结构和原理矩阵式键盘即将键盘排列成行、列矩阵式水平线(行线)与垂直线(列线)的交叉点处设置按键每一个按键都规定一个键号,如数字键和功能键,7.1.3矩阵式键盘,7.1.3矩阵式键盘(2),2.矩阵式键盘按键的识别识别按键的方法很多,其中最为常见的方法是扫描法。(利用扫描法识别别按键的过程)3.键盘的编码对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。4.矩阵式键盘的接口方式通过8155或8279等芯片进行键盘扩展矩阵键盘直接通过单片机的IO端口进行扩展,5.键盘扫描控制方式,(1)编程扫描方式(2)定时控制扫描方式(3)中断控制扫描方式,5.键盘扫描控制方式,(1)编程扫描方式按键处理程序固定在主程序的某个程序段中。利用单片机完成其他工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。在执行按键功能程序时,单片机不再响应其他按键的输入要求,直到单片机重新扫描键盘为止。,5.键盘扫描控制方式,(1)编程扫描方式(2)定时控制扫描方式定时控制扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(如10ms)的定时,当定时时间到就产生定时器溢出中断。由于中断返回后要经过10ms后才会再次中断,相当于延时了10ms,因此程序无需再延时。单片机响应中断后对键盘进行扫描,并在有键按下时识别出该按键,再执行该按键的功能程序。,5.键盘扫描控制方式,(1)编程扫描方式(2)定时控制扫描方式定时控制扫描方式的硬件电路与程序控制扫描方式相同,程序流程图如图710所示。,5.键盘扫描控制方式,(1)编程扫描方式(2)定时控制扫描方式(3)中断控制扫描方式前2种键盘扫描方式时,无论是否按键,CPU都要定时扫描键盘,而单片机应用系统工作时并不是经常需要键盘输入,因此,CPU经常处于空扫描状态。为提高CPU的工作效率,可采用中断扫描方式。,7.2单片机引脚信号的读出(实训十一),(1)独立式按键键盘接口设计,例:4个按键控制控制一个发光二极管,4个按键控制控制一个发光二极管的程序,不同按键按下时,发光二级变的时间不同。#includeunsignedcharcount=0;/定义二极管闪烁时间sbitLED=P10;/定义发光二极管的名字voidDelay_xMs(unsignedintx)/延时函数unsignedinti,j;for(i=0;ix;i+)for(j=0;j110;j+);,例:4个按键控制控制一个发光二极管(2),voidkey()/检测按键状态函数/按键状态的不同,返回的count值也不同if(P2/P2_3按键被按下,例:4个按键控制控制一个发光二极管(3),voidmain(void)while(1)key();/if(count!=0)/当有按键按下时/发光二极管闪烁,闪烁时间由count决定LED=1;/发光二极管灭Delay_xMs(count*1000);/保持发光二极管灭状态LED=0;/发光二极管亮Delay_xMs(count*1000);/保持发光二极管亮状态,按键状态通过函数返回值返回,unsignedcharmmkey()/检测按键状态函数unsignedcharcount;/定义按键返回值/按键状态的不同,返回的count值也不同if(P2,7.2单片机引脚信号的读出(实训十一),(1)按键的抖动问题实际编程时需要注意按键的抖动问题。机械触点的弹性作用,其闭合到稳定地接通,如图7-13所示抖动时间的长短由按键的机械特性及操作人员按键动作决定,一般为5ms20ms;按键稳定闭合时间的长短是由操作人员的按键按压时间长短决定的,一般为零点几秒至数秒不等。,带按键防抖的键盘扫描函数,unsignedcharmmkey()/检测按键状态函数unsignedcharcount;/定义按键返回值if(P2,(3)矩阵式按键键盘,当键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。对于i行j列可连i*j个按键,但只需要i+j条接口线。右图为4X4的矩阵键盘,图7-15读取阵列按键状态的流程图,4X4矩阵键盘的编程(1),4X4矩阵键盘的编程(2),7.3显示接口技术,7.3.1LED数码管接口技术7.3.2LED大屏幕显示技术,7.3.1LED数码管接口技术,1.LED数码管显示器结构与工作原理(1)LED数码管显示器结构发光二极管是由半导体发光材料做成的PN结在发光二极管两端通过正向520mA的电流就能正常发光。LED数码管由8个段发光二极管构成,LED数码管显示器结构,通常所说的LED显示器由8个段发光二极管组成,因此称为八段LED显示器,也称为数码管。两种类型:共阴极接法共阳极接法。,(2)LED数码管显示器的控制方式,对8段LED数码管显示器的控制,包括对“显示段”和“公共端”两个地方的控制。其中显示段用来控制显示字符的形状;公共端用来控制若干个LED中的哪一只被选中;前者称为“段选”,后者称为“位选”。二者结合起来,才能在指定的LED上显示指定的字形。,(3)LED数码管显示译码方式,由显示的数字或字符转换到相应的字段码的方式称为译码方式。译码方式:硬件译码方式和软件译码方式。硬件译码方式是指用专门的显示译码芯片来实现字符到字段码的转换。硬件译码:硬件复杂,缺乏灵活性,且只能显示十六进制数软件译码方式就是通过编写软件译码程序(通常为查表程序)来得到要显示字符的字段码。软件译码不需外接显示译码芯片,硬件电路简单,并且能显示更多的字符,实际应用系统中经常采用软件译码。,2.LED数码管显示器的显示方式,数码管显示的类型:静态显示,动态显示静态显示又分为:并行输出和串行输出,2.LED数码管显示器的显示方式,两位共阳LED并行输出静态显示电路,2.LED数码管显示器的显示方式,静态显示采用串行输出可以大大节省单片机的内部资源。,2.LED数码管显示器的显示方式,(2)动态显示所谓动态显示就是一位一位地轮流点亮各位LED显示器(扫描),对于LED显示器的每一位而言,每隔一段时间点亮一次。,7.3.2LED大屏幕显示器,1.LED点阵模块的基本结构以单色88LED点阵显示器为例,88LED点阵内部结构及外形如图721所示,LED点阵模块按LED的极性排列方式,又可分为共阴极与共阳极两种类型。,1.LED点阵模块的基本结构,LED点阵模块的每个引脚都是公共脚,一般是分行共阴或是行共阳两种,每行的阳极连在一起就是行共阳,阴极连一起的就是行共阴。,2.汉字的表示及编码原理,需要显示汉字时,根据汉字内码向字模库检索出该汉字的字形信息,然后输出,再从输出设备得到汉字。所谓汉字字模就是用0、1表示汉字的字形,将汉字放入N行N列的正方形内,该正方形共有N2个小方格,每个小方格用一位二进制表示,凡是笔划经过的方格值为1,未经过的值为0。根据汉字的显示清晰度,按照模块每行或每列所含LED个数的不同,点阵字模有1616点、2424点、3232点,4848点等几种,每个汉字字模分别需要32、72、128、288个字节等存放数据,点数越多,输出的汉字越美观。,3.汉字字模存储及提取方法,在单片机系统中对字模的存储,要根据单片机的ROM容量和其寻址空间情况,可采取3种方式:将提取的汉字字模数据作为常量数组存放在程序存储区内,这种方法较为常用。针对程序不大或单片机无外部扩展数据存储区功能的情况。将提取的汉字字模数据存放在E2PROM,作为扩展的数据存储器供单片机调用。将整个汉字字库存放在E2PROM内,程序根据要显示汉字的机内码来调用汉字字模。,汉字点阵提取(LED显示屏控制)软件,4.88LED点阵与单片机的接口,图723中,LED点阵的列选通由单片机的P1口发出,通过串入并出的8位移位寄存器74HC595输出端送到显示屏的列上;紧接着再选通相应的行显示,LED点阵的行选通线由单片机P2口的P2.0、P2.1、P2.2通过74LS244将数据缓冲后,再通过74LS138形成8条行选通信号,然后通过74LS00以及三极管驱动电路得到高电平有效的驱动信号。由于三极管的输出特性具有恒流的性质,所以可采用三极管驱动LED。,74HC595移位寄存器,74HC595是带锁存输出的串入并出的8位移位寄存器,其引脚分布见图724,其中:SI是串行数据的输入端;QH是级联输出端,可以接下一个74HC595的SI引脚;QAQH是八位串行输入数据的并行输出端;VCC、GND分别为电源和地;RCK是输出锁存器的控制信号SCK是移位寄存器的移位时钟脉冲信号的,所以能够做到输入串行移位与输出锁存互不干扰。/G是对输入数据的输出使能控制/SCLR为移位寄存器的清0输入端,7.4LED数码管显示技术(实训十二),例1:LED数码管的静态显示,ucharcodetable=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d;voidmain()ucharnum;while(1)for(num=0;num6;num+)P1=tablenum;/显示05Delay_xMs(1000);/延时,例2:LED数码管的动态显示,74LS04:字位显示驱动;74LS245:字段显示驱动共阴极数码管,例2:LED数码管的动态显示,/显示字型码ucharcodetable=0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d;.while(1)temp=0 xfe;/位选端控制for(i=0;i5;i+)P2=temp;/位选码取反后送P2口P1=tablei;/显示字型码送P1temp=temp1;/位选码左移一位,选中下一位LEDDelay_xMs(1500);/延时1500ms,例3:LED数码管的动态显示程序优化,ucharcodetable=0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d;.while(1)temp=0 xfe;/位选端控制for(i=0;i5;i+)P1=0 x00;/关显示P2=temp;/位选码取反后送P2口P1=tablei;/显示字型码送P1temp=temp1;/位选码左移一位,选中下一位LEDDelay_xMs(1);/延时1ms,3.LED数码管在单片机工程中的实际应用,变量x如何在数码管上显示?调用Show(x);voidshow(uintdat)uchartemp,k;k=dat;P1_0=0;temp=k/1000;k=k%1000;P0=Led_Showtemp;Delay_xMs(1);P1_0=1;,P1_1=0;temp=k/100;k=k%100;P0=Led_Showtemp;Delay_xMs(1);P1_1=1;P1_2=0;temp=k/10;k=k%10;P0=Led_Showtemp;Delay_xMs(1);P1_2=1;P1_3=0;P0=Led_Showk;Delay_xMs(1);P1_3=1;,7.5液晶显示器(LCD)接口技术,LCD显示器的分类典型液晶显示模块介绍AT89S51单片机与LCD的接口及软件编程,7.5.1LCD显示器的分类,按排列形状可分为(1)字段型:以长条状组成字符显示。主要用于数字显示,也可用于显示西文字母或某些字符,已广泛用于电子表、计算器、数字仪表中。(2)点阵字符型:专门用于显示字母、数字、符号等。它由若干57或510的点阵组成,每一点阵显示一字符。广泛应用在各类单片机应用系统中。(3)点阵图形型:它是在平板上排列多行或多列,形成矩阵式的晶格点,点的大小可根据显示的清晰度来设计。广泛应用于图形显示,如用于笔记本电脑、彩色电视和游戏机等。,7.5.2典型液晶显示模块介绍(字符型LCM1602),基本结构与特性(1)液晶显示板:由若干5x7或5x10点阵的字符构成,每行8、16、20、24、32、40位,一般有1行、2行及4行等。(2)模块电路框图:控制器HD44780、驱动器HD44100,1602字符型液晶屏(LCM)的特性,内部具有字符发生器ROM(CGROM),即字符库模块内有64字节的自定义字符RAM(CGRAM),用户可自行定义8个57点阵字符。模块内有80字节的数据显示存储器(DDRAM)。图7-30ROM字符库的内容,2.LCM的引脚,一般16个引脚,也有少数的LCM为14个引脚,其中包括8条数据线、3条控制线和3条电源线,见表7-3。通过单片机写入模块的命令和数据,就可对显示方式和显示内容做出选择。,2.LCM的引脚,一般16个引脚,也有少数的LCM为14个引脚,其中包括8条数据线、3条控制线和3条电源线,见表7-3。通过单片机写入模块的命令和数据,就可对显示方式和显示内容做出选择。,3.命令格式及功能说明,3.命令桥口及功能说明,3.命令格式及功能说明,7.5.351单片机与LCD的接口及软件编程,AT89S51单片机与LCD模块的接口软件编程,1.AT89S51单片机与LCD模块的接口,数据端DB0DB7直接与单片机的P0口相连寄存器选择端RS信号由P2.6输出高低电平来控制使能端E信号则由单片机的和逻辑非后产生的信号与P2.7共同选通控制当P2.7为高电平时,和控制信号的配合可保证使能端E选通。当E选通时,结合P2.6信号,通过P0口进行数据传输,实现对字符型LCD显示模块的每一次访问。,2.软件编程,(1)初始化先对LCD模块进行初始化,否则模块无法正常显示。两种初始化方法。利用模块内部的复位电路进行初始化。软件初始化。wr_lcd_comm(0 x38);wr_lcd_comm(0 x38);wr_lcd_comm(0 x38);wr_lcd_comm(0 x0C);wr_lcd_comm(0 x01);wr_lcd_comm(0 x06);,图形液晶显示屏,图形显示LCM的显示部分由按行列排列的点阵构成特点:可以显示字符、图形或汉字每个点可以单独控制是否显示字库的存储和显示与LED点阵模块一样,需要借助字模提取软件提取字模,7.6键盘与显示器综合使用,利用串行口实现的键盘/显示器接口利用8255扩展实现的键盘/显示器接口,1.利用串行口实现的键盘/显示器接口,2.利用8255扩展实现的键盘/显示器接口,3.利用8155扩展实现的键盘/显示器接口,7.7根据液晶的时序图进行编程(实训),LCDl602与单片机的连接电路详见:,液晶模块的引脚功能,7.8根据说明对128*64汉字液晶进行编程,128*64汉字液晶的说明书根据说明对128*64汉字液晶进行编程,2.模块接口说明,LCD控制器接口信号说明:,RS,R/W的配合选择决定控制界面的4种模式对液晶的读写控制E信号E信号是使能信号,当E的引脚逻辑状态由高电平变为低电平时,液晶才执行读写状态。,3.液晶内部的寄存器,忙标志:BFBF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据。字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。显示数据RAM(DDRAM)模块内部显示数据RAM提供642个位元组的空间字型产生RAM(CGRAM)字型产生RAM提供图象定义(造字)功能,可以提供四组1616点的自定义图象空间,3.液晶内部的寄存器,地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,光标/闪烁控制电路此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,4.液晶的指令说明,6.编程显示图形或汉字,图形显示水平方向X以字为单位,垂直方向Y以位为单位。先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)。中文字符显示液晶自带中文字库,每屏可显示4行8列共32个1616点阵的汉字。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如图7-44所示。,7.8.2根据说明书对128*64汉字液晶进行编程,根据资料,液晶提供两种界面来连接微处理器,8位并行方式以及串行连接方式以并行连接方式为例,定义LCD的控制IO,#include#includesbitRS=P13;sbitRW=P14;sbitE=P15;sbitPSB=P16;sbitRST=P17;#defineLCDPORTP2#defineDATA1#defineCOMM0,LCD12864(ST79208位数据)忙判断,voidcheck_busy(void)unsignedcharbusy;doRS=0;RW=1;E=1;_nop_();busy=LCDPORT;while(busy,写入数据/命令到LCD12864,输入参数flag:0.命令;1.数据;dat:写入的数据/命令voidlcd_write(bitflag,unsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地转让协议标准格式及签订注意事项
- 检验科内质控总结与改进报告
- 民族精神主题班会活动策划方案
- 项目材料质量问题及整改措施分析报告
- 股东权益保护协议范本解析
- 电缆敷设工程的环境影响及控制
- 室内变形缝防水施工方案
- 护栏楼梯改造方案范本
- 建模项目推广方案范本
- 年度商场促销活动策划简案
- 稳评从业人员培训考试及答案解析
- 2025年甘肃省兰州市榆中县招聘乡村医生考试参考试题及答案解析
- 燃气入户安检课件
- 预防静电安全知识培训课件
- 临时用电专项施工方案(老旧小区改造项目)
- 2025党校中青班入学考试试题及答案
- GB/T 8165-2025不锈钢复合钢板和钢带
- 2025年中国咖啡饮料行业市场深度分析及发展战略规划报告
- 小学生科普课件向日葵
- 铁路工务介入管理办法
- 25年一建建筑实务真题及答案
评论
0/150
提交评论