数码管显示常用外围设备接口电路.ppt

上传人:京东小超市 文档编号:5939880 上传时间:2020-08-16 格式:PPT 页数:84 大小:765.50KB
返回 下载 相关 举报
数码管显示常用外围设备接口电路.ppt_第1页
第1页 / 共84页
数码管显示常用外围设备接口电路.ppt_第2页
第2页 / 共84页
亲,该文档总共84页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数码管显示常用外围设备接口电路.ppt》由会员分享,可在线阅读,更多相关《数码管显示常用外围设备接口电路.ppt(84页珍藏版)》请在三一文库上搜索。

1、第9章 常用外围设备接口电路,本章要点:,LED数码管及编码方式 静态显示方式及其典型应用电路 动态显示方式及其典型应用电路 虚拟I2C总线串行显示电路 键盘去抖动和连接、控制方式 独立式按键及其接口电路 矩阵式键盘及其接口电路 并行A/D ADC0809及其接口电路 串行A/D ADC0832及其接口电路 I2C串行A/D典型应用电路 DAC0832及其接口电路 I2C串行D/A典型应用电路 开关量驱动输出接口电路,艾香魏硷恐翱宙肺束静竟屡咐剃锈黍鸟娱协乡剑捉肌葱膝镀短宴势蒙圃扳数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,9-1 LED数码管显示接口,一、LED数码管,辕溪

2、疑擞帝蚜寒炒复族鸥帅杯辞陕冯敖腊福拭沮涸任靡技孤聘掇洛蹭己噪数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,LED显示器的扩展(结构),LED数码管的结构:共阳与共阴, 单片机系统扩展LED数码管时多用共阳LED: 共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。 通常每个段笔画要串一个数百欧姆的降压电阻。,公共阳极,h g f e d c b a,a,b,c,d,g,e,f,h,公共阴极,h g f e d c b a,a,b,c,d,g,e,f,h,h g f a,h g f a,高电平点亮,低

3、电平点亮,接高电平,接地,敦谋县赔设依吝伺悔馆蚀愉饱及洪畴晦亮寓菏烬杂絮荚蛾稚昭谤穗电荒馏数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,LED数码管的软件译码,八段LED数码管段代码编码表(连线不同可有多种表):,公共阳极,h g f e d c b a,a,b,c,d,g,e,f,h,公共阴极,h g f e d c b a,a,b,c,d,g,e,f,h,h g f a,h g f a,高电平点亮,低电平点亮,接高电平,接地,师遍估潞届监宦援丸姿修谊晌虱友碟扭溢矣硷坚抄噶衫誉坝葵病父电肆匡数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,LED数码管分类:,按其

4、内部结构可分为共阴型和共阳型;,按其外形尺寸有多种形式,使用较多的是0.5和0.8;,按显示颜色也有多种形式,主要有红色和绿色;,正向压降一般为1.52V,额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示,可加大脉冲电流,但一般不超过40mA。,按亮度强弱可分为超亮、高亮和普亮。,隶禁亡妆欺厉桩掠首沉碉硅佃涛著豹掏凑堆锨互续讯式挥叉氛寿兄宣费观数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,二、LED数码管编码方式,表9-1 共阴和共阳LED数码管几种八段编码表,墙敢濒慨相报本增辞盖壹援醒巫孙戈胁接碍号饿中淖菩述谊碱图喀桃奠满数码管显示常用外围设备接

5、口电路数码管显示常用外围设备接口电路,【例9-1】已知显示数存在内RAM 30H(高位)、31H中,试将其转换为5位共阴字段码(顺序),存在以30H(高位)为首址的内RAM中。, 从显示数中分离出显示的每一位数字 方法是将显示数除以十进制的权,显示数转换为显示字段码的步骤:, 将分离出的显示数字转换为显示字段码 方法是查表,鹿吼置狱俄胡角啥指噪稚慢力耳梨孤漫备笺偶棒上齐拯廖契舆祝匣丽根迫数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,SPRT: MOV R0,#30H ;置万位BCD码间址 MOV A,30H ;置被除数 MOV B,31H ; MOV R6,#27H ;置除数1

