单片机原理及其应用课件-第八章-2(修订).ppt
1,第8章 MCS-51单片机的接口技术,8.1 显示器及其接口8.2 键盘接口8.3 D/A转换器及其接口8.4 A/D转换器及其接口8.5 打印机接口*8.6 拨码盘及语音接口*,2,8.3 D/A转换器及其接口,8.3.1 D/A转换器8.3.2 MCS-51和D/A的接口,3,1D/A转换器的原理,D/A转换器的原理:把输入数字量中每位都按其权值分别转换成模拟量,并通过运算放大器求和相加(如图8-3-2所示)。,4,图8-3-2 T型电阻网络型D/A转换器,根据克希荷夫定律,如下关系成立:I0=1/2I1 I1=1/2I2 I2=1/2 I3 I3=VREF/2R,5,n位D/A转换器,6,D/A转换器的输出形式 电压输出 电流输出输出加运放将电流转为电压。D/A转换器的输入锁存无锁存器不能与P0直接相连。有锁存器能与P0直接相连。,7,2D/A转换器的性能指标,l 分辨率:分辨率是指D/A转换器的单位数字量引起的模拟量输出的变化。一般定义为:输出满度与2n的比值。例如:8位D/A,输出满度是5V,分辨率为5/28=19.5mv l 转换精度:转换精度指满度校准时,在全量程内,DAC的实际模拟输出值与理论值的最大相对误差。l 线性度:线性度是指DAC的实际转换特性曲线和理想直线之间的最大偏移误差。l 建立时间:建立时间是数据变化满刻度时,输出达到终值(1/2)LSB所需的时间。,8,3DAC0832,l DAC0832内部结构 DAC0832内部由三部分电路组成(图8-3-3)。“8位输入寄存器”、“8位DAC寄存器”、“8位D/A转换电路”由8位T型电阻网络和电子开关组成。,图8-3-3 DAC0832原理框图,9,l引脚功能 DAC0832共有20条引脚,双列直插式封装。(1)数字量输入线DI7DI0(8条);(2)控制线(5条);(3)输出线(3条);(4)电源和地线(4条)。,图8-3-4 DAC0832原理框图,10,第一级寄存器选通:ILE=1,CE=0,WR1=0第二级寄存器选通:WR2=0,XFER=0,11,8.3.2 MCS-51和D/A的接口,1DAC的应用(输出端)l DAC用作单极性电压输出l DAC用作双极性电压输出(图8-3-5、表8-3-1)lDAC用作程控放大器(图8-3-6),12,+5V,图8-3-4 单极性DAC的接法,13,图8-3-5 双极性DAC的接法,14,2MCS-51与8位DAC的接口(输入端)MCS-51和DAC0832接口时,有三种连接方式:直通方式单缓冲方式(只有一路模拟量输出,或多路模拟量输出但不要求同步)双缓冲方式(多路模拟量输出且要求同步),15,图8-3-7 单缓冲方式下的DAC0832(一个直通,一个受控),MOV A,#80HMOV R0,#0FEHMOVX R0,A,+5V,16,图8-3-8 DAC产生波形,17,锯齿波ORG0000HSTART:MOVR0,#0FEHCLRALOOP:MOVXR0,AINCASJMPLOOPEND,18,三角波ORG0000HSTART:MOVR0,#0FEHCLRADOWN:MOVXR0,AINCAJNZDOWN UP:DECAMOVXR0,AJNZUPSJMPDOWNEND,19,矩形波ORG0000HSTART:MOVR0,#0FEHLOOP:MOVA,#33HMOVXR0,AACALLDELAY1MOVA,#0FFHMOVXR0,AACALLDELAY2SJMPLOOPEND,20,图8-3-9 8031和两片DAC0832的接口(双缓冲方式,数字量的输入锁存和转换输出分两步),FDH1#DAC0832输入寄存器地址FEH2#DAC0832输入寄存器地址FFH1#和2#DAC0832 DAC寄存器地址,21,设8031内部RAM中有两个长度为20的数据块,其起始地址分别为20H和40H,编出能把20H和40H中的数据同步从1#和2#DAC0832输出的程序。,程序设计:设0区R1寄存器指向20H单元,1区R1指向40H单元,0区R2寄存器存放数据块长度,0区和1区的R0指向DAC端口地址。,22,ORG0000HDTOUT:MOVR1,#20H;1#DAC数据区指针 MOVR2,#20;数据块长度计数器 SETB RS0;切换到1区 MOVR1,#40H;2#DAC数据区指针 CLRRS0;回0区NEXT:MOV R0,#0FDH;1#DAC 输入寄存器地址 MOVA,R1;取1#DAC数据指针指向单元中的数据 MOVXR0,A;数据送1#DAC0832输入寄存器 INCR1;修改1#数据指针,23,SETBRS0;转1区 MOVR0,#0FEH;2#DAC输入寄存器地址MOVA,R1;取2#DAC数据指针指向单元中的数据MOVX R0,A;数据送2#DAC0832输入寄存器 INCR1;修改2#数据指针INCR0;指向1#,2#DAC端口地址MOVXR0,A;启动两片DAC0832同时进行转换CLRRS0;回0区DJNZR2,NEXT;数据未传送完,继续LJMPDTOUTEND,24,3MCS-51与12位DAC的接口lDAC1208的内部结构和原理(图8-3-10)lMCS-51和DAC1208的连接(图8-3-11),25,图8-3-10 DAC1208内部框图,26,高8位输入寄存器地址 4001H,先送8位数据 低4位输入寄存器地址 4000H,再送4位数据DAC寄存器地址 6000H,最后再打开DAC寄存器,图8-3-11 8031和DAC1208接口图,27,软件编程 将存在DIGIT和DIGIT+1的12位数据送入DAC1208作D/A转换。,ORG100HMOVDPTR,#4001H;8位输入寄存器地址MOVR1,#DIGIT;高8位数据地址MOVA,R1;取数据MOVX DPTR,A;高8位送入DAC1208DECDPL;4位输入寄存器地址INCR1;低4位数据地址MOVA,R1;取数据MOVX DPTR,A;低4位送入DAC1208MOVDPTR,6000H;DAC寄存器地址MOVX DPTR,A;同步作D/A转换,28,29,8.4 A/D转换器及其接口,8.4.1 A/D转换器概述8.4.2 逐次逼近式A/D转换器的工作原理8.4.3 MCS-51和ADC0809的接口8.4.4 MCS-51和AD574的接口,30,对于一个模拟信号转换成数字信号所要求的基本部件有:模拟多路转换器与信号调理电路。采样/保持电路。A/D转换器。通道控制电路。,31,8.4.1 A/D转换器概述,1A/D转换器的分类,32,2.A/D转换器的性能指标,(1)转换时间:完成一次模拟量到数字量转换所需的 时间。转换时间的倒数为转换速率。(2)分辨率:用二进制位数n来表示,如8位、12位、16位等。分辨率为n位表示它能对满量程输入的12n的增量做出反映。若n8,满量程输入为5V,则能辨别的模拟电压增量是 5V2819.5mV。(3)转换精度:在满量程内,实际转换值与理想转换 值的最大误差。,33,3.A/D转换器的选用,(1)A/D转换器位数的确定 位数确定即分辨率的确定,决定精度要求。估算时至少比总精度要求的分辨率高一位。(2)转换速率的确定 根据实际需求确定A/D的转换速率。温度、流量、压力等缓变量的采集可用慢速A/D,几毫秒上百毫秒。转速、电流等的采集用几十微秒的A/D。,位数 速度,34,(3)采样保持器的使用 原则上A/D转换器对模拟信号转换期间,其输入信号应保持不变,通过采样保持器完成信号保持的功能。对直流和相对A/D转换速率很慢的信号可以不用采样保持器。8位100us的A/D,在无采保时,能转换的最高正弦信号频率为12Hz。(4)其他工作电压基准电压串行与并行,35,逐次逼近型ADC基本原理,图8-4-1 逐次逼近ADC原理电路框图,逐次逼近式A/D转换器是一种采用对分搜索原理来实现A/D转换的方法,逻辑框图如图8-4-1所示。,36,图8-4-2 四位逐次逼近型A/D转换时序,37,8-4-3 ADC0809逻辑框图,8.4.3 MCS-51和ADC0809的接口,1.ADC0809逻辑结构图,OE,38,2.引脚结构 ADC0809采用双列直插式封装,共有28条引脚。其引脚结构如图8-4-4所示。,引脚结构(1)IN7IN0:8条模拟量输入通道(2)地址输入和控制线:4条(3)数字量输出及控制线:11条(4)电源线及其他:5条,图8-4-4 ADC0809引脚图,39,被选通道和地址的关系,40,图8-4-5 0809工作时序图,3.时序图,实际应用中,ALE与START接在一起。启动A/D转换,用MOVX DPTR,A。转换结束可查询EOC状态读取结果,也可EOC产生中断,CPU响应中断后读入结果。,41,4ADC0809与MCS-51单片机的接口电路,图8-4-6 0809与8031接口电路,启动转换地址:0111 1111 1111 1xxx=7FFXH读结果地址:0111 1111 1111 1xxx=7FFXH,6MHz,42,编程:软件延时对8路模拟信号采集一次并存入数据存储区。,MAIN:MOV R1,#30H MOV DPTR,#7FF8H;P2.7=0,选0通道 MOV R7,#08H;置通道个数LOOP:MOVX DPTR,A;启动A/D转换 MOV R6,#0AHDELAY:NOP NOP NOP DJNZ R6,DELZY MOVX A,DPTR;读结果 MOV R1,A;存结果 INC DPTR;下一通道 INC R1 DJNZ R7,LOOP,43,编程:用中断方式编写程序(硬件图在EOC和INT1之间加一个非门),ORG 00013H AJMP PINT1 INTT1:SETB EA SETB IT1;下沿触发 SETB EX1 MOV R1,#30H MOV R7,#08H;置通道个数 MOV DPTR,#7FF8H;P2.7=0,选0通道 MOVX DPTR,A;启动A/D,44,PINT1:MOVX A,RPTR;读A/D结果 MOV R1,A;存结果 DJNZ R7,NEXT CLR EX1 CLR EA SJMP EXITNEXT:INC DPTR;下一通道 INC R1 MOVX DPTR,A;启动A/DEXIT:RETI,45,8.4.4 MCS-51和AD574的接口,1.AD574逻辑结构图与引脚,AD574A引脚排列图,8-4-7 AD574A的原理结构图,46,2.结构特点 AD574内部集成有转换时钟,参考电压源和三态输出锁存器,因此使用方便,可直接和微机接口,不需要外接时钟电路。ADC0809的输入模拟电压为0+5V,是单极性的。而AD574的输入模拟电压既可是单极性也可是双极性。AD574的数字量的位数可以设定为12位,也可设定为8位。,47,3.极性与量程设定,单极性时:BIPOFF接0V,双极性时:BIPOFF接10V。量程:10V(-5V5V),输入信号接至10VIN;20V(-10V+10V),输入信号接至20VIN。,48,图8-4-8 AD574的输入极性转换,49,5.输出宽度选择,4.转换位数设定,转换期间,A0=0,12位转换 A0=1,8位转换,读出时,A0=0,高8位数据有效。A0=1,低4位数据有效,中间4位为零,高4位为三态。,若低4位接在数据总线高半字节,12位数据按左对齐原则排列,50,6.控制逻辑,51,(a)启动与转换(b)转换结果输出 图8-4-9 AD574A控制时序图,7.时序,STS=1,正在转换,52,8AD574A与MCS-51单片机接口,启动转换地址011111007CH,读结果地址高8位 0111 11007CH低4位 0111 11017DH,53,程序:启动一次A/D转换,按左对齐原则存结果高8位于 R2,低4位于R3中。,MAIN:MOVR0,#7CH;启动地址 MOVXR0,A;启动A/D SETBP3.2LOOP:NOP JBP3.2,LOOP;查询转换结束否 MOVXA,R0;读结果高8位 MOVR2,A;存高8位 MOVR0,#7DH;设读低4位地址 MOVXA,R0;读结果地位 MOVR3,A;存低4位,54,其中启动AD的地址为1FH,读出低4位数地址为7FH,读出高8位数地址为3FH。,55,图中STS可有三种接法以对应三种控制方式:1)如果STS空着,单片机只能采取延时等待方式,在启动转换后,延时25s以上时间,再读入AD转换结果;2)如果STS接单片机一条端口线,单片机就可以用查询的方法等待STS为低后再读入AD转换结果;3)如果STS接单片机外部中断线,就可以在引起单片机中断后,再读入AD转换结果。,56,本例采用延时等待方式,其对应控制程序清单如下:MOV Ro,#1FH;启动MOVX Ro,A MOV R7,#10H;延时DJNZ R7,$MOV R1,#7FH;读低四位 MOVX A,R1MOV R2,A;存低四位 MOV R1,#3FH;读高八位 MOVX A,R1MOV R3,A;存高八位SJMP$,57,58,59,8.5 打印机接口,8.5.1 TPP-40A主要性能、接口要求及时序8.5.2 字符代码及打印命令8.5.3 TPP-40A/16A与MCS-51单片机接口8.5.4 打印程序实例,60,8.5.1 TPP-40A主要性能、接口要求及时序,1TPP-40A的主要技术性能(1)采用单片机控制,具有2KB监控程序及标准的Centronic 并行接口。(2)具有较丰富的打印命令,命令代码均为单字节,格式简单。(3)可产生全部标准的ASCII代码字符,以及128个非标准字符和图符。(4)可打印出8240点阵的图样。(5)字符、图符和点阵图可以在高和宽的方向放大为2、3、4倍。,61,(6)每行字符的点行数可用命令更换,即字符行间距空点行在0256间任选。(7)带有水平和垂直制表命令,便于打印表格。(8)具有重复打印同一字符命令,以减少输送代码的数量。(9)带有命令格式的检错功能。,62,2接口要求TPP-40A微型打印机与计算机通过机箱后部的20芯扁平电缆及插件相连。接插件引脚信号如图8-24所示。,图8-5-1 TPP-40A/16A插脚安排(从打印机背视),DB0DB7:数据线,单向由计算机输入打印机。STROBE:数据选通信号。BUSY:打印机“忙”状态信号。ACKNOWLEGE:打印机的应答信号。ERROR:出错信号。,3接口信号时序,图8-5-2 TPP-40A/16A接口信号时序,65,8.5.2 字符代码及打印命令,1字符代码字符代码串实例如下:l打印字符串“3265.37”输送代码串为:24,33,32,36,35,2E,33,37,0D。l 打印“This is Micro-Printer”输送代码串为:54,68,69,73,20,69,73,20,4D,69,63,72,6F,2D,70,72,69,6E,74,65,72,2E,0D。,2打印命令,表8-5-1 TPP-40A打印命令代码及功能,3命令非法时的出错提示,图8-5-3 出错代码信息打印格式,68,8.5.3 TPP-40A/16A与MCS-51单片机接口,TPP-40A/16A没有读写信号线,只有一对握手线、BUSY,接口如图8-5-4所示。图8-5-5是通过单片机系统中的扩展I/O口连接的打印机接口电路。图8-5-4、图8-5-5中打印机的口地址由地址线P2口线决定,使用时,口地址设为7FFFH。,图8-5-4 TPP-40A/16A与8031数据总线接口电路图,图8-5-5 TPP-40A/16A与8031扩展I/O口连接的接口电路图,71,8.5.4 打印程序实例,下面以图8-29作为打印机接口,介绍一种使用TPP-16A打印机打印1616点阵汉字“作业”的程序。程序清单如下:HZDY:MOVDPTR,#TAB2;置字型表首址 MOVR6,#02H DY1:MOVB,#20H LCALLSUB2;调用打印机控制子程序 DJNZR6,DY1 RETSUB1:PUSHDPH;DPTR入栈 MOVDPTR,#TAB1;置打印机控制字表首址,MOVR5,#05H;送打印控制字串到打印机SB11:LCALLDAY2 LCALLDAY1 DJNZR5,SB11 MOVA,B LCALLDAY1 MOVA,#00H LCALLDAY1 POPDPL;DPTR出栈 POPDPH RETSUB2:MOVR5,B;送由B设置个数的汉字字型码到打印机SB21:LCALLDAY2 LCALLDAY1 DJNZR5,SB21 MOVA,#0DH;回车换行 LCALLDAY1 RETDAY1:PUSHDPH,PUSHDPL MOVDPTR,#7F01H;将字型码送8155 PA口 MOVXDPTR,A MOVDPTR,#7F03H;用8155 PC口模拟打印机信号 MOVA,#00H MOVXDPTR,A MOVA,#01H MOVXDPTR,A JBP3.3,$;打印机忙等待 POPDPL POPDPH RETDAY2:CLRA;取字型码子程序 MOVXA,A+DPTR INCDPTR RET,TAB1:DB1BH,31H,00H,1BH,4BH;打印机控制字符串TAB2:DB00H,00H,00H,0FFH,0FEH,00H,00;汉字“作”的下半部字形码 DB00H,0FFH,0FFH,20H,20H,20H,60H,20H DB00H,02H,02H,0E2H,0C2H,0FEH,0FEH,02H;汉字“业”下半部字形码 DB02H,0FEH,0FEH,62H,0C2H,02H,06H,02H DB00H,01H,06H,1FH,0F7H,60H,02H,0CH;汉字“作”的上半部字形码 DB38H,0FFH,5FH,12H,12H,16H,32H,10H DB00H,08H,07H,03H,00H,0FFH,7FH,00H;汉字“业”的上半部字形码 DB00H,0FFH,7FH,00H,03H,1FH,0CH,00H,75,8.6 拨码盘及语音接口,8.6.1 拨码盘接口及应用实例8.6.2 ISD1420语音接口芯片及其应用,76,8.6.1 拨码盘接口及应用,1十线拨盘(如图8-6-1所示),图8-6-1 十线拨盘,十线拨盘接口:多个拨盘输入时,接口如图8-6-2所示。为节约I/O口,采用并联连接,分时选通输入的办法。,图8-6-2 十线拨盘组接口,读数及自检软件:十线拨码盘便于实现自检。在正常情况下,十线中只能有一个为低电平“0”。如果有一个以上的低电平“0”,则为短路故障;如全为高电平“1”,则为开路或接触不良故障。图8-6-3是读数自检子程序流程图。,图8-6-3 十线拨盘读数自检程序流程图,80,2BCD拨码盘(如图8-6-48-6-5所示)l硬件接口:只用两个BCD拨码盘输入时,可把A端接+5V,8个输出脚接8个并行输出口,并通过10K电阻接地,从8位并行口输入的数据即是两个拨盘的BCD码。多个拨盘输入时,同样要接成并联分时选通形式 l 读数及检测软件:BCD拨码盘不易实现故障自检。,图8-6-4 BCD码拨盘组接口,图8-6-5 BCD码拨盘检测程序流程图,83,8.6.2 ISD1420语音接口芯片及其应用,1ISD1420芯片的特点(1)外围元件简单,仅需少量阻容元件、麦克风即 可组成一完整录放系统。(2)模拟信息存储重放音质极好,并有一定混响效果。(3)待机时低功耗(仅0.5A),典型放音电流15mA。(4)放音时间20s,可扩充级联。,84,(5)可持续放音,也可分段放音,最小分段20s/160段=0.125s/段,可分段数160段。(地址输入端A0A7有效值范围为0000000010011111)(6)录放次数达10万次。(7)断电信息存储,无需备用电池,信息可保100年。(8)操作简单,无需专用编程器及语音开发器。(9)高优先级录音,低电平或负边沿触发放音。(10)单电源供电,典型电压+5V。,图8-6-6 ISD1420语音芯片内部结构框图,2内部接口介绍,3ISD1420封装及引脚介绍,图8-6-7 ISD1420引脚图,A0A7:地址或操作模式控制MIC:话筒输入MICRef:话筒输入参考AGC:自动增益控制ANA IN,ANA OUT:模拟信号 入,出/PLAYL:电平放音/PLAYE:边沿放音/RECLED:录音指示/REC:录音/放音控制,87,4ISD1420基本技术指标(均为典型值)(1)工作电源+5V。(2)静态电流10A。(3)工作电流15mA。(4)信噪比S/N=43dB。(5)录音时间长度:20s(6)每基本段时间长度:20s。,88,5ISD1420与单片机接口举例l硬件连接(如图8-6-8所示),图8-6-8 ISD1420与单片机8031的接口,芯片选通地址:7FFFH,录入语音信息,表8-6-1 ISN1420语音分段及段控制码,语音分40段,每段0.5秒。单字0.5秒,词段1.5秒。,表8-6-2 语音信息录放段控制码,放音实例:内容为“当前水压285KPa”,各字段录入顺序见表8-6-2,91,6ISD系列语音芯片应用中应注意的问题(1)ISD系列器件所有地址端、控制端和TEST/CLD端必须可靠接高电平或低电平,而不能悬空,否则可能出现停止播放的情况。(2)为了充分发挥其优质高保真特点,应注意以下几点:,92,1)AGC阻容,尽量靠近ISD,且连线尽量短。2)电源线和地线宽度应在0.8mm以上。3)选用优质话筒。4)话筒信号耦合电容与连接MICREF端到模拟地的电容要相同。5)电源内阻低且无噪音。,93,(3)ISD的SP+、SP-端一定不要接地,只能接喇叭或悬空。(4)国内部分厂家语言芯片与ISD芯片标准信号对应如下:SR9F26ISD1020A(硬封装)SR9G16/SR9G26ISD1416/ISD1420(硬封装)HY420/SRG26RISD1420(软封装)HY410ISD1110(软封装),94,本 章 结 束,