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