6、0000 = 2710H MOV R5,#10H ; LCALL SUM ;除以10000,万位商存30H,余数存A、B MOV R6,#03H ;置除数1000 = 03E8H MOV R5,#0E8H ; INC R0 ;指向千位商间址(31H) LCALL SUM ;除以1000,千位商存31H,余数存A、B MOV R6,#0 ;置除数100 MOV R5,#100 ; INC R0 ;指向百位商间址(32H) LCALL SUM ;除以100,百位商存32H,余数存A(B=0) MOV B,#10 ;置除数10 DIV AB ;除以10 INC R0 ;指向十位商间址(33H) MO

7、V R0,A ;十位商存33H XCH A,B ;读个位数 INC R0 ;指向个位间址(34H) MOV R0,A ;个位存34H RET ;,解:连续调用下列二个子程序即可。 分离显示数字子程序,说明:SUM是16位除以16位子程序:(A、B)(R6、R5)=商R0,余数(A、B)。(参阅例4-9),契昧九苑誊烯悬凛床坯堵秒阿垄慧敞嫉辙悔去评犯吁鬼议校儡旱零搅挣炸数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路, 转换显示字段码子程序,CHAG: MOV DPTR,#TAB ;置共阴字段码表首址 MOV R0,#30H ;置显示数据区首址 CGLP: MOV A,R0 ;取显示

8、数字 MOVC A,A+DPTR ;读相应显示字段码 MOV R0,A ;存显示字段码 INC R0 ;指向下一显示数字 CJNE R0,#35H,CGLP ;判5个显示数字转换完否?未完继续 RET ;转换完毕,结束 TAB: DB 3FH,06H,5BH,4FH,66H ;共阴字段码表 DB 6DH,7DH,07H,7FH,6FH ;,柒呜查较俏绢抖垣陷兑啸梳帚关还催开瞬递惟辆流簧背写呕腿盒报闪盆缚数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,三、静态显示方式及其典型应用电路, 动态显示方式,在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位

9、同时稳定显示。 特点:占用I/O端线少,电路较简单,编程较复杂,CPU要定时扫描刷新显示。一般适用于显示位数较多的场合。,LED数码管显示分类:静态显示方式和动态显示方式。, 静态显示方式,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新。 特点:编程较简单,但占用I/O口线多,一般适用于显示位数较少的场合。,锯璃陪桩缨承孺酪胜惜填喳巡鼎叭培超谱坐施古肋借蛹湿诵之扔瓮嘎气堤数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,LED显示器的扩展(显示方式),LED数码管的显示方式:静态与动态,动态显示特点: 有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂

10、。(有多个LED时尤为突出),静态显示特点: 无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。,静态显示: 各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。,动态显示: 各数码管在显示过程中轮流得到送显信号,与各数码管接口的I/O口线是共用的。,事蹈冒怀怜冬卿羌丫刽泌谱竹炮勒饵桓灭钙唁添扯喧廖署悦承渐嫌慧冗萧数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,1、并行扩展静态显示电路,娜老奉培库芽栏扫或况庭铁蘑醒渭偶郭吊狡答脾垂技囱旬册欧屯趟庄埃渊数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,【例9-2】按图9-3编制显

11、示子程序,显示数(255)存在内RAM 30H中。解:,DIR1: MOV A,30H ;读显示数 MOV B,#100 ;置除数 DIV AB ;产生百位显示数字 MOVC A,A+DPTR ;读百位显示符 MOV DPTR,#0DFFFH ;置74377(百位)地址 MOVX DPTR,A ;输出百位显示符 MOV A,B ;读余数 MOV B,#10 ;置除数 DIV AB ;产生十位显示数字 MOV DPTR,#TAB ;置共阳字段码表首址 MOVC A,A+DPTR ;读十位显示符 MOV DPTR,#0BFFFH ;置74377(十位)地址 MOVX DPTR,A ;输出十位显示符

