




已阅读5页,还剩148页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,2020/6/9,.浙江师范大学,单片机接口技术及应用,单片机接口技术及应用第七章单片机实用接口技术(一)万旭M.T.660109)QQ:854310174,*,应用电子系,3,第七章单片机实用接口技术,本章目录,一、LED显示接口二、键盘接口三、LCD显示接口四、A/D与D/A接口五、开关量驱动输出接口电路,*,应用电子系,4,LED数码管显示接口,一、LED数码管,*,应用电子系,5,LED显示器的扩展(结构),LED数码管的结构:共阳与共阴,*,应用电子系,6,单片机系统扩展LED数码管时多用共阳LED:共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻。,*,应用电子系,7,LED数码管的软件译码,八段LED数码管段代码编码表(连线不同可有多种表):,*,应用电子系,8,LED数码管分类:,按其内部结构可分为共阴型和共阳型;,按其外形尺寸有多种形式,使用较多的是0.5和0.8;,按显示颜色也有多种形式,主要有红色和绿色;,正向压降一般为1.52V,额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示,可加大脉冲电流,但一般不超过40mA。,按亮度强弱可分为超亮、高亮和普亮。,*,应用电子系,9,二、LED数码管编码方式,共阴和共阳LED数码管几种八段编码表,*,应用电子系,10,从显示数中分离出显示的每一位数字方法是将显示数除以十进制的权,显示数转换为显示字段码的步骤:,将分离出的显示数字转换为显示字段码方法是查表,*,应用电子系,11,【例】已知显示数存在内RAM30H(高位)、31H中,试将其转换为5位共阴字段码(顺序),存在以30H(高位)为首址的内RAM中。,解:连续调用下列二个子程序即可。分离显示数字子程序,说明:SUM是16位除以16位子程序:(A、B)(R6、R5)=商R0,余数(A、B)。,*,应用电子系,12,SPRT:MOVR0,#30H;置万位BCD码间址MOVA,30H;置被除数MOVB,31H;MOVR6,#27H;置除数10000=2710HMOVR5,#10H;LCALLSUM;除以10000,万位商存30H,余数存A、BMOVR6,#03H;置除数1000=03E8HMOVR5,#0E8H;INCR0;指向千位商间址(31H)LCALLSUM;除以1000,千位商存31H,余数存A、BMOVR6,#0;置除数100MOVR5,#100;INCR0;指向百位商间址(32H)LCALLSUM;除以100,百位商存32H,余数存A(B=0)MOVB,#10;置除数10DIVAB;除以10INCR0;指向十位商间址(33H)MOVR0,A;十位商存33HXCHA,B;读个位数INCR0;指向个位间址(34H)MOVR0,A;个位存34HRET;,*,应用电子系,13,转换显示字段码子程序,CHAG:MOVDPTR,#TAB;置共阴字段码表首址MOVR0,#30H;置显示数据区首址CGLP:MOVA,R0;取显示数字MOVCA,A+DPTR;读相应显示字段码MOVR0,A;存显示字段码INCR0;指向下一显示数字CJNER0,#35H,CGLP;判5个显示数字转换完否?RET;转换完毕,结束TAB:DB3FH,06H,5BH,4FH,66H;共阴字段码表DB6DH,7DH,07H,7FH,6FH;,*,应用电子系,14,三、静态显示方式及其典型应用电路,LED数码管显示分类:静态显示方式和动态显示方式。,动态显示方式:在某一瞬时显示一位,依次循环扫描,轮流显示。特点:占用I/O端线少,电路较简单,编程较复杂,CPU要定时扫描刷新显示。一般适用于显示位数较多的场合。,静态显示方式:每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新。特点:编程较简单,但占用I/O口线多,一般适用于显示位数较少的场合。,*,应用电子系,15,1、并行扩展静态显示电路,*,应用电子系,16,【例】按图编制显示子程序,显示数(255)存在内RAM30H中。,DIR1:MOVA,30H;读显示数MOVB,#100;置除数DIVAB;产生百位显示数字MOVCA,A+DPTR;读百位显示符MOVDPTR,#0DFFFH;置74377(百位)地址MOVXDPTR,A;输出百位显示符,MOVA,B;读余数MOVB,#10;置除数DIVAB;产生十位显示数字MOVDPTR,#TAB;置共阳字段码表首址MOVCA,A+DPTR;读十位显示符MOVDPTR,#0BFFFH;置74377(十位)地址MOVXDPTR,A;输出十位显示符,*,应用电子系,17,MOVA,B;读个位显示数字MOVDPTR,#TAB;置共阳字段码表首址MOVCA,A+DPTR;读个位显示符MOVDPTR,#7FFFH;置74377(个位)地址MOVXDPTR,A;输出个位显示符RET;TAB:DB0C0H,0F9H,0A4H,0B0H,99H;共阳字段码表DB92H,82H,0F8H,80H,90H;,*,应用电子系,18,2、串行扩展静态显示电路,*,应用电子系,19,【例】按图编制显示子程序,显示字段码已分别存在32H30H内RAM中。,DIR2:MOVSCON,#00H;置串口方式0CLRES;串口禁中SETBP1.0;“与”门开,允许TXD发移位脉冲MOVSBUF,30H;串行输出个位显示字段码JNBTI,$;等待串行发送完毕CLRTI;清串行中断标志MOVSBUF,31H;串行输出十位显示字段码JNBTI,$;等待串行发送完毕CLRTI;清串行中断标志,MOVSBUF,32H;串行输出百位显示字段码JNBTI,$;等待串行发送完毕CLRTI;清串行中断标志CLRP1.0;“与”门关,禁止TXD发移位脉冲RET,*,应用电子系,20,要求:根据上图编写通过串行口和74LS164驱动共阳LED数码管查表显示的子程序。条件:系统有6个LED数码管,待显数据(00H09H)已放在35H30H单元中(分别对应十万位个位),,DSPLY:MOVDPTR,#TABLE;共阳LED数码管译码表首址MOVR0,#30H;待显数据缓冲区的个位地址REDO:MOVA,R0;通过R0实现寄存器间接寻址,MOVCA,A+DPTR;查表MOVSBUF,A;经串行口发送到74LS164JNBTI,$;查询送完一个字节的第8位?CLRTI;为下一字节发送作准备INCR0;R0指向下一个数据缓冲单元CJNER0,#36H,REDO;判断是否发完6个数?RET;发完6个数就返回,*,应用电子系,21,3、BCD码输出静态显示电路,*,应用电子系,22,利用4511实现静态显示与一般静态显示电路不同:一是节省I0端线,段码输出只需4根;二是不需专用驱动电路,可直接输出;三是不需译码,直接输出二进制数,编程简单;缺点是只能显示数字,不能显示各种符号。,*,应用电子系,23,【例】按图试编制显示子程序(小数点固定在第二位),已知显示数存在内RAM30H32H中。,解:编程:DIR3:MOVP1,#11100000B;选通个位ORLP1,30H;输出个位显示数MOVP1,#11010000B;选通十位ORLP1,31H;输出十位显示数MOVP1,#10110000B;选通百位ORLP1,32H;输出百位显示数RET;,*,应用电子系,24,四、动态显示方式及其典型应用电路,*,应用电子系,25,*,应用电子系,26,LED数码管动态显示举例,工作原理:从P0口送段代码,P1口送位选信号。段码虽同时到达6个LED,但一次仅一个LED被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。,*,应用电子系,27,要求:共阴数码管,P0口送段代码,P1口送位选信号。通过查表实现动态显示。条件:待显数据(00H09H)已放在:7FH7AH单元中(分别对应十万位个位)说明:由于用了反相驱动器7406,要用共阳译码表。,*,应用电子系,28,(7FH)(7EH)(7DH)(7CH)(7BH)(7AH)十万万位千位百位十位个位,数据缓冲区/显示缓冲区,P0口送段代码,P1口送位选信号。待显数据已经放在:7FH7AH单元(分别对应十万位个位)使用共阳译码表。,*,应用电子系,29,P0口送段代码,P1口送位选信号。待显数据已经放在:7FH7AH单元(分别对应十万位个位)使用共阳译码表。,DIR:MOVDPTR,#DSEG;数码管译码表首址MOVR0,#7AH;待显缓冲区个位地址MOVR3,#01H;个位的位选信号=01HLD1:MOVA,R0;通过R0间接寻址MOVCA,A+DPTR;查表MOVP0,A;字段码送到P0口MOVP1,R3;字位选择送到P1口LCALLDELY;调延时1ms子程序INCR0;R0指向下一字节MOVA,R3JBACC.5,LD2;判是否发完6个数?RLA;R1指向下一个位MOVR3,A;位选信号存回R1SJMPLD1;跳去再显示下一个数LD2:RET;发完6个数就返回DSEG:DB0C0H,0F9H,0A4H,0B0H,99H;共阳译码表DB92H,82H,0F8H,80H,90H,*,应用电子系,30,动态显示实例(循环显示“8”的实验)实验箱从P0口扩展了两个8位的简单I/O口:一个送段代码(字形状),地址是0DCH;一个送位选信号(字位置),地址是0DDH。,*,应用电子系,31,1、共阴型8位动态显示电路,*,应用电子系,32,【例】按图,试编制循环扫描(10次)显示子程序,已知显示字段码存在以30H(低位)为首址的8字节内RAM中。解:编程如下:,DIR4:MOVR2,#10;置循环扫描次数MOVDPTR,#7FFFH;置74377口地址DLP1:ANLP1,#11111000B;第0位先显示MOVR0,#30H;置显示字段码首址,DLP2:MOVA,R0;读显示字段码MOVXDPTR,A;输出显示字段码LCALLDY2ms;调用延时2ms子程序INCR0;指向下一位字段码INCP1;选通下一位显示,*,应用电子系,33,CJNER0,#38H,DLP2;判8位扫描显示完否?未完继续DJNZR2,DLP1;8位扫描显示完毕CLRA;10次循环完毕,显示暗MOVXDPTR,A;RET;子程序返回,*,应用电子系,34,2、共阳型3位动态显示电路,*,应用电子系,35,【例】根据图电路,编制3位动态扫描显示程序(循环100次),已知显示字段码存在以40H(低位)为首址的3字节内RAM中。解:编程如下:,DIR5:MOVDPTR,#0BFFFH;置74377地址MOVR2,#100;置循环显示次数,DIR50:SETBP1.2;百位停显示MOVA,40H;取个位字段码MOVXDPTR,A;输出个位字段码CLRP1.0;个位显示LCALLDY2ms;调用延时2ms子程序,*,应用电子系,36,DIR51:SETBP1.0;个位停显示MOVA,41H;取十位字段码MOVXDPTR,A;输出十位字段码CLRP1.1;十位显示LCALLDY2ms;延时2ms,DIR52:SETBP1.1;十位停显示MOVA,42H;取百位字段码MOVXDPTR,A;输出百位字段码CLRP1.2;百位显示LCALLDY2ms;延时2ms,DJNZR2,DIR50;判循环显示结束否?未完继续ORLP1,#00000111B;3位灭显示RET;,*,应用电子系,37,思考与实践,1.根据电路图,编制8位动态扫描显示程序1)内存为内部RAM的40H(高位)47H(低位)2)给内存送数据(自己选择)3)从内存取数据4)根据数据取段码(从低位到高位)5)取位码(对应数据位置)6)设计循环显示100次7)更改显存数据再显示8)验证设计结果,*,应用电子系,38,思考与实践,*,应用电子系,39,思考与实践,*,应用电子系,40,键盘接口,一、键盘接口概述,1、按键开关去抖动问题,键盘的抖动时间一般为510ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。,*,应用电子系,41,消抖方法:,其中RC滤波电路去抖动电路简单实用,效果较好。,软件去抖动检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。,硬件去抖动,*,应用电子系,42,2、按键连接方式,独立式按键独立式按键是每个按键占用一根I/O端线。特点:各按键相互独立,电路配置灵活;按键数量较多时,I/O端线耗费较多,电路结构繁杂;软件结构简单。适用于按键数量较少的场合。,*,应用电子系,43,矩阵式键盘I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点:占用I/O端线较少;软件结构教复杂。适用于按键较多的场合。,*,应用电子系,44,3、键盘扫描控制方式,程序控制扫描方式键处理程序固定在主程序的某个程序段。特点:对CPU工作影响小,键盘处理程序的运行间隔周期不能太长,影响对键输入响应的及时性。,定时控制扫描方式利用定时/计数器每隔一段时间产生定时中断,响应中断后对键盘进行扫描。特点:扫描方式的区别是,用定时/计数器定时控制。应考虑定时时间不能太长,会影响对键输入响应的及时性。,*,应用电子系,45,中断控制方式利用外部中断源,响应键输入信号。特点:克服了可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。,*,应用电子系,46,二、独立式按键及其接口电路,1、按键直接与I/O口连接,*,应用电子系,47,【例】按图(a)、(b),分别编制按键扫描子程序。,按图(b)编程如下:KEYB:ORLP1,#07H;置P1.0P1.2为输入态MOVA,P1;读键值,键闭合相应位为1ANLA,#00000111B;屏蔽高5位,保留有键值信息的低3位JZGRET;全0,无键闭合,返回LCALLDY10ms;非全0,有键闭合,延时10ms,软件去抖动MOVA,P1;重读键值,键闭合相应位为1ANLA,#00000111B;屏蔽高5位,保留有键值信息的低3位JZGRET;全0,无键闭合,返回;非全0,确认有键闭合JBAcc.0,KB0;转0#键功能程序JBAcc.1,KB1;转1#键功能程序JBAcc.2,KB2;转2#键功能程序GRET:RETKB0:LCALLWORK0;执行0#键功能子程序RETKB1:LCALLWORK1;执行1#键功能子程序RETKB2:LCALLWORK2;执行2#键功能子程序RET,*,应用电子系,48,2、按键与并行扩展I/O口连接,*,应用电子系,49,【例】按图编制按键扫描子程序,将键信号存入内RAM30H。解:编程如下:KEY99:MOVDPTR,#7FFFH;置74373口地址MOVXA,DPTR;输入键信号(“0”有效)MOV30H,A;存键信号数据RET;,*,应用电子系,50,三、矩阵式键盘及其接口电路,*,应用电子系,51,【例】按图,试编制矩阵式键盘扫描程序。解:,KEY:MOVP1,#0F0H;行线置低电平,列线置输入KEY0:MOVA,P1;读列线数据CPLA;数据取反,“1”有效ANLA,#0F0H;屏蔽行线,保留列线数据MOVR1,A;存列线数据(R1高4位)JZGRET;全0,无键按下,返回KEY1:MOVP1,#0FH;行线置输入,列线置低电平MOVA,P1;读行线数据CPLA;数据取反,“1”有效ANLA,#0FH;屏蔽列线,保留行线数据MOVR2,A;存行线数据(R2低4位)JZGRET;全0,无键按下,返回JBCF0,WAIT;已有消抖标志,转SETBF0;无消抖标志,置消抖标志LCALLDY10ms;10ms延时子程序,消抖SJMPKEY0;重读行线列线数据GRET:RET;,*,应用电子系,52,WAIT:MOVA,P1;等待按键释放CPLA;ANLA,#0FH;JNZWAIT;按键未释放,继续等待,KEY2:MOVA,R1;取列线数据(高4位)MOVR1,#03H;取列线编号初值MOVR3,#03H;置循环数CLRC;KEY3:RLCA;依次左移入C中JCKEY4;C=1,该列有键按下,编号存R1)DECR1;C=0,无键按下,修正列编号DJNZR3,KEY3;判循环结束否?,*,应用电子系,53,KEY4:MOVA,R2;取行线数据(低4位)MOVR2,#00H;置行线编号初值MOVR3,#03H;置循环数CLRC;KEY5:RRCA;依次右移入C中JCKEY6;C=1,该行有键按下,编号存R2INCR2;C=0,无键按下,修正行线编号DJNZR3,KEY5;判循环结束否?,*,应用电子系,54,KEY6:MOVA,R2;取行线编号CLRC;RLCA;行编号2RLCA;行编号4ADDA,R1;行编号4+列编号=按键编号KEY7:CLRC;RLCA;按键编号2RLCA;按键编号4(LCALL+RET共4字节)MOVDPTR,#TABJ;,JMPA+DPTR;散转,执行相应键功能子程序TABJ:LCALLWORK0;调用执行0#键功能子程序RET;LCALLWORK1;调用执行1#键功能子程序RET;LCALLWORK15;调用执行15#键功能子程序RET;,*,应用电子系,55,【例】按如图编制中断方式键盘扫描程序,将键盘序号存入内RAM30H。,*,应用电子系,56,ORG0000H;复位地址LJMPSTAT;转初始化ORG0003H;中断入口地址LJMPPINT0;转中断服务程序ORG0100H;初始化程序首地址STAT:MOVSP,#60H;置堆栈指针SETBIT0;置为边沿触发方式MOVIP,#00000001B;置为高优先级中断MOVP1,#0FH;置行为输入,置列输出SETBEA;CPU开中SETBEX0;开中LJMP$;转主程序,并等待有键按下时中断,*,应用电子系,57,OGR2000H;中断服务程序首地址PINT0:PUSHAcc;保护现场PUSHPSW;MOVA,P1;读行线(P1.0P1.3)数据CPLA;数据取反,“1”有效ANLA,#0FH;屏蔽列线,保留行线数据MOVR2,A;存行线(P1.0P1.3)数据(R2低4位)MOVP1,#0F0H;行线置低电平,列线置输入态MOVA,P1;读列线(P1.4P1.7)数据CPLA;数据取反,“1”有效ANLA,#0F0H;屏蔽行线,保留列线数据(A中高4位)MOVR1,#03H;取列线编号初值MOVR3,#03H;置循环数CLRC;PINT01:RLCA;依次左移入C中JCPINT02;C=1,该列有键按下,(列线编号存R1)DECR1;C=0,无键按下,修正列编号DJNZR3,PINT01;判循环结束否?未结束继续寻找有键按下列线,*,应用电子系,58,PINT02:MOVA,R2;取行线数据(低4位)MOVR2,#00H;置行线编号初值MOVR3,#03H;置循环数PINT03:RRCA;依次右移入C中JCPINT04;C=1,该行有键按下,(行线编号存R2)INCR2;C=0,无键按下,修正行线编号DJNZR3,PINT03;判循环结束否?未结束继续寻找有键按下行线PINT04:MOVA,R2;取行线编号CLRC;RLCA;行编号2RLCA;行编号4ADDA,R1;行编号4+列编号=按键编号MOV30H,A;存按键编号POPPSW;POPAcc;RETI;,*,应用电子系,59,思考与实践,1.根据电路图,编制44扫描键盘程序1)获取按键编码(P1口作为按键接口)2)用动态显示程序显示当前的按下的键值(P0口与P2.7、P2.6、P3.6)3)用外中断重新设计按键电路与程序4)扩展键盘控制显示的程序(功能自定义),*,应用电子系,60,思考与实践,1.完成以下任务之一1)脉冲宽度测量与显示的硬件电路与汇编程序设计(难度系数100)2)数字频率计的硬件电路与汇编程序设计(难度系数90)3)数字秒表的硬件电路与汇编程序设计(难度系数90)4)带5秒倒计时三色交通灯控制器(难度系数90),概述,在微机过程控制和数据采集等系统中,经常要对过程参数进行测量和控制。,连续变化的物理量,如:温度、压力、流量、速度、位移等等,物理过程,微机,传感器,A/D,D/A,执行机构,物理过程,v/i,Data,Data,过程控制示意图,模拟量:,*,应用电子系,61,模拟量与数字量,模拟量连续变化的物理量,数字量时间和数值上都离散的量,*,应用电子系,62,模拟输入输出系统,传感器将各种现场的物理量测量出来并转换成电信号(模拟电压或电流),放大器把传感器输出的信号放大到ADC所需的量程范围,低通滤波器用于降低噪声、滤去高频干扰,以增加信噪比,多路开关把多个现场信号分时地接通到A/D转换器,采样保持器周期性地采样连续信号,并在A/D转换期间保持不变,*,应用电子系,63,A/D和D/A接口,D/A转换器:可将数字量转换成为模拟量的电子器件。A/D转换器:可将模拟量转换成为数字量的电子器件。D/A、A/D转换器在系统中的位置及作用:,*,应用电子系,64,D/A转换器,模拟量,数字量,*,应用电子系,65,D/A转换器的原理,数字量按权相加模拟量,D/A转换器,D/A转换器的原理D/A转换器的输入量为数字信号,输出量为模拟信号。图中输入的数字量是二进制编码信号。,*,应用电子系,67,D/A转换器,实现这种转换的电路主要有两种解码网络:二进制权电阻网络、T型电阻网络。1、二进制权电阻网络因为数字量是用二进代码按位组合起来的,每一位代码都有一定的“权”。因此,D/A转换就是要将每一位代码按其“权”的数值转换成为模拟量,然后相加,所得的总和就是与数字量成正比的模拟量。简化的4位权电阻译码网络D/A转换器电路?,*,应用电子系,68,D/A转换器,说明:图中的开关S0S3受输入的数据控制。当某位为1时,该位开关接至Vref。否则接地。电路特点:精度高、参考电压稳定;但是网络电阻规格差距大,制造难。,*,应用电子系,69,工作原理:,IO1,di为1Si与运放的反相输入端连接uo=-IO1RF,di为0Si与地连接,2、D/A转换原理(T形解码网络),*,应用电子系,70,倒梯形电阻网络,R,R,R,R,IR=UR/R,*,应用电子系,71,IO1,=d3I3+d2I2+d1I1+d0I0,*,应用电子系,72,若为n位二进制数,则,若RF=R,则,即输出电压的大小正比于输入二进制数的大小,实现了数字量和模拟量的转换,*,应用电子系,73,二、DA转换器的性能参数,是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为2-n。有时也用输入数字量的有效位数来表示分辨率。,(1)分辨率,如:十位DAC分辨率:,(2)偏移误差,它是指输入数字量为0时,输出模拟量对0的偏移值,(3)线性度,指D/A转换器的实际转移特性与理想直线之间的最大误差或最大偏移,*,应用电子系,74,(4)精度,输出模拟电压的实际值与理想值之差。即最大静态转换误差。参考电压波动是影响因素之一。,(5)转换速度,即每秒钟可以转换的次数,其倒数为转换时间。,*,应用电子系,75,DAC0832芯片,DAC0832是典型的8位电流输出型通用DAC芯片,0832的技术指标,分辨率8位;电流稳定时间1s;可双缓冲,单缓冲或直接数字输入;只需在满量程下调整其线性度;单一电源供电(+5V+15V);低功耗,20mW;,*,应用电子系,76,DAC0832的内部结构,*,应用电子系,77,1.DAC0832的数字接口,8位数字输入端DI0DI7(DI0为最低位)输入寄存器(第1级锁存)的控制端ILE、CS*、WR1*DAC寄存器(第2级锁存)的控制端XFER*、WR2*,*,应用电子系,78,DAC0832工作方式:直通锁存器,两级缓冲寄存器都是直通锁存器LE1,直通(输出等于输入)LE0,锁存(输出保持不变),*,应用电子系,79,DAC0832的工作方式:直通方式,LE1LE21输入的数字数据直接进入D/A转换器,*,应用电子系,80,DAC0832的工作方式:单缓冲方式,LE11,或者LE21两个寄存器之一始终处于直通状态另一个寄存器处于受控状态(缓冲状态),*,应用电子系,81,DAC0832的工作方式:双缓冲方式,两个寄存器都处于受控(缓冲)状态能够对一个数据进行D/A转换的同时;输入另一个数据,*,应用电子系,82,2.DAC0832的模拟输出,Iout1、Iout2电流输出端Rfb反馈电阻引出端(电阻在芯片内)VREF参考电压输入端10V10VAGND模拟信号地VCC电源电压输入端5V15VDGND数字信号地,*,应用电子系,83,单极性电压输出,VoutIout1Rfb(D/28)VREF,*,应用电子系,84,单极性电压输出:例子,例1:设VREF5VDFFH255时,最大输出电压:Vmax(255/256)5V4.98VD00H时,最小输出电压:Vmin(0/256)5V0VD01H时,一个最低有效位(LSB)电压:VLSB(1/256)5V0.02V,Vout(D/2n)VREF,*,应用电子系,85,双极性电压输出:电路,*,应用电子系,86,双极性电压输出:公式,取R2R32R1得Vout2(2Vout1VREF)因Vout1(D/28)VREF故Vout2(D27)/27)VREF,*,应用电子系,87,双极性电压输出:例子,例2:设VREF5VDFFH255时,最大输出电压:Vmax(255128)/1285V4.96VD00H时,最小输出电压:Vmin(0128)/1285V5VD81H129时,一个最低有效位电压:VLSB(129128/1285V0.04V,Vout(D27)/27)VREF,*,应用电子系,88,3.输出精度的调整,*,应用电子系,89,4.地线的连接,*,应用电子系,90,8位D/A转换器接口方法,1、单缓冲型接口方法,(a),接口电路图(a)的是把DAC寄存器接成常通状态;即ILE接高电平,和接地,与P2.7口连接,与单片机的端连接。,*,应用电子系,91,(b),接口电路图(b)是把输入寄存器接成常通状态;即ILE接高电平,、地,与P2.7口连接,与单片机的端连接。,*,应用电子系,92,主要应用在多路D/A转换器同步系统中。,2、双缓冲型接口方法,*,应用电子系,93,D/A转换器的输出方式,1、单极性输出,输出于数字量DATA相对应模拟量:MOVDPTR,#7FFFHMOVA,#DATAMOVXDPTR,A,*,应用电子系,94,单极性输出D/A关系,数字量与模拟量的转换关系,*,应用电子系,95,2、双极性输出,*,应用电子系,96,VO2=(R2/R3)VO1+(R2/R1)VREF)代入R1、R2、R3的值,可得:VO2=(2VO1VREF)设VREF=5V当VO1=0V时,VO2=5V;当VO1=2.5V时,VO2=0V;当VO1=5V时,VO2=5V。,运算放大器U3的作用:把运算放大器U2的单向输出电压转变成双向输出。其原理是将U3的输入端2通过电阻R1与参考电压VREF相连,因此运算放大器U3的输出电压:,*,应用电子系,97,双极性输出D/A关系,数字量与模拟量的转换关系,*,应用电子系,98,一、单极性输出接口系统设计,D/A转换器接口技术举例,例1:若在外部RAM区6000H607FH单元中存放着一个控制模型(128个8位二进制数),要求实现如下功能:按顺序从6000H开始的存储区域中取出一个字节的二进制数据送往D/A转换器转换成电压输出,经过t延时后,再取下一个字节数据,转换成电压输出。直到128个字节都转换完毕。再从头重复执行上述过程。,*,应用电子系,99,6264地址范围:6000H7FFFH,DAC0832地址:0BFFFH,*,应用电子系,100,ORG0000HLJMPDA0;DA0:MOVR7,#128;置数据长度MOVDPTR,#6000H;预置暂存器DA1:MOVXA,DPTR;取数MOVP2,#0BFH;置D/A指针高8位MOVR0,#0FFH;置D/A指针低8位MOVXR0,A;送数INCDPTR;指向下一个数据LCALLDLY;调延时tsDJNER7,DA1;128个数未完则转LJMPDA0;重新开始END;结束,2.程序设计,*,应用电子系,101,二、电压波形发生器,1、硬件设计,*,应用电子系,102,(1)反向锯齿波程序清单MSW:MOVDPTR,#0BFFFH;指向D/A输入寄存器DA0:MOVR7,#80H;置输出初值DA1:MOVA,R7;数字量送AMOVXDPTR,A;送D/A转换DJNZR7,DA1;修改数字量AJMPDA0;重复下一个波形,2、软件设计,(a),*,应用电子系,103,(2)正向锯齿波程序清单PSW:MOVDPTR,#0BFFFH;指向D/A输入寄存器DAP0:MOVR7,#80H;置输出初值DAP1:MOVA,R7;数字量送AMOVXDPTR,A;送D/A转换INCR7;修改数字量CJNER7,#255,DAP1;数字量255,转DAP1AJMPDAP0;重复下一个波形,*,应用电子系,104,(4)三角波程序清单SSW:MOVDPTR,#80BFFFHDAS0:MOVR7,#80HDAS1:MOVA,R7MOVXDPTR,AINCR7CJNER7,#255,DAS1DAS2:DECR7MOVA,R7MOVXDPTR,ACJNER7,#80H,DAS2AJMPDAS0,+5V,*,应用电子系,105,(5)正弦波电压输出正弦波电压输出为双极性电压,最简单的办法是将一个周期内电压变化的幅值(-5V+5V)按8位D/A分辨率分为256个数值列成表格,然后依次将这些数字量送入D/A转换输出。只要循环不断地送数,在输出端就能获得正弦波输出。SIN:MOVR7,#00HDAS0:MOVA,R7MOVDPTR,#TABH;设指针MOVCA,A+DPTR;取数据MOVDPTR,#8000H;MOVXDPTR,A;送D/A转换INCR7;修改偏移量AJMPDAS0;TAB:DB80H,83H,86H,89H,8DH,90HDB93H,96H,99H,9CH,9FH,0A2HDB0A5H,0A8H,0ABH,0AEHDB6FH,72H,76H,79H,7CH,80H,*,应用电子系,106,*,应用电子系,107,思考与实践,设计:两个同频反相的三角波波形发生器1)硬件电路设计。画出电路,写出相应地址,确定工作方式。2)软件设计。编写程序,烧写程序。3)功能测试。波形测试、频率范围、幅度大小。4)完成报告。,A/D转换器,模拟量,数字量,*,应用电子系,108,A/D转换的基本原理,存在多种A/D转换技术,各有特点,分别应用于不同的场合4种常用的转换技术计数器式逐次逼近式双积分式并行式,*,应用电子系,109,1.计数器式,以最低位为增减量单位的逐步计数法,*,应用电子系,110,2.逐次逼近式,从最高位开始的逐位试探法,*,应用电子系,111,3.双积分式,两个积分阶段实质是电压/时间变换,*,应用电子系,112,4.并行式,速度快成本高直接比较法,*,应用电子系,113,A/D转换器,A/D的性能指标1、转换时间:完成一次AD转换所使用的时间。2、转换精度:是由模拟误差和数字误差组成,前者由模拟电路部分产生,后者由数字电路产生。3、量化间隔是A/D转换器的主要技术指标之一。量化间隔可由下式求得:,满量程输入电压,满量程电压,*,应用电子系,114,A/D转换器,4、量化误差:量化误差一般用绝对量化误差表示;可由下式求得:,量化间隔,*,应用电子系,115,ADC0809,具有A/D转换的基本功能CMOS工艺制作8位逐次逼近式ADC转换时间为100s包含扩展部件多路开关三态锁存缓冲器,A/D转换器,*,应用电子系,116,ADC0809的内部结构图,*,应用电子系,117,1.ADC0809的模拟输入,提供一个8通道的多路开关和寻址逻辑IN0IN7:8个模拟电压输入端ADDA、ADDB、ADDC:3个地址输入线ALE:地址锁存允许信号ALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D转换,2.ADC0809的转换时序,*,应用电子系,119,3.ADC0809的数字输出,ADC0809内部锁存转换后的数字量具有三态数字量输出端D0D7配合输出允许信号OE当输出允许信号OE为高电平有效时,将三态锁存缓冲器的数字量从D0D7输出,*,应用电子系,120,4.ADC0809的转换公式,*,应用电子系,121,单极性转换示例,基准电压VREF(+)5V,VREF()0V输入模拟电压Vin1.5VN(1.50)(50)25676.8774DH,*,应用电子系,122,双极性转换示例,基准电压VREF(+)5V,VREF()5V输入模拟电压Vin1.5VN(1.55)(55)25689.6905AH,*,应用电子系,123,ADC芯片与主机的连接,ADC芯片相当于“输入设备”,需要接口电路提供数据缓冲器主机需要控制转换的启动主机还需要及时获知转换是否结束,并进行数据输入等处理,*,应用电子系,124,1.数据输出线的连接,与主机的连接可分成两种方式直接相连:用于输出带有三态锁存器的ADC芯片通过三态锁存器相连:适用于不带三态锁存器的ADC芯片,也适用带有三态锁存缓冲器的芯片ADC芯片的数字输出位数大于系统数据总线位数,需把数据分多次读取,*,应用电子系,125,2.A/D转换的启动(1),启动信号一般有两种形式脉冲信号启动转换电平信号启动转换,转换启动,转换结束,*,应用电子系,126,2.A/D转换的启动(2),主机产生启动信号有两种方法编程启动软件上,执行一个输出指令硬件上,利用输出指令产生ADC启动脉冲,或产生一个启动有效电平定时启动启动信号来自定时器输出,*,应用电子系,127,3.转换结束信号的处理,不同的处理方式对应程序设计方法不同查询方式把结束信号作为状态信号中断方式把结束信号作为中断请求信号延时方式不使用转换结束信号DMA方式把结束信号作为DMA请求信号,*,应用电子系,128,51对A/D转换器的接口,1、51单片机对0809的操作:0809和51直接相连,注意如下几个操作步骤:给出输入通道的选通地址,启动0809的转换;可采用延时、查询EOC、EOC中断等方式确定转换是否结束。0809结果的读取。,*,应用电子系,129,51对A/D转换器的接口,*,应用电子系,130,根据测量系统要求不同以及CPU忙闲程度,通常多采用三种软件编程控制方式:程序查询方式延时方式中断控制方式,ADC0808/0809转换器程序设计方法,*,应用电子系,131,【例】模拟量由通道0输入,转换成对应的数字量之存入内部RAM的40H单元中。程序清单:MOVR0,#40H;置数据缓冲区指针MOVDPTR,#7000H;置IN0通道地址MOVXDPTR,A;IN0接A/D,并启动A/DJBP3.2,$;为高,则继续查询MOVXA,DPTR;数据读入AMOVR0,A;存入40H单元,ADC0808/0809转换器程序设计方法,(1)程序查询方式,*,应用电子系,132,程序清单:CLRA;MOVR2,A;MOVR3,A;清除工作单元R3R2MOVR7,#8;作采样次数计数器MOVDPTR,#7007H;选IN7通道L1:MOVXDPTR,A;启动A/D转换JBP3.2,$;等待A/D转换结束MOVXA,DPTR;采样ADDA,R2;加低8位MOVR2,A;存低8位MOVA,R3;取高8位ADDCA,#0;加CYMOVR3,A;存高8位DJNZR7,L1;未完则继续,MOVR7,#3;R7作移位计数器L2:CLRC;清除CYMOVA,R3;RRCA;MOVR3,A;MOVA,R2;RRCAMOVR2,A;DJNZR7,L2;R3R2内容右移三次即除8MOV7FH,A;存算术平均值,【例】求通道7模拟量8次采样的算术平均值,并存入内部RAM的7FH单元中。,这种取8次采样平均值的方法,可以消除干扰,使采样数据更稳定可靠。,*,应用电子系,133,(2)延时方式读取ADC值,若8031的晶振为6MHz,ALE为1MHz,A/D转换时间小于100s,则延时程序:MOVRn,#25;延时常数DJNZRn,$;重复执行一次4s为了确保转换完成,延时时间一定要大于A/D转换时间,*,应用电子系,134,(3)中断采样方式,采用中断方式。在中断方式中,CPU启动A/D转换后,可以继续执行主程序。当A/D转换结束时,发出一转换结束信号EOC,该信号经反相器接8031的P3.2引脚,向CPU发出中断请求。CPU响应中断后,即可读入数据并进行处理。,*,应用电子系,135,【例】根据0809接口电路连接图,采用中断方式对IN0通道的模拟输入量依次采样16个点,存放在内部数据存贮器70H7FH单元中待用。程序分为三部分:初始化程序:对中断和各工作单元初始化;主程序:启动A/D转换、控制通道地址/数据存贮器地址修改;中断服务程序:读取A/D转换器数据、送存。,*,应用电子系,136,程序清单如下:ORG0000HLJMPSTARTORG0003HLJMPINT0P;初始化程序START:MOVR0,#70H;RAM首地址MOVR7,#16;计数器MOVSP,#3FH;设堆栈区SETBIT0;边沿触发SETBEX0;开中断SETBEA;CPU开中断MAIN0:MOVDPTR,#7000H;通道首址MAIN:CLRF0;清F0MOVXDPTR,A;启动转换TEST:JNBF0,DONE;测试DJNZR7,MAIN;16个点未完,则继续;DONE:;继续执行SJMPTEST,;中断处理程序INT0P:PUSHACC;进栈SETBF0;置位F0MOVXA,DPTR;读A/D转换数据MOVR0,A;A/D数据送存RAMINCR0;地址加1POPACC;退栈RETI;返回,测控系统中的模拟量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论