单片机原理及应用第9章常用外围设备接口电路课件

上传人:494895****12427 文档编号:241300493 上传时间:2024-06-16 格式:PPT 页数:84 大小:543.04KB
返回 下载 相关 举报
单片机原理及应用第9章常用外围设备接口电路课件_第1页
第1页 / 共84页
单片机原理及应用第9章常用外围设备接口电路课件_第2页
第2页 / 共84页
单片机原理及应用第9章常用外围设备接口电路课件_第3页
第3页 / 共84页
点击查看更多>>
资源描述
第第9 9章章 常用外围设备接口电路常用外围设备接口电路本章要点本章要点:LEDLED数码管及编码方式数码管及编码方式静态显示方式及其典型应用电路静态显示方式及其典型应用电路动态显示方式及其典型应用电路动态显示方式及其典型应用电路虚拟虚拟I I2 2C C总线串行显示电路总线串行显示电路键盘去抖动和连接、控制方式键盘去抖动和连接、控制方式独立式按键及其接口电路独立式按键及其接口电路矩阵式键盘及其接口电路矩阵式键盘及其接口电路并行并行A/D ADC0809A/D ADC0809及其接口电路及其接口电路串行串行A/D ADC0832A/D ADC0832及其接口电路及其接口电路I I2 2C C串行串行A/DA/D典型应用电路典型应用电路DAC0832DAC0832及其接口电路及其接口电路I I2 2C C串行串行D/AD/A典型应用电路典型应用电路开关量驱动输出接口电路开关量驱动输出接口电路教 材 张志良主编 单片机原理与控制技术(第2版)机械工业出版社第9章 常用外围设备接口电路本章要点:LED数码管及编码方式19-1 LED9-1 LED数码管显示接口数码管显示接口一、一、LEDLED数码管数码管9-1 LED数码管显示接口一、LED数码管2LEDLED显示器的扩展显示器的扩展(结构结构)LEDLED数码管的数码管的结构结构:共阳与共阴共阳与共阴 单片机系统扩展单片机系统扩展LEDLED数码管时数码管时多用多用共阳共阳LEDLED:共阳数码管每个段笔画是用低电平共阳数码管每个段笔画是用低电平(“0”)(“0”)点亮的点亮的,要求驱要求驱动功率很小;而共阴数码管段笔画是用高电平动功率很小;而共阴数码管段笔画是用高电平(“0”)(“0”)点亮点亮的,要求驱动功率较大。的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的通常每个段笔画要串一个数百欧姆的降压电阻降压电阻。公共公共阳阳极极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共公共阴阴极极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地LED显示器的扩展(结构)LED数码管的结构:3LEDLED数码管的软件译码数码管的软件译码八段八段LEDLED数码管数码管段代码编码表段代码编码表(连线不同可有多种表连线不同可有多种表):):公共阳极公共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共阴极公共阴极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地字形字形0123456789黑黑共阳共阳0C00F90A40B09992820F880900FF共阴共阴3F065B4F666D7D077F6F00LED数码管的软件译码八段LED数码管段代码编码表(连线不同4LEDLED数码管分类:数码管分类:按按其内部结构可分为其内部结构可分为共阴型共阴型和和共阳型共阳型;按按其外形尺寸有多种形式,使用较多的其外形尺寸有多种形式,使用较多的是是0.50.5和和0.80.8;按按显示颜色也有多种形式,主要有显示颜色也有多种形式,主要有红色红色和和绿色绿色;正向压降一般为正向压降一般为1.51.52V2V,额定电流为,额定电流为10mA10mA,最大电流为,最大电流为40mA40mA。静态显示静态显示时取时取10mA10mA为宜,为宜,动态扫描显示动态扫描显示,可加大脉冲电流,但,可加大脉冲电流,但一般不超过一般不超过40mA40mA。按按亮度强弱可分为亮度强弱可分为超亮超亮、高亮高亮和和普亮普亮。LED数码管分类:按其内部结构可分为共阴型和共阳型;按其5二、二、LEDLED数码管编码方式数码管编码方式 表表9-1 9-1 共阴和共阳共阴和共阳LEDLED数码管几种八段编码表数码管几种八段编码表 显示显示数字数字共阴顺序小数点暗共阴顺序小数点暗 共阴逆序小数点暗共阴逆序小数点暗 共阳顺序共阳顺序小数点亮小数点亮 共阳顺序共阳顺序小数点暗小数点暗 Dp g f e d c b aDp g f e d c b a1616进制进制 a b c d e f g Dpa b c d e f g Dp1616进制进制0 00 0 1 1 1 1 1 10 0 1 1 1 1 1 13FH3FH1 1 1 1 1 1 0 01 1 1 1 1 1 0 0FCHFCH40H40HC0HC0H1 10 0 0 0 0 1 1 00 0 0 0 0 1 1 006H06H0 1 1 0 0 0 0 00 1 1 0 0 0 0 060H60H79H79HF9HF9H2 20 1 0 1 1 0 1 10 1 0 1 1 0 1 15BH5BH1 1 0 1 1 0 1 01 1 0 1 1 0 1 0DAHDAH24H24HA4HA4H3 30 1 0 0 1 1 1 10 1 0 0 1 1 1 14FH4FH1 1 1 1 0 0 1 01 1 1 1 0 0 1 0F2HF2H30H30HB0HB0H4 40 1 1 0 0 1 1 00 1 1 0 0 1 1 066H66H0 1 1 0 0 1 1 00 1 1 0 0 1 1 066H66H19H19H99H99H5 50 1 1 0 1 1 0 10 1 1 0 1 1 0 16DH6DH1 0 1 1 0 1 1 01 0 1 1 0 1 1 0B6HB6H12H12H92H92H6 60 1 1 1 1 1 0 10 1 1 1 1 1 0 17DH7DH1 0 1 1 1 1 1 01 0 1 1 1 1 1 0BEHBEH02H02H82H82H7 70 0 0 0 0 1 1 10 0 0 0 0 1 1 107H07H1 1 1 0 0 0 0 01 1 1 0 0 0 0 0E0HE0H78H78HF8HF8H8 80 1 1 1 1 1 1 10 1 1 1 1 1 1 17FH7FH1 1 1 1 1 1 1 01 1 1 1 1 1 1 0FEHFEH00H00H80H80H9 90 1 1 0 1 1 1 10 1 1 0 1 1 1 16FH6FH1 1 1 1 0 1 1 01 1 1 1 0 1 1 0F6HF6H10H10H90H90H二、LED数码管编码方式 表9-1 共阴和共阳LED数码管6【例例9-19-1】已已知知显显示示数数存存在在内内RAM RAM 30H30H(高高位位)、31H31H中中,试试将将其其转转换换为为5 5位位共共阴阴字字段段码码(顺顺序序),存在以存在以30H30H(高位)为首址的内(高位)为首址的内RAMRAM中。中。从显示数中分离出显示的每一位数字从显示数中分离出显示的每一位数字 方法是将显示数除以十进制的权方法是将显示数除以十进制的权显示数显示数转换转换为显示字段码的为显示字段码的步骤步骤:将分离出的显示数字转换为显示字段将分离出的显示数字转换为显示字段码码 方法是查表方法是查表【例9-1】已知显示数存在内RAM 30H(高位)、31H中7SPRT:MOV R0,#30H SPRT:MOV R0,#30H ;置万位置万位BCDBCD码间址码间址 MOV A,30H MOV A,30H ;置被除数置被除数 MOV B,31H MOV B,31H ;MOV R6,#27H MOV R6,#27H ;置除数置除数10000=2710H10000=2710H MOV R5,#10H MOV R5,#10H ;LCALL SUM LCALL SUM ;除以除以10000,10000,万位商存万位商存30H,30H,余数存余数存A A、B B MOV R6,#03H MOV R6,#03H ;置除数置除数1000=03E8H1000=03E8H MOV R5,#0E8H ;MOV R5,#0E8H ;INC R0 INC R0 ;指向千位商间址指向千位商间址(31H)(31H)LCALL SUM LCALL SUM ;除以除以1000,1000,千位商存千位商存31H,31H,余数存余数存A A、B B MOV R6,#0 MOV R6,#0 ;置除数置除数100100 MOV R5,#100 MOV R5,#100 ;INC R0 INC R0 ;指向百位商间址指向百位商间址(32H)(32H)LCALL SUM LCALL SUM ;除以除以100,100,百位商存百位商存32H,32H,余数存余数存A(B=0)A(B=0)MOV B,#10 MOV B,#10 ;置除数置除数1010 DIV AB DIV AB ;除以除以1010 INC R0 INC R0 ;指向十位商间址指向十位商间址(33H)(33H)MOV R0,A MOV R0,A ;十位商存十位商存33H33H XCH A,B XCH A,B ;读个位数读个位数 INC R0 INC R0 ;指向个位间址指向个位间址(34H)(34H)MOV R0,A MOV R0,A ;个位存个位存34H34H RET RET ;解:连续调用下列二个子程序即可。解:连续调用下列二个子程序即可。分离显示数字子程序分离显示数字子程序说明说明:SUMSUM是是1616位除以位除以1616位子程序位子程序:(A:(A、B)(R6B)(R6、R5)=R5)=商商R0,R0,余数余数(A(A、B)B)。(参阅例参阅例4-9)4-9)SPRT:MOV R0,#30H ;置8 转换显示字段码子程序转换显示字段码子程序CHAG:MOV DPTR,#TAB CHAG:MOV DPTR,#TAB ;置共阴字段码表首址置共阴字段码表首址 MOV R0,#30H MOV R0,#30H ;置显示数据区首址置显示数据区首址CGLP:MOV A,R0 CGLP:MOV A,R0 ;取显示数字取显示数字 MOVC A,A+DPTR MOVC A,A+DPTR ;读相应显示字段码读相应显示字段码 MOV R0,A MOV R0,A ;存显示字段码存显示字段码 INC R0 INC R0 ;指向下一显示数字指向下一显示数字 CJNE R0,#35H,CGLP CJNE R0,#35H,CGLP ;判判5 5个显示数字转换完否个显示数字转换完否?未完继续未完继续 RET RET ;转换完毕转换完毕,结束结束TAB:DB 3FH,06H,5BH,4FH,66H TAB:DB 3FH,06H,5BH,4FH,66H;共阴字段码表共阴字段码表 DB 6DH,7DH,07H,7FH,6FH DB 6DH,7DH,07H,7FH,6FH;转换显示字段码子程序CHAG:MOV DPTR9三、三、静态显示方式及其典型应用电路静态显示方式及其典型应用电路 动态显示方式动态显示方式,在某一瞬时显示一位,依次循环,在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示。的是多位同时稳定显示。特点特点:占用:占用I/OI/O端线少,电路较简单,编程较复杂,端线少,电路较简单,编程较复杂,CPUCPU要定时扫描刷新显示。一般适用于显示位数较多要定时扫描刷新显示。一般适用于显示位数较多的场合。的场合。LEDLED数码管显示分类:静态显示方式和动态显示方式。数码管显示分类:静态显示方式和动态显示方式。静态显示方式静态显示方式,每一位字段码分别从,每一位字段码分别从I/OI/O控制口输控制口输出,保持不变直至出,保持不变直至CPUCPU刷新。刷新。特点特点:编程较简单,但占用:编程较简单,但占用I/OI/O口线多,一般适用口线多,一般适用于显示位数较少的场合。于显示位数较少的场合。三、静态显示方式及其典型应用电路 动态显示方式,在某一瞬时10LEDLED显示器的扩展显示器的扩展(显示方式显示方式)LEDLED数码管的数码管的显示方式显示方式:静态与动态静态与动态动态显示特点动态显示特点:有闪烁有闪烁,用,用元器件少元器件少,占占I/OI/O线少线少,必须扫描必须扫描,花费花费CPUCPU时间时间,编程复杂。编程复杂。(有多个有多个LEDLED时尤为突出)时尤为突出)静态显示特点静态显示特点:无闪烁无闪烁,用,用元器件多元器件多,占占I/OI/O线多线多,无须扫描无须扫描,节省节省CPUCPU时间时间,编程简单。编程简单。静态显示静态显示:各数码管在显示过程中各数码管在显示过程中持续持续得到送显信号,与各数码管接口得到送显信号,与各数码管接口的的I/OI/O口线口线是是专用专用的。的。动态显示动态显示:各数码管在显示过程中各数码管在显示过程中轮流轮流得到送显信号,与各数码管接口得到送显信号,与各数码管接口的的I/OI/O口线口线是是共用共用的。的。LED显示器的扩展(显示方式)LED数码管的显示方式:111 1、并行扩展静态显示电路并行扩展静态显示电路 1、并行扩展静态显示电路 12【例【例9-29-2】按图】按图9-39-3编制显示子程序,显示数(编制显示子程序,显示数(255255)存在)存在内内RAM 30HRAM 30H中。中。解:解:DIR1:MOV A,30H DIR1:MOV A,30H ;读显示数读显示数 MOV B,#100 MOV B,#100 ;置除数置除数 DIV AB DIV AB ;产生百位显示数字产生百位显示数字 MOVC A,A+DPTR MOVC A,A+DPTR ;读百位显示符读百位显示符 MOV DPTR,#0DFFFH MOV DPTR,#0DFFFH ;置置74377(74377(百位百位)地址地址 MOVX DPTR,A MOVX DPTR,A ;输出百位显示符输出百位显示符 MOV A,B MOV A,B ;读余数读余数 MOV B,#10 MOV B,#10 ;置除数置除数 DIV AB DIV AB ;产生十位显示数字产生十位显示数字 MOV DPTR,#TAB MOV DPTR,#TAB ;置共阳字段码表首址置共阳字段码表首址 MOVC A,A+DPTR MOVC A,A+DPTR ;读十位显示符读十位显示符 MOV DPTR,#0BFFFH MOV DPTR,#0BFFFH ;置置74377(74377(十位十位)地址地址 MOVX DPTR,A MOVX DPTR,A ;输出十位显示符输出十位显示符 MOV A,B MOV A,B ;读个位显示数字读个位显示数字 MOV DPTR,#TAB MOV DPTR,#TAB ;置共阳字段码表首址置共阳字段码表首址 MOVC A,A+DPTR MOVC A,A+DPTR ;读个位显示符读个位显示符 MOV DPTR,#7FFFH MOV DPTR,#7FFFH ;置置74377(74377(个位个位)地址地址 MOVX DPTR,A MOVX DPTR,A ;输出个位显示符输出个位显示符 RET RET ;TAB:DB 0C0H,0F9H,0A4H,0B0H,99HTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳字段码表共阳字段码表 DB 92H,82H,0F8H,80H,90H;DB 92H,82H,0F8H,80H,90H;【例9-2】按图9-3编制显示子程序,显示数(255)存在132、串行串行扩展静态显示电路扩展静态显示电路 2、串行扩展静态显示电路 14DIR2:MOV SCON,#00H DIR2:MOV SCON,#00H ;置串口方式置串口方式0 0 CLR ES CLR ES ;串口禁中串口禁中 SETB P1.0 SETB P1.0 ;“;“与与”门开门开,允许允许TXDTXD发移位脉冲发移位脉冲 MOV SBUF,30H MOV SBUF,30H ;串行输出个位显示字段码串行输出个位显示字段码 JNB TI,$JNB TI,$;等待串行发送完毕等待串行发送完毕 CLR TI CLR TI ;清串行中断标志清串行中断标志 MOV SBUF,31H MOV SBUF,31H ;串行输出十位显示字段码串行输出十位显示字段码 JNB TI,$JNB TI,$;等待串行发送完毕等待串行发送完毕 CLR TI CLR TI ;清串行中断标志清串行中断标志 MOV SBUF,32H MOV SBUF,32H ;串行输出百位显示字段码串行输出百位显示字段码 JNB TI,$JNB TI,$;等待串行发送完毕等待串行发送完毕 CLR TI CLR TI ;清串行中断标志清串行中断标志 CLR P1.0 CLR P1.0 ;“;“与与”门关门关,禁止禁止TXDTXD发移位脉冲发移位脉冲 RET RET ;【例例9-39-3】按图】按图9-49-4编制显示子程序,显示字段码已分别存编制显示子程序,显示字段码已分别存在在32H32H30H30H内内RAMRAM中。中。解:解:DIR2:MOV SCON,#00H ;置15要求:要求:根据上图编写通过串行口和根据上图编写通过串行口和74LS16474LS164驱动驱动共共 阳阳LEDLED数码管数码管查表显示的子程序。查表显示的子程序。条件:条件:系统有系统有6 6个个LEDLED数码管数码管,待显数据待显数据(00H09H)(00H09H)已放在已放在35H30H35H30H单元中单元中(分别对应分别对应十万位十万位个位个位),DSPLYDSPLY:MOV DPTR,#TABLE:MOV DPTR,#TABLE;共阳共阳LEDLED数码管译码数码管译码表首址表首址 MOV R0 MOV R0,#30H#30H ;待显数据缓冲区的待显数据缓冲区的个位个位地址地址REDOREDO:MOV AMOV A,R0 R0 ;通过通过R0R0实现寄存器实现寄存器间接寻址间接寻址 MOVC A,A+DPTR MOVC A,A+DPTR ;查表查表 MOV SBUF,A MOV SBUF,A ;经串行口经串行口发送发送到到74LS16474LS164 JNB TI,$JNB TI,$;查询查询送完一个字节的第送完一个字节的第8 8位?位?CLR TI CLR TI ;为下一字节发送为下一字节发送作准备作准备 INC R0 INC R0 ;R0;R0指向下一个指向下一个数据缓冲单元数据缓冲单元 CJNE R0 CJNE R0,#36H#36H,REDO REDO ;判断判断是否发完是否发完6 6个数?个数?RET RET ;发完发完6 6个数就个数就返回返回TABLETABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳共阳LEDLED译码表译码表 DB 92H,82H,0F8H,80H,90H DB 92H,82H,0F8H,80H,90H要求:根据上图编写通过串行口和74LS164驱动共DSPLY163 3、BCDBCD码输出静态显示电路码输出静态显示电路 CD4511CD4511是是“BCDBCD码码七段共阴译码七段共阴译码/驱动驱动”IC;”IC;4511是是4线线-7段锁存段锁存/译码译码/驱动电路,能将驱动电路,能将BCD码译成码译成7段显段显示符输出。图中:示符输出。图中:4511 ABCD为为09二进制数输入端二进制数输入端(A是低位是低位),abcdefgabcdefg为显示段码输出端,为显示段码输出端,LELE为输入信号锁存为输入信号锁存控制控制(低电平有效低电平有效),数码管为共阴数,数码管为共阴数码管。码管。3、BCD码输出静态显示电路 CD4511是“BCD码七段17 利用利用45114511实现静态显示与一般静态显示电路实现静态显示与一般静态显示电路不同,不同,一是一是节省节省I I0 0端线,段码输出只需端线,段码输出只需4 4根;根;二二是是不需专用驱动电路,可直接输出;不需专用驱动电路,可直接输出;三是三是不需译不需译码,直接输出二进制数,编程简单;码,直接输出二进制数,编程简单;缺点是缺点是只能只能显示数字,不能显示各种符号。显示数字,不能显示各种符号。利用4511实现静态显示与一般静态显示电路不同,一是18解:编程如下:解:编程如下:DIR3:MOV P1,#111DIR3:MOV P1,#1110 00000B 0000B;选通个位选通个位 ORL P1,30H ORL P1,30H ;输出个位显示数输出个位显示数 MOV P1,#11 MOV P1,#110 010000B 10000B;选通十位选通十位 ORL P1,31H ORL P1,31H ;输出十位显示数输出十位显示数 MOV P1,#1 MOV P1,#10 0110000B 110000B;选通百位选通百位 ORL P1,32H ORL P1,32H ;输出百位显示数输出百位显示数 RET RET ;【例【例9-49-4】按图】按图9-59-5试编制显示子程序(小数点固试编制显示子程序(小数点固定在第二位),已知显示数存在内定在第二位),已知显示数存在内RAM 30HRAM 30H32H32H中。中。解:编程如下:【例9-4】按图9-5试编制显示子程序(小数点19动态显示电路动态显示电路连结形式:连结形式:显示各位的所有显示各位的所有相同字段线连在一起,相同字段线连在一起,共共8 8段,由一个段,由一个8 8位位I/OI/O口控制;口控制;每一位的公共端每一位的公共端(共阳或共阴(共阳或共阴COMCOM)由另一个由另一个I/OI/O口控制。口控制。四、四、动态显示方式动态显示方式及其典型应用电路及其典型应用电路动态显示电路四、动态显示方式20LEDLED数码管数码管动态动态显示举例显示举例P1.5 P1.5 P1.4P1.4P1.3P1.3P1.2P1.2P1.2P1.2P1.0P1.0P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0.0P0.07406 OC7406 OC门门 X 3 X 3上拉上拉电阻电阻1414+5V+5VAT89C51工作原理工作原理:从从P0P0口送段代码口送段代码,P1,P1口送位选信号口送位选信号。段码虽同时。段码虽同时到达到达 6 6个个LEDLED,但,但一次仅一个一次仅一个LEDLED被选中被选中。利用。利用“视觉暂留视觉暂留”,每送一个字符并选中相应位线,延时一会儿,每送一个字符并选中相应位线,延时一会儿,再送再送/选选下一个下一个循环扫描循环扫描即可。即可。共阴共阴 数码管数码管位位选选线线段段代代码码LED数码管动态显示举例P1.5 P1.4P1.3P1.2P21P1.5 P1.5 P1.4P1.4P1.3P1.3P1.2P1.2P1.2P1.2P1.0P1.0P0.7 P0.7 P0.6 P0.6 P0.5 P0.5 P0.4 P0.4 P0.3 P0.3 P0.2 P0.2 P0.1 P0.1 P0.0P0.07406 OC7406 OC门门 X 3 X 3+5V+5VAT89C51位位选选线线段段代代码码要求要求:此处为共阴数码管,此处为共阴数码管,P0P0口送段代码,口送段代码,P1P1口送位选信号。口送位选信号。通过查表实现动态显示。通过查表实现动态显示。条件条件:待显数据待显数据(00H09H)(00H09H)已放在已放在:7FH7AH7FH7AH单元中单元中(分别对分别对应应十万位十万位个位个位)说明说明:由于用了由于用了反相驱动器反相驱动器74067406,要用共阳译码表。,要用共阳译码表。共阴共阴 数码管数码管上拉上拉电阻电阻1414P1.5 P1.4P1.3P1.2P1.2P1.0P0.7 227406 OC7406 OC门门 X 3 X 3+5V+5V(7FH)(7EH)(7DH)(7CH)(7BH)(7AH)十万十万 万位万位 千位千位 百位百位 十位十位 个个位位数据缓冲区数据缓冲区/显示缓冲区显示缓冲区P0P0口口送段送段代码,代码,P1P1口口送位选送位选信号。信号。待显数据待显数据已经放在已经放在:7FH7AH7FH7AH单元单元(分别分别对应对应十万十万位位个位个位)使用共阳使用共阳译码表译码表。7406 OC门 X 3+5V(7FH)(7EH)23DIRDIR:MOV DPTR,:MOV DPTR,#DSEG#DSEG ;数码管译码数码管译码表首址表首址 MOV R0 MOV R0,#7AH#7AH ;待显缓冲区待显缓冲区个位个位地址地址 MOV R3 MOV R3,#01H#01H ;个位的个位的位选信号位选信号=01H=01HLD1LD1:MOV A MOV A,R0 R0 ;通过通过R0R0间接寻址间接寻址 MOVC A,A+DPTRMOVC A,A+DPTR ;查表查表 MOV P0,A MOV P0,A ;字段码送到字段码送到P0P0口口 MOV P1 MOV P1,R3 R3 ;字位选择送到字位选择送到P1P1口口 LCALL DELYLCALL DELY ;调延时调延时1ms1ms子程序子程序 INC R0 INC R0 ;R0;R0 指向下一字节指向下一字节 MOV A MOV A,R3R3 JB ACC.5 JB ACC.5,LD2LD2 ;判判是否发完是否发完6 6个数?个数?RL A RL A ;R1;R1指向下一个位指向下一个位 MOV R3 MOV R3,A A ;位选信号存回位选信号存回R1R1 SJMP SJMP LD1LD1 ;跳去再显示下一个数跳去再显示下一个数LD2LD2:RET RET ;发完发完6 6个数就个数就返回返回DSEGDSEG:DB 0C0H,0F9H,0A4H,0B0H,99HDB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表共阳译码表 DB 92H,82H,0F8H,DB 92H,82H,0F8H,80H80H,90H,90HP0P0口口送段送段代码,代码,P1P1口口送位选送位选信号。信号。待显数据待显数据已经放在已经放在:7FH7AH7FH7AH单元单元(分别分别对应对应十万十万位位个位个位)使用共阳使用共阳译码表译码表。DIR:MOV DPTR,#DSEG ;数码管译24动态动态显示举例显示举例 (循环显示循环显示“8”“8”的实验的实验)实验箱实验箱从从P0P0口扩展了两个口扩展了两个8 8位的简单位的简单I/OI/O口口:一个送段代码一个送段代码(字形状字形状),地址是,地址是0DCH0DCH;一个送位选信号一个送位选信号(字位置字位置),地址是,地址是0DDH0DDH。ORG 0000HORG 0000H MOV R0,#MOV R0,#0DCH0DCH ;指向指向字形口字形口 MOV A,#80H ;MOV A,#80H ;送送“8”“8”的字形代码的字形代码 MOVX MOVX R0,AR0,A ;输出字形代码输出字形代码 MOV R1,#MOV R1,#0DDH0DDH ;指向指向字位口字位口 MOV A,#20H ;MOV A,#20H ;从最高位开始从最高位开始LEDO:LEDO:MOVX MOVX R1,AR1,A ;输出字位代码输出字位代码 ACALL DEYS ;ACALL DEYS ;调延时子程序调延时子程序 RR A ;RR A ;右移一位右移一位 SJMP LEDO ;SJMP LEDO ;循环显示循环显示“8”“8”动态显示举例(循环显示“8”的实验)ORG 0251 1、共阴型共阴型8 8位动态显示电路位动态显示电路1、共阴型8位动态显示电路26DIR4:MOV R2,#10 DIR4:MOV R2,#10 ;置循环扫描次数置循环扫描次数 MOV DPTR,#7FFFH MOV DPTR,#7FFFH ;置置7437774377口地址口地址DLP1:ANL P1,#11111000B DLP1:ANL P1,#11111000B;第第0 0位先显示位先显示 MOV R0,#30H MOV R0,#30H ;置显示字段码首址置显示字段码首址DLP2:MOV A,R0 DLP2:MOV A,R0 ;读显示字段码读显示字段码 MOVX DPTR,A MOVX DPTR,A ;输出显示字段码输出显示字段码 LCALL DY2ms LCALL DY2ms ;调用延时调用延时2ms2ms子程序子程序(参阅例参阅例4.13)4.13)INC R0 INC R0 ;指向下一位字段码指向下一位字段码 INC P1 INC P1 ;选通下一位显示选通下一位显示 CJNE R0,#38H,DLP2 CJNE R0,#38H,DLP2 ;判判8 8位扫描显示完否位扫描显示完否?未完继续未完继续 DJNZ R2,DLP1 DJNZ R2,DLP1 ;8;8位扫描显示完毕位扫描显示完毕,判判1010次循环完否次循环完否?CLR A CLR A ;10;10次循环完毕次循环完毕,显示暗显示暗 MOVX DPTR,A MOVX DPTR,A ;RET RET ;子程序返回子程序返回【例【例9-59-5】按图】按图9-79-7,试编制循环扫描(,试编制循环扫描(1010次)显示子程序,已次)显示子程序,已知显示字段码存在以知显示字段码存在以30H30H(低位)为首址的(低位)为首址的8 8字节内字节内RAMRAM中。中。解:编程如下:解:编程如下:DIR4:MOV R2,#10 ;置循环272、共阳型共阳型3 3位动态显示电路位动态显示电路2、共阳型3位动态显示电路28DIR5:MOV DPTR,#0BFFFH DIR5:MOV DPTR,#0BFFFH ;置置7437774377地址地址 MOV R2,#100 MOV R2,#100 ;置循环显示次数置循环显示次数DIR50:SETB P1.2 DIR50:SETB P1.2 ;百位停显示百位停显示 MOV A,40H MOV A,40H ;取个位字段码取个位字段码 MOVX DPTR,A MOVX DPTR,A ;输出个位字段码输出个位字段码 CLR P1.0 CLR P1.0 ;个位显示个位显示 LCALL DY2ms LCALL DY2ms ;调用延时调用延时2ms2ms子程序子程序(参阅例参阅例4.13)4.13)DIR51:SETB P1.0 DIR51:SETB P1.0 ;个位停显示个位停显示 MOV A,41H MOV A,41H ;取十位字段码取十位字段码 MOVX DPTR,A MOVX DPTR,A ;输出十位字段码输出十位字段码 CLR P1.1 CLR P1.1 ;十位显示十位显示 LCALL DY2ms LCALL DY2ms ;延时延时2ms2msDIR52:SETB P1.1 DIR52:SETB P1.1 ;十位停显示十位停显示 MOV A,42H MOV A,42H ;取百位字段码取百位字段码 MOVX DPTR,A MOVX DPTR,A ;输出百位字段码输出百位字段码 CLR P1.2 CLR P1.2 ;百位显示百位显示 LCALL DY2ms LCALL DY2ms ;延时延时2ms2ms DJNZ R2,DIR50 DJNZ R2,DIR50 ;判循环显示结束否判循环显示结束否?未完继续未完继续 ORL P1,#00000111B ORL P1,#00000111B;3;3位灭显示位灭显示 RET RET ;【例【例9-69-6】根据图】根据图9-89-8电路,试编制电路,试编制3 3位动态扫描显示程序位动态扫描显示程序(循环循环100100次次),),已知显示字段码存在以已知显示字段码存在以40H(40H(低位低位)为首址的为首址的3 3字节内字节内RAMRAM中。中。解:编程如下:解:编程如下:DIR5:MOV DPTR,#0BFFFH ;置291、SAA1064SAA1064引脚功能引脚功能 五、五、虚拟虚拟I I2 2C C总线串行显示电路总线串行显示电路 V VDDDD、V VEEEE:电源、接地端。电源:电源、接地端。电源4.54.515V15V;P1P1P16P16:段驱动输出端。分为两个:段驱动输出端。分为两个8 8位口:位口:P1P1P8P8;P9P9P16P16。P8P8、P16P16为为高高位位。口口锁锁存存器器具具有有反反相相功功能能,置置1 1时,端口输出时,端口输出0 0。MX1MX1、MX2MX2:位位码码驱驱动动端端。静静态态显显示示驱驱动动时时,一一片片SAA1064SAA1064可可驱驱动动二二位位LEDLED数数码码管管;动动态态显显示示驱驱动动时时,按按图图9-109-10连连接接方方式式,一片一片SAA1064SAA1064可驱动四位可驱动四位LEDLED数码管;数码管;SDASDA、SCLSCL:I I2 2C C总线数据端、时钟端;总线数据端、时钟端;C CEXTEXT:时钟振荡器外接电容,典型值:时钟振荡器外接电容,典型值2700pF2700pF ADRADR:地地址址引引脚脚端端。SAA1064SAA1064引引脚脚地地址址A1A1、A0A0采采用用ADRADR模模拟拟电电压压比比较较编编址址。当当ADRADR引引脚脚电电平平为为0 0、3VDD/83VDD/8,5VDD/85VDD/8、VDDVDD时时,相应引脚地址相应引脚地址A2A2、A1A1、A0 A0 分别为分别为000000、001001、010010、011011;1、SAA1064引脚功能 五、虚拟I2C总线串行显示电路302 2、硬件电路设计硬件电路设计 2、硬件电路设计 31 片内寄存器片内寄存器 符号符号COMCOMdata1data1data2data2data3data3data4data4装载内容装载内容控制命令控制命令显示段码显示段码1 1显示段码显示段码2 2显示段码显示段码3 3显示段码显示段码4 4片内地址片内地址00H00H01H01H02H02H03H03H04H04H3 3、片内可编程功能片内可编程功能 控制命令控制命令COMCOMCOMCOMD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D000H00HC6C6C5C5C4C4C3C3C2C2C1C1C0C0COCO:静动态控制,静动态控制,C0=1C0=1,动态显示,动态显示时,动态显示,动态显示时,data1data1、data2data2轮流从轮流从P8P8P1P1输出,输出,data3data3、data4data4轮流从轮流从P16P16P9P9输出;输出;C1C1:显示位显示位1 1、3 3亮暗选择,亮暗选择,C1=1C1=1,选择亮;,选择亮;C2C2:显示位显示位2 2、4 4亮暗选择,亮暗选择,C2=1C2=1,选择亮;,选择亮;C3C3:测试位,测试位,C3=1C3=1,所有段亮;,所有段亮;C4C4、C5C5、C6C6:驱动电流控制位,驱动电流控制位,C4C4、C5C5、C6C6分别为分别为1 1时,驱动时,驱动电流分别为电流分别为3mA3mA、6mA6mA、12mA12mA;C4C4、C5C5、C6C6全为全为1 1时,驱动电流时,驱动电流最大,可达最大,可达21mA21mA。片内寄存器 符号COMdata1data2data3da32 写数据操作格式写数据操作格式 S SSLASLAW WA ASADRSADRA ACOMCOMA Adata1data1A Adata2data2A Adata3data3A Adata4data4A AP P 红色红色部分由部分由80C5180C51发送,发送,SAA1064SAA1064接收;接收;黑色部分由黑色部分由SAA1064SAA1064发送,发送,80C5180C51接收。接收。SLASLAW W为写为写SAA1064SAA1064寻址字节,寻址字节,按图按图9-109-10所示连接电路所示连接电路:SAA1064:SAA1064(1 1)SLASLAW W=01110000B;=01110000B;SAA1064 SAA1064(2 2)SLASLAW W=01110110B=01110110B。其中其中01110111(D7D74 4)为)为SAA1064SAA1064器件地址,器件地址,D3 D31 1为为A2A1A0A2A1A0寻址字节,寻址字节,末位末位D0D0为为R/WR/W;SADRSADR为片内寄存器地址;为片内寄存器地址;COMCOM为控制命令。为控制命令。写数据操作格式 SSLAWASADRACOMAdata133解解:VSAA:MOV MTD,#00H ;VSAA:MOV MTD,#00H ;置置SAA1064SAA1064控制命令寄存器控制命令寄存器COMCOM片内子地址片内子地址 MOV 31H,#01000111B;MOV 31H,#01000111B;置控制命令字置控制命令字,动态显示动态显示,驱动电流驱动电流12mA12mA MOV NUMB,#6 ;MOV NUMB,#6 ;置发送数据数置发送数据数:SADR+COM+data1:SADR+COM+data14=64=6SAA1:MOV RO,#51H ;SAA1:MOV RO,#51H ;将将51H51H54H54H显示符数据移至显示符数据移至32H32H35H35H LCALL MOVB ;LCALL MOVB ;MOV SLA,#01110000B;MOV SLA,#01110000B;置置SAA1064(1)SAA1064(1)写寻址字节写寻址字节SLASLAW W LCALL WRNB ;LCALL WRNB ;发送给发送给SAA1064(1)SAA1064(1)SAA2:MOV R0,#55H ;SAA2:MOV R0,#55H ;将将55H55H58H58H显示符数据移至显示符数据移至32H32H35H35H LCALL MOVB ;LCALL MOVB ;MOV SLA,#01110110B;MOV SLA,#01110110B;置置SAA1064(2)SAA1064(2)寻址字节寻址字节SLASLAW W LCALL WRNB ;LCALL WRNB ;发送给发送给SAA1064(2)SAA1064(2)RET ;RET ;MOVB:MOV R1,#32H ;MOVB:MOV R1,#32H ;显示符数据移至显示符数据移至32H32H35H35H子程序子程序MOVB1:MOV A,R0 ;MOVB1:MOV A,R0 ;读出读出 MOV R1,A ;MOV R1,A ;存入存入 INC RO ;INC RO ;指向下一读出单元指向下一读出单元 INC R1 ;INC R1 ;指向下一存入单元指向下一存入单元 CJNE R1,#36H,MOVB1;CJNE R1,#36H,MOVB1;判判4 4个数据移完否个数据移完否?未完继续未完继续 RET ;RET ;【例例9-79-7】已知】已知8 8位显示符位显示符(共阴编码共阴编码)已依次存入内已依次存入内RAM 51HRAM 51H58H58H中中,试按图试按图9-109-10编程将其输入编程将其输入SAA1064(1),(2)SAA1064(1),(2)动态显示动态显示,驱动电流为驱动电流为12mA12mA。设。设VIICVIIC软件包已装入软件包已装入ROM,VSDA.VSCL.SLA.NUMB.MTD.MRDROM,VSDA.VSCL.SLA.NUMB.MTD.MRD均已按均已按8.3.28.3.2软件包小结中协议定义。软件包小结中协议定义。4 4、程序设计程序设计解:VSAA:MOV MTD,#00H ;341 1、按键开关去抖动问题按键开关去抖动问题 9-2 9-2 键盘接口键盘接口一、一、键盘接口概述键盘接口概述键盘的抖动时间一般为键盘的抖动时间一般为5 510ms10ms,抖动现象会引起抖动现象会引起CPUCPU对一次键操作进行多次处理,从而可能产生错误对一次键操作进行多次处理,从而可能产生错误。1、按键开关去抖动问题 9-2 键盘接口一、键盘接口概述35 硬件去抖动硬件去抖动 消除抖动不良后果的方法:消除抖动不良后果的方法:其中其中RCRC滤波电路去抖动电路简单实用,效果较好滤波电路去抖动电路简单实用,效果较好。软件去抖动软件去抖动 检测到按键按下后,执行检测到按键按下后,执行延时延时10ms10ms子程序后再确认子程序后再确认该键该键是否确实按下,消除抖动影响。是否确实按下,消除抖动影响。硬件去抖动 消除抖动不良后果的方法:其中RC滤波电路去抖362 2、按键连接方式按键连接方式 独立式按键独立式按键 独立式按键是每个按键占用一根独立式按键是每个按键占用一根I/OI/O端线端线。特点:特点:各按键相互独立,电路配置灵活;各按键相互独立,电路配置灵活;按键数量较多时,按键数量较多时,I/OI/O端线耗费较多,电路结构繁杂;端线耗费较多,电路结构繁杂;软件结构简单。软件结构简单。适用于按键数量较少的场合适用于按键数量较少的场合。矩阵式键盘矩阵式键盘 I/OI/O端线分为行线和列线,按键跨接在行线和列线上,按键端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路按下时,行线与列线发生短路。特点:特点:占用占用I/OI/O端线较少;端线较少;软件结构教复杂。软件结构教复杂。适用于按键较多的场合适用于按键较多的场合。2、按键连接方式 独立式按键 独立式按键是每个373 3、键盘扫描控制方式键盘扫描控制方式 程序控制扫描方式程序控制扫描方式 键处理程序固定在主程序的某个程序段。键处理程序固定在主程序的某个程序段。特点特点:对:对CPUCPU工作影响小,但应考虑键盘处理程序的运行间隔工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。周期不能太长,否则会影响对键输入响应的及时性。定时控制扫描方式定时控制扫描方式 利利用用定定时时/计计数数器器每每隔隔一一段段时时间间产产生生定定时时中中断断,CPUCPU响响应应中断后对键盘进行扫描。中断后对键盘进行扫描。特点特点:与程序控制扫描方式的区别是,在扫描间隔时间内,:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用前者用CPUCPU工作程序填充,后者用定时工作程序填充,后者用定时/计数器定时控制。定时计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。入响应的及时性。中断控制方式中断控制方式 中断控制方式是利用外部中断源,响应键输入信号。中断控制方式是利用外部中断源,响应键输入信号。特点特点:克服了前两种控制方式可能产生的空扫描和不能及时:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高响应键输入的缺点,既能及时处理键输入,又能提高CPUCPU运行效运行效率,但要占用一个宝贵的中断资源。率,但要占用一个宝贵的中断资源。3、键盘扫描控制方式381 1、按键直接与按键直接与I/OI/O口连接口连接 二、二、独立式按键及其接口电路独立式按键及其接口电路1、按键直接与I/O口连接 二、独立式按键及其接口电路39【例【例9-89-8】按图】按图9-13(a)9-13(a)、(b)(b),试分别编制按键扫描子程序。,试分别编制按键扫描子程序。解:按图解:按图9-13(a)9-13(a)编程如下:编程如下:KEYA:ORL P1,#07H KEYA:ORL P1,#07H ;置置P1.0P1.0P1.2P1.2为输入态为输入态 MOV A,P1 MOV A,P1 ;读键值读键值,键闭合相应位为键闭合相应位为0 0 CPL A CPL A ;取反取反,键闭合相应位为键闭合相应位为1 1 ANL A,#00000111B ANL A,#00000111B;屏蔽高屏蔽高5 5位位,保留有键值信息的低保留有键值信息的低3 3位位 JZ GRET JZ GRET ;全全0,0,无键闭合无键闭合,返回返回 LCALL DY10ms LCALL DY10ms ;非全非全0,0,有键闭合有键闭合,延时延时10ms,10ms,软件去抖动软件去抖动 MOV A,P1 MOV A,P1 ;重读键值重读键值,键闭合相应位为键闭合相应位为0 0 CPL A CPL A ;取反取反,键闭合相应位为键闭合相应位为1 1 ANL A,#00000111B ANL A,#00000111B;屏蔽高屏蔽高5 5位位,保留有键值信息的低保留有键值信息的低3 3位位 JZ GRET JZ GRET ;全全0,0,无键闭合无键闭合,返回返回;非全非全0,0,确认有键闭合确认有键闭合 JB Acc.0,KA0 JB Acc.0,KA0 ;转转0#0#键功能程序键功能程序 JB Acc.1,KA1 JB Acc.1,KA1 ;转转1#1#键功能程序键功能程序 JB Acc.2,KA2 JB Acc.2,KA2 ;转转2#2#键功能程序键功能程序GRET:RETGRET:RETKA0:LCALL WORK0 KA0:LCALL WORK0 ;执行执行0#0#键功能子程序键功能子程序 RET RETKA1:LCALL WORK1 KA1:LCALL WORK1 ;执行执行1#1#键功能子程序键功能子程序 RET RETKA2:LCALL WORK2 KA2:LCALL WORK2 ;执行执行2#2#键功能子程序键功能子程序 RET RET【例9-8】按图9-13(a)、(b),试分别编制按键扫描子40按图按图9-13(b)9-13(b)编程如下编程如下:KEYB:ORL P1,#07H KEYB:ORL P1,#07H ;置置P1.0P1.0P1.2P1.2为输入态为输入态 MOV A,P1 MOV A,P1 ;读键值读键值,键闭合相应位为键闭合相应位为1 1 ANL A,#00000111B ANL A,#00000111B ;屏蔽高屏蔽高5 5位位,保留有键值信息的低保留有键值信息的低3 3位位 JZ GRET JZ GRET ;全全0,0,无键闭合无键闭合,返回返回 LCALL DY10ms LCALL DY10ms ;非全非全0,0,有键闭合有键闭合,延时延时10ms,10ms,软件去抖动软件去抖动 MOV A,P1 MOV A,P1 ;重读键值重读键值,键闭合相应位为键闭合相应位为1 1 ANL A,#00000111B ANL A,#00000111B ;屏蔽高屏蔽高5 5位位,保留有键值信息的低保留有键值信息的低3 3位位 JZ GRET JZ GRET ;全全0,0,无键闭合无键闭合,返回返回;非全非全0,0,确认有键闭合确认有键闭合 JB Acc.0,KB0 JB Acc.0,KB0 ;转转0#0#键功能程序键功能程序 JB Acc.1,KB1 JB Acc.1,KB1 ;转转1#1#键功能程序键功能程序 JB Acc.2,KB2 JB Acc.2,KB2 ;转转2#2#键功能程序键功能程序GRET:RETGRET:RETKB0:LCALL WORK0 KB0:LCALL WORK0 ;执行执行0#0#键功能子程序键功能子程序 RET RETKB1:LCALL WORK1 KB1:LCALL WORK1 ;执行执行1#1#键功能子程序键功能子程序 RET RETKB2:LCALL WORK2 KB2:LCALL WORK2 ;执行执行2#2#键功能子程序键功能子程序 RET RET按图9-13(b)编程如下:41 按键与并行扩
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!