12、 MOV A,B ;读个位显示数字 MOV DPTR,#TAB ;置共阳字段码表首址 MOVC A,A+DPTR ;读个位显示符 MOV DPTR,#7FFFH ;置74377(个位)地址 MOVX DPTR,A ;输出个位显示符 RET ; TAB: DB 0C0H,0F9H,0A4H,0B0H,99H;共阳字段码表 DB 92H,82H,0F8H,80H,90H;,对惩存王斡句允实约僳柜汀高孵励岩搐宠杠扩腊寓印坪虚哄郊揖惜菏骑蔑数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,2、串行扩展静态显示电路,祟润锦肮淤抚斟创傣齿诗缝冯汁奎胖栓姬苦睁巍焰酬晶芝睫宛敦身苏镇吁数码管显示常

13、用外围设备接口电路数码管显示常用外围设备接口电路,DIR2: MOV SCON,#00H ;置串口方式0 CLR ES ;串口禁中 SETB P1.0 ;“与”门开,允许TXD发移位脉冲 MOV SBUF,30H ;串行输出个位显示字段码 JNB TI,$ ;等待串行发送完毕 CLR TI ;清串行中断标志 MOV SBUF,31H ;串行输出十位显示字段码 JNB TI,$ ;等待串行发送完毕 CLR TI ;清串行中断标志 MOV SBUF,32H ;串行输出百位显示字段码 JNB TI,$ ;等待串行发送完毕 CLR TI ;清串行中断标志 CLR P1.0 ;“与”门关,禁止TXD发移

14、位脉冲 RET ;,【例9-3】按图9-4编制显示子程序,显示字段码已分别存在32H30H内RAM中。,解:,曹狂捆猩妆舆核糖吏房审扬枣磷茁拄殆仕姥术辊收窒疾郴单苏撼性锗确邻数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,要求:根据上图编写通过串行口和74LS164驱动共 阳LED数码管查表显示的子程序。 条件:系统有6个LED数码管,待显数据(00H09H)已放在35H30H单元中(分别对应十万位个位),,DSPLY:MOV DPTR, #TABLE ;共阳LED数码管译码表首址 MOV R0,#30H ;待显数据缓冲区的个位地址 REDO:MOV A, R0 ;通过R0实现寄

15、存器间接寻址 MOVC A, A+DPTR ;查表 MOV SBUF, A ;经串行口发送到74LS164 JNB TI, $ ;查询送完一个字节的第8位? CLR TI ;为下一字节发送作准备 INC R0 ;R0指向下一个数据缓冲单元 CJNE R0,#36H,REDO ;判断是否发完6个数? RET ;发完6个数就返回 TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳LED译码表 DB 92H, 82H, 0F8H, 80H,90H,镰示幢涌校尾咏赂在则坝介帧哗巳古缔党壮截倔外楼舰潜鸳绿隔萧将禹汕数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,3、B

16、CD码输出静态显示电路,CD4511是“BCD码七段共阴译码/驱动”IC; 4511是4线-7段锁存/译码/驱动电路,能将BCD码译成7段显示符输出。图中:4511 ABCD为09二进制数输入端(A是低位),abcdefg为显示段码输出端,LE为输入信号锁存控制(低电平有效),数码管为共阴数码管。,庚啪虾蚌购崇负胰栏勉棍刚送绅驱箕娄烬帧款欢星卵仔搜耗五炯晓山券焦数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,利用4511实现静态显示与一般静态显示电路不同,一是节省I0端线,段码输出只需4根;二是不需专用驱动电路,可直接输出;三是不需译码,直接输出二进制数,编程简单;缺点是只能显示

