理学单片机IO扩展.pptx





《理学单片机IO扩展.pptx》由会员分享,可在线阅读,更多相关《理学单片机IO扩展.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1页/共58页为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。提供给LED显示器的段码(字型码)正好是一个字节(8段)。各段与字节中各位对应关系如下:按上述格式,8段LED的段码如表所示。第2页/共58页显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码0 03 3FHFHC0HC0Hc c3939H HC6HC6H1 10606H HF9HF9Hd d5 5EHEHA1HA1H2 25 5BHBHA4HA4HE E7979H H8686H H3 34 4FHFHB0HB0HF F7171H H8 8EHEH4 46666H H9999H HP P7373H H8 8
2、CHCH5 56 6DHDH9292H HU U3 3EHEHC1HC1H6 67 7DHDH8282H HT T3131H HCEHCEH7 70707H HF8HF8Hy y6 6EHEH9191H H8 87 7FHFH8080H HH H7676H H8989H H9 96 6FHFH9090H HL L3838H HC7HC7HA A7777FHFH8888H H“灭灭”0000H HFFHFFHb b7 7CHCH8383H HLED段码(8段)第3页/共58页表中只列出了部分段码,可根据实际情况选用。另外,段码是相对的,它由各字段在字节中所处的位决定。例如表中8段LED段码是按格
3、式:而形成的,“0”的段码为3FH(共阴)。反之,如将格式改为下列格式:则“0”的段码为7EH(共阴)。字型及段码由设计者自行设定,习惯上还是以“a”段对应段码的最低位。第4页/共58页N个LED显示块有N位位选线和8N根段码线。LED显示器工作原理下图是4位LED显示器的结构原理图。第5页/共58页段码线控制显示的字型,位选线控制该显示位的亮或暗。静态显示和动态显示两种显示方式。1.静态显示方式各位的公共端连接在一起(接地或+5V)。每位的段码线(adp)分别与一个8位的锁存器输出相连。显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。第6页/共58页2.
4、动态显示方式所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。图:4位静态LED显示器电路。该电路各位可独立显示。第7页/共58页图:4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占 用一个4位I/O口。第8页/共58页8位LED。图(a)是显示过程,某一时刻,只有一位LED被选通显示,其余位则是熄灭的;图(b)是实际显示结果,人眼看到的是8位稳定的同时显示的字符。第9页/共58页键盘接口原理1.键盘输入的特点键盘:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合,输出波形
5、如图。第10页/共58页2.按键的确认 检测行线电平 高电平:断开;低电平:闭合,常用软件来消除按键抖动。基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。3.如何消除按键的抖动当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期t1和t3的影响。第11页/共58页键盘接口的工作原理独立式按键接口和行列式键盘接口。1.独立式键盘接口各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。此种接口适于键数较少或操作速度较高的场合。第12页/共58页图(a)为中断方式的独
6、立式键盘工作电路图(b)为查询方式的独立式键盘工作电路。第13页/共58页用三态缓冲器扩展的I/O口的按键接口电路。第14页/共58页对独立式键盘编程,软件消抖,查询方式检测键的状态。仅有一键按下时才有效才处理。KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFHMOVX A,DPTR;读键盘状态ANL A,#1FH;屏蔽高三位MOV R3,A;保存键盘状态值LCALL DELAY10;延时10ms去键盘抖动MOVX A,DPTR;再读键盘状态ANL A,#1FH;屏蔽高三位 CJNE A,R3,RETURN;两次不同,抖动引起转RETURNCJNE A,#1EH,KEY2;相
7、等,有键按下,不等转KEY2第15页/共58页LJMP PKEY1;是K1键按下,转K1键处理 ;子程序PKEY1KEY2:CJNE A,#1DH,KEY3;S2键未按下,转KEY3LJMP PKEY2 ;S2键按下,转PKEY2处理KEY3:CJNE A,#1BH,KEY4;S3未按下,转KEY4LJMP PKEY3 ;S3按下,转PKEY3处理KEY4:CJNE A,#17H,KEY5;S4键未按下,转KEY5LJMP PKEY4 ;S4按下,转PKEY4处理KEY5:CJNE A,#0FH,PASS;S5未按下,转RETURNLJMP PKEY5 ;S5按下,转PKEY5处理RETURN
8、:RET ;重键或无键按下,从子程序返回识别和编程简单,用在按键数较少的场合。第16页/共58页2.行列式(矩阵式)键盘接口用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图所示。按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的I/O口线。第17页/共58页(1)行列式键盘工作原理无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2)按键的识别方法a.扫描法 图(b)中3号键被按下为例,来说明此键时如何被识别出来的。第18页/共
9、58页识别键盘有无键被按下的方法,分两步进行:第1步:识别键盘有无键按下;第2步:如有键被按下,识别出具体的按键。把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。上述方法称为扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。b.线反转法 只需两步便能获得此按键所在的行列值,线反转法的原理如下图。第19页/共58页第20页/共58页第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。结合上述两步,可
10、确定按键所在行和列。(3)键盘的编码根据实际需要灵活编码。键盘的工作方式单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。第21页/共58页原则:即要保证能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。1.编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,扫描键盘。工作过程:(1)在键盘扫描子程序中,先判断有无键按下。方法:PA口8位输出全0,读PC口低4位状态,若PC0PC3为全1,则说明键盘无键按下;若不全为1,则说明键盘可能有键按下。第22页/共58页(2)用软件来消除按键抖动的影响。如有键按下,则进
11、行下一步。(3)求按下键的键号。(4)等待按键释放后,再进行按键功能的处理操作。2.定时扫描工作方式利用单片机内的定时器,产生10ms的定时中断,对键盘进行扫描。3.中断工作方式只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。第23页/共58页 键盘所做的工作分为三个层次,如下图。第24页/共58页第1层:单片机如何来监视键盘的输入。三种工作方 式:编程扫描定时扫描中断扫描。第2层:确定具体按键的键号。体现在按键的识别方 法上就是:扫描法;线反转法。第3层:执行键处理程序。第25页/共58页利用8031的串行口实现键盘/显示器接口 串口未作它用,可用来外扩键盘/显示器
12、。串口为方式0输出,串口外接移位寄存器74LS164。接口电路如下图。74LS164(0)74LS164(7):作为8位LED的段码输出,8031的P3.4、P3.5:两行键的行状态输入 P3.3(TXD):同步移位脉冲输出控制线,第26页/共58页第27页/共58页优点:亮度大,容易做到显示不闪烁,且CPU不必频繁的为显 示服务,从而使单片机有更多的时间处理其它事务。显示子程序:DIR:SETB P3.3 ;P3.3=1允许TXD脚同步移位 ;脉冲输出MOV R7,08H ;送出的段码个数,R7为段 ;码个数计数器MOV R0,7FH ;7FH78H为显示数据缓冲区DL0:MOV A,R0
13、;取出要显示的数送AADD A,0DH ;加上偏移量MOVC A,APC ;查段码表SEGTAG,取出段码MOV SBUF,A ;将段码送SBUF 第28页/共58页DL1:JNB TI,DL1;输出段码,查询TI状态,1个字节;的段码输出完否?CLR TI ;1个字节的段码输出完,清TI标志DEC R0;指向下一个显示数据单元 DJNZ R7,DL0;段码个数计数器R7是否为0,如不;为0,继续送段码CLR P3.3 ;8个段码输出完毕,关显示器输出RET ;返回SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极段码表,;0,1,2,3,4DB 92H,82H,0F
14、8H,90H;5,6,7,8,9DB 88H,83H,0C6H,0A1H,86H;A,B,C,D,EDB 8FH,0BFH,8CH,0FFH,0FFH;F,P,暗 第29页/共58页键盘扫描子程序:KEYI:MOV A,00H;判有无键按下,使所有列线为0;的编码送AMOV SBUF,A;扫描键盘的(8)号74LS164输;出为00H,使所有列线为0KL0:JNB TI,KL0;串行输出完否?CLR TI;串行输出完毕,清TIKL1:JNB P3.4,PK1;第1行有闭合键吗?如有,跳;PK1进行处理JB P3.5,KL1;在第2行键中有闭合键吗?无闭;合键跳KL1PK1:ACALL DL10
15、;调用延时10ms子程序DL10,软;件消除抖动JNB P3.4,PK2;判是否抖动引起的?第30页/共58页JB P3.5,KL1PK2:MOV R7,08H ;不是抖动引起的MOV R6,0FEH;判别是哪一个键按下,FEH为最;左一列为低MOV R3,00H ;R3为列号寄存器MOV A,R6 ;KL5:MOV SBUF,A;列扫描码从串行口输出KL2:JNB TI,KL2;等待串行口发送完CLR TI;串行口发送完毕,清TI标志JNB P3.4,PKONE;读第1行线状态,第1行有键闭;合,跳PKONE处理JB P3.5,NEXT ;读第2行状态,是第2行某键否?MOV R4,08H;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理学 单片机 IO 扩展

限制150内