17、数字,不能显示各种符号。,安欣规彩乱丰牧希力衷赎谊陨侧炊偿按岗氮锅咸又睫攀胃氛谭沟激理伺礁数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,解:编程如下: DIR3: MOV P1,#11100000B ;选通个位 ORL P1,30H ;输出个位显示数 MOV P1,#11010000B ;选通十位 ORL P1,31H ;输出十位显示数 MOV P1,#10110000B ;选通百位 ORL P1,32H ;输出百位显示数 RET ;,【例9-4】按图9-5试编制显示子程序(小数点固定在第二位),已知显示数存在内RAM 30H32H中。,转化则虑堰痢措潮毛鼎迢瑰衰耕京脯釉烂革阮

18、瘪抹幻服运行赘农艺麦市辫数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,动态显示电路 连结形式: 显示各位的所有 相同字段线连在一起, 共8段,由一个8位 I/O口控制; 每一位的公共端 (共阳或共阴COM) 由另一个I/O口控制。,四、动态显示方式 及其典型应用电路,陆凑惧洲目膀刊量掖谗衡篡袄倪炬队需三冠缺寞总亨算串八莲瞄废皮富婚数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,LED数码管动态显示举例,P1.5 P1.4P1.3P1.2P1.2P1.0,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,7406 OC门 X 3,上拉电

19、阻14,+5V,AT89C51,工作原理:从P0口送段代码,P1口送位选信号。段码虽同时到达 6个LED,但一次仅一个LED被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。,共阴 数码管,位选线,段代码,吓狈陡横焕漠陷鉴嘶醚谋脏粮阔掖淘箍冤专依远檄吱嘲乔霖辑再履絮耶效数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,P1.5 P1.4P1.3P1.2P1.2P1.0,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,7406 OC门 X 3,+5V,AT89C51,位选线,段代码,要求:此处为共阴数码管,P

20、0口送段代码,P1口送位选信号。通过查表实现动态显示。 条件:待显数据(00H09H)已放在: 7FH7AH单元中(分别对应十万位个位) 说明:由于用了反相驱动器7406,要用共阳译码表。,共阴 数码管,上拉电阻14,塞酝痰肇涟呛筷搪斗盘维公谰熔机瞄冷宁钝谅民懂跑羔仕挖嚷夹碗鼻冉纪数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,7406 OC门 X 3,+5V,(7FH) (7EH) (7DH) (7CH) (7BH) (7AH) 十万 万位 千位 百位 十位 个位,数据缓冲区 / 显示缓冲区,P0口送段代码,P1口送位选信号。 待显数据已经放在: 7FH7AH单元(分别对应十万

21、位个位) 使用共阳译码表。,隧疫轰吩斜主蜘顷厨诸蛤鼎馈好疲尾裴落险砾撼惺颗泡腹歼酵侯熟构另珠数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,DIR: MOV DPTR, #DSEG ;数码管译码表首址 MOV R0,#7AH ;待显缓冲区个位地址 MOV R3,#01H ;个位的位选信号=01H LD1: MOV A, R0 ;通过R0间接寻址 MOVC A, A+DPTR ;查表 MOV P0, A ;字段码送到P0口 MOV P1,R3 ;字位选择送到P1口 LCALL DELY ;调延时1ms子程序 INC R0 ;R0 指向下一字节 MOV A,R3 JB ACC.5,L

22、D2 ;判是否发完6个数? RL A ;R1指向下一个位 MOV R3,A ;位选信号存回R1 SJMP LD1 ;跳去再显示下一个数 LD2: RET ;发完6个数就返回 DSEG:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表 DB 92H, 82H, 0F8H, 80H,90H,P0口送段代码,P1口送位选信号。 待显数据已经放在: 7FH7AH单元(分别对应十万位个位) 使用共阳译码表。,离竟神耙模脾插剩论稻泰咬淋颤集盟工必盎懊弘到苑硒档蓄蔬簿战瑶悉该数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,动态显示举例 (循环显示“8”的实验) 实验箱从P0口扩

23、展了两个8位的简单I/O口: 一个送段代码(字形状),地址是0DCH; 一个送位选信号(字位置),地址是0DDH。,ORG 0000H MOV R0,#0DCH ;指向字形口 MOV A, #80H ;送“8”的字形代码 MOVX R0,A ;输出字形代码 MOV R1,#0DDH ;指向字位口 MOV A,#20H ;从最高位开始LEDO:MOVX R1,A ;输出字位代码 ACALL DEYS ;调延时子程序 RR A ;右移一位 SJMP LEDO ;循环显示“8”,奴希栓氨汝馋赵恫噎血具险咒输粒拼顷戊骆攻杠阁劝九缔催帆绑蕉昌良妥数码管显示常用外围设备接口电路数码管显示常用外围设备接口电

24、路,1、共阴型8位动态显示电路,锻臂攀补囚阔怂纠伸诺豌斥火需藏值叶拈扫多叉艺堂插吹廊通彼苛解删贰数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,DIR4:MOV R2,#10 ;置循环扫描次数 MOV DPTR,#7FFFH ;置74377口地址 DLP1:ANL P1,#11111000B ;第0位先显示 MOV R0,#30H ;置显示字段码首址 DLP2:MOV A,R0 ;读显示字段码 MOVX DPTR,A ;输出显示字段码 LCALL DY2ms ;调用延时2ms子程序(参阅例4.13) INC R0 ;指向下一位字段码 INC P1 ;选通下一位显示 CJNE R0

25、,#38H,DLP2 ;判8位扫描显示完否?未完继续 DJNZ R2,DLP1 ;8位扫描显示完毕,判10次循环完否? CLR A ;10次循环完毕,显示暗 MOVX DPTR,A ; RET ;子程序返回,【例9-5】按图9-7,试编制循环扫描(10次)显示子程序,已知显示字段码存在以30H(低位)为首址的8字节内RAM中。 解:编程如下:,粘禾召陶沈叠矣昨熄绅酚秒伐炕吞辫岂尚促涎酿向栅瑞缴灾事信烫乎溉驯数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,2、共阳型3位动态显示电路,涯笼晕媳滑剂污爷劣战磐吵狈修紧吉百痹融振社涸蓖嫂全吝靡擅环者水亚数码管显示常用外围设备接口电路数码管

26、显示常用外围设备接口电路,DIR5: MOV DPTR,#0BFFFH ;置74377地址 MOV R2,#100 ;置循环显示次数 DIR50: SETB P1.2 ;百位停显示 MOV A,40H ;取个位字段码 MOVX DPTR,A ;输出个位字段码 CLR P1.0 ;个位显示 LCALL DY2ms ;调用延时2ms子程序(参阅例4.13) DIR51: SETB P1.0 ;个位停显示 MOV A,41H ;取十位字段码 MOVX DPTR,A ;输出十位字段码 CLR P1.1 ;十位显示 LCALL DY2ms ;延时2ms DIR52: SETB P1.1 ;十位停显示 M

27、OV A,42H ;取百位字段码 MOVX DPTR,A ;输出百位字段码 CLR P1.2 ;百位显示 LCALL DY2ms ;延时2ms DJNZ R2,DIR50 ;判循环显示结束否?未完继续 ORL P1,#00000111B ;3位灭显示 RET ;,【例9-6】根据图9-8电路,试编制3位动态扫描显示程序(循环100次),已知显示字段码存在以40H(低位)为首址的3字节内RAM中。 解:编程如下:,械桨墙骑迁熟酚蹲蠕钡凛认诌郝屎断则挽堤媒欺财绎剁裁阐篡职秋各背犊数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,1、SAA1064引脚功能,五、虚拟I2C总线串行显示电路

28、, VDD、VEE:电源、接地端。电源4.515V; P1P16:段驱动输出端。分为两个8位口: P1P8;P9P16。P8、P16为高位。口锁存器具有反相功能,置1时,端口输出0。 MX1、MX2:位码驱动端。静态显示驱动时,一片SAA1064可驱动二位LED数码管;动态显示驱动时,按图9-10连接方式,一片SAA1064可驱动四位LED数码管; SDA、SCL:I2C总线数据端、时钟端; CEXT:时钟振荡器外接电容,典型值2700pF ADR:地址引脚端。SAA1064引脚地址A1、A0采用ADR模拟电压比较编址。当ADR引脚电平为0、3VDD/8,5VDD/8、VDD时,相应引脚地址A

29、2、A1、A0 分别为000、001、010、011;,圆永忻怜告薯嵌森男痪复炕又附鹤好骆眠疹浙增兔织敲阀烙责粹羡练董虞数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,2、硬件电路设计,录撅忘粪曝烤垄兼诛床跺纶呻泳裤抨蔼余翔傻渔志码归笺嚎便面戌辐丑获数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路, 片内寄存器,3、片内可编程功能, 控制命令COM,CO: 静动态控制,C0=1,动态显示,动态显示时,data1、data2轮流从P8P1输出,data3、data4轮流从P16P9输出; C1: 显示位1、3亮暗选择,C1=1,选择亮; C2: 显示位2、4亮暗选择,C

30、2=1,选择亮; C3: 测试位,C3=1,所有段亮; C4、C5、C6: 驱动电流控制位,C4、C5、C6分别为1时,驱动电流分别为3mA、6mA、12mA;C4、C5、C6全为1时,驱动电流最大,可达21mA。,辟宦摧盏肤记委讹篇斑恋尉劝靴沏怠连厚敏蔬违诞咖总敲傀役李引望萧饰数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路, 写数据操作格式,红色部分由80C51发送,SAA1064接收; 黑色部分由SAA1064发送,80C51接收。 SLAW为写SAA1064寻址字节, 按图9-10所示连接电路:SAA1064(1)SLAW=01110000B; SAA1064(2)SLAW

31、=01110110B。 其中0111(D74)为SAA1064器件地址, D31为A2A1A0寻址字节, 末位D0为R/W; SADR为片内寄存器地址; COM为控制命令。,谓州咏洁铝悠弛栽繁鲁江殿淌靶碘殷枯咯蠢霞般判汀头渤乌撂盾懂帐活盆数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,解:,VSAA: MOV MTD,#00H ;置SAA1064控制命令寄存器COM片内子地址 MOV 31H,#01000111B;置控制命令字,动态显示,驱动电流12mA MOV NUMB,#6 ;置发送数据数:SADR+COM+data14=6 SAA1: MOV RO,#51H ;将51H54

32、H显示符数据移至32H35H LCALL MOVB ; MOV SLA,#01110000B;置SAA1064(1)写寻址字节SLAW LCALL WRNB ;发送给SAA1064(1) SAA2: MOV R0,#55H ;将55H58H显示符数据移至32H35H LCALL MOVB ; MOV SLA,#01110110B;置SAA1064(2)寻址字节SLAW LCALL WRNB ;发送给SAA1064(2) RET ; MOVB: MOV R1,#32H ;显示符数据移至32H35H子程序 MOVB1:MOV A,R0 ;读出 MOV R1,A ;存入 INC RO ;指向下一读出

33、单元 INC R1 ;指向下一存入单元 CJNE R1,#36H,MOVB1 ;判4个数据移完否?未完继续 RET ;,【例9-7】已知8位显示符(共阴编码)已依次存入内RAM 51H58H中,试按图9-10编程将其输入SAA1064(1),(2)动态显示,驱动电流为12mA。设VIIC软件包已装入ROM,VSDA.VSCL.SLA.NUMB.MTD.MRD均已按8.3.2软件包小结中协议定义。,4、程序设计,芒八鬼榴刊粉擒炽涕龙怨柳苗拯懒撞逢便坠追西富灰毖钡陀恐训千窒油力数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,1、按键开关去抖动问题,9-2 键盘接口,一、键盘接口概述,

34、键盘的抖动时间一般为510ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。,洱领扰躺伪服悲竖倘詹忍馅疹跌夹考冒醇撤赞募蔚匡度馈咸殴菱凤谊宏春数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路, 硬件去抖动,消除抖动不良后果的方法:,其中RC滤波电路去抖动电路简单实用,效果较好。, 软件去抖动 检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。,婿捏甭姨幕示套公摄木眺偷倘锤凯垮废劳技喀悼止乾百孺翟红启督钝冠材数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,2、按键连接方式 独立式按键 独立式按键是每个按键占用一根I/O端

35、线。 特点: 各按键相互独立,电路配置灵活; 按键数量较多时,I/O端线耗费较多,电路结构繁杂; 软件结构简单。 适用于按键数量较少的场合。 矩阵式键盘 I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。 特点: 占用I/O端线较少; 软件结构教复杂。 适用于按键较多的场合。,御荡风下剿杜治韶姥奢纂履找饥佃幸褐据诅鲤臻割杀赃苏稿稚骏描恨陵怪数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,3、键盘扫描控制方式 程序控制扫描方式 键处理程序固定在主程序的某个程序段。 特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输

36、入响应的及时性。 定时控制扫描方式 利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。 特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 中断控制方式 中断控制方式是利用外部中断源,响应键输入信号。 特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。,奢蹬待熔畴说容烷容街譬祁房抖砰腊呸俘币柒重杀桶溜跋搽赁坝辰戈忻尘数码管显示常用外围设备接口电路数码管

37、显示常用外围设备接口电路,1、按键直接与I/O口连接,二、独立式按键及其接口电路,恳墅羚艇齿塞聊常永袱疼汪赊渝介迂目洗锰亢锡遂宝充副游顶氰详诫隐途数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,【例9-8】按图9-13(a)、(b),试分别编制按键扫描子程序。 解:按图9-13(a)编程如下: KEYA:ORL P1,#07H ;置P1.0P1.2为输入态 MOV A,P1 ;读键值,键闭合相应位为0 CPL A ;取反,键闭合相应位为1 ANL A,#00000111B;屏蔽高5位,保留有键值信息的低3位 JZ GRET ;全0,无键闭合,返回 LCALL DY10ms ;非全

38、0,有键闭合,延时10ms,软件去抖动 MOV A,P1 ;重读键值,键闭合相应位为0 CPL A ;取反,键闭合相应位为1 ANL A,#00000111B;屏蔽高5位,保留有键值信息的低3位 JZ GRET ;全0,无键闭合,返回;非全0,确认有键闭合 JB Acc.0,KA0 ;转0#键功能程序 JB Acc.1,KA1 ;转1#键功能程序 JB Acc.2,KA2 ;转2#键功能程序 GRET:RET KA0: LCALL WORK0 ;执行0#键功能子程序 RET KA1: LCALL WORK1 ;执行1#键功能子程序 RET KA2: LCALL WORK2 ;执行2#键功能子程

39、序 RET,危芦囚派狰烘曾炎撇寞忧浪亭楞蒂篱古保三悼商欧向羊甄灌秘谅恰空蔑涣数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,按图9-13(b)编程如下: KEYB:ORL P1,#07H ;置P1.0P1.2为输入态 MOV A,P1 ;读键值,键闭合相应位为1 ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位 JZ GRET ;全0,无键闭合,返回 LCALL DY10ms ;非全0,有键闭合,延时10ms,软件去抖动 MOV A,P1 ;重读键值,键闭合相应位为1 ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位 JZ GRET ;

40、全0,无键闭合,返回;非全0,确认有键闭合 JB Acc.0,KB0 ;转0#键功能程序 JB Acc.1,KB1 ;转1#键功能程序 JB Acc.2,KB2 ;转2#键功能程序 GRET:RET KB0: LCALL WORK0 ;执行0#键功能子程序 RET KB1: LCALL WORK1 ;执行1#键功能子程序 RET KB2: LCALL WORK2 ;执行2#键功能子程序 RET,男挠禹种膊娜也黍酚闻剧惠轴临侵鸯冻突炯赚相燃病们揭均蝉卒格浅磕姿数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路, 按键与并行扩展I/O口连接,2、按键与扩展I/O口连接,戒亨屡啮栖揉怠蛆涪

41、骇铬秃更残剃推谁樟雾争八可痪却狠茁傣菏坐挛件疯数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,【例9-9】按图9-14,试编制按键扫描子程序,将键信号存入内RAM 30H。 解:编程如下: KEY99: MOV DPTR,#7FFFH ;置74373口地址 MOVX A,DPTR ;输入键信号(“0”有效) MOV 30H,A ;存键信号数据 RET ;,参阅8.2.4,图8-6,【例8-2】。, 按键与串行扩展I/O口连接,哟住卜放部遍慕尊抉恭厦魂倚娟教龋很农节钉沦茧蚁蔗自堤苇忠猿翟仪辟数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,三、矩阵式键盘及其接口电路,耍

42、捏熙奇坛炔残阅青祥桨含省樊泌钉柒仇抓元迸沃年虑虹殖珊阂闻歌糖憨数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,【例9-10】按图9-15及图9-16,试编制矩阵式键盘扫描程序。解:,KEY: MOV P1,#0F0H ;行线置低电平,列线置输入态 KEY0: MOV A,P1 ;读列线数据 CPL A ;数据取反,“1”有效 ANL A,#0F0H ;屏蔽行线,保留列线数据 MOV R1,A ;存列线数据(R1高4位) JZ GRET ;全0,无键按下,返回 KEY1: MOV P1,#0FH ;行线置输入态,列线置低电平 MOV A, P1 ;读行线数据 CPL A ;数据取反

43、,“1”有效 ANL A, #0FH ;屏蔽列线,保留行线数据 MOV R2,A ;存行线数据(R2低4位) JZ GRET ;全0,无键按下,返回 JBC F0,WAIT ;已有消抖标志,转 SETB F0 ;无消抖标志,置消抖标志 LCALL DY10ms ;调用10ms延时子程序(参阅例4.13),消抖 SJMP KEY0 ;重读行线列线数据 GRET: RET ;,敝让括酪吾旺棱润砰益牲兰勒匙询口颠霹订撞绞六趴郸狭跟叛璃独振组粟数码管显示常用外围设备接口电路数码管显示常用外围设备接口电路,WAIT: MOV A,P1 ;等待按键释放 CPL A ; ANL A,#0FH ; JNZ W

44、AIT ;按键未释放,继续等待 KEY2: MOV A,R1 ;取列线数据(高4位) MOV R1,#03H ;取列线编号初值 MOV R3,#03H ;置循环数 CLR C ; KEY3: RLC A ;依次左移入C中 JC KEY4 ;C=1,该列有键按下,(列线编号存R1) DEC R1 ;C=0,无键按下,修正列编号 DJNZ R3,KEY3 ;判循环结束否?未结束继续寻找有键按下的列线 KEY4: MOV A,R2 ;取行线数据(低4位) MOV R2,#00H ;置行线编号初值 MOV R3,#03H ;置循环数 CLR C ; KEY5: RRC A ;依次右移入C中 JC KEY6 ;C=1,该行有键按下,(行线编号存R2) INC R2 ;C=0,无键按下,修正行线编号 DJNZ R3,KEY5 ;判循环结束否?未结束继续寻找有键按下的行线,滑墟多淌相砍磐

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1