1、现代轮机监控技术,主讲人:甘辉兵邮箱:QQ:45936073手机:13998562647轮机工程学院 轮机自动化教研室远航楼2区205,现代轮机监控技术,本课程主要内容,第一章 MCS-51单片机的硬件结构第二章 MCS-51单片机的指令系统第三章 汇编语言程序设计第四章 存储器与单片机的连接第五章 MCS-51中断系统第六章 定时器/计数器第七章 MCS-51与 A/D和D/A的接口第八章 MCS-51扩展I/O接口,第七章 MCS-51与 A/D和D/A的接口,DAC(Digital to Analog Convertor):主要用于模拟控制,通过机械或电气手段来对被控对象进行调整和控制;
2、ADC(Analog to Digital Convertor):主要用于数据采集,提供被控对象的各种实时参数,以便单片机对被控对象进行监视;,第七章 MCS-51与 A/D和D/A的接口,第七章 MCS-51与 A/D和D/A的接口,本章主要内容7-1 D/A转换器7-2 MCS51与D/A的接口7-3 A/D转换器7-4 MCS51与A/D的接口,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,7.1 D/A转换器,第七章 MCS-51
3、与 A/D和D/A的接口,D/A转换器的原理,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,D/A转换器的原理,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,一、 D/A转换器的性能指标1.分辨率(Resolution):DAC所能分辨的最小电压增量 VREF 2-n 例如:102839mv; 10216153v2.转换精度:满量程时,实际输出与理论输出的接近度3.偏移误差:零点偏移4.线性度:实际转换特性曲线与理论直线间的最大偏差5.转换速度、温度灵敏度等,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,二、 DAC08321.
4、DAC0832的结构 2.引脚功能,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,72,7.1 D/A转换器,第七章 MCS-51与 A/D和D/A的接口,2.引脚功能:20条引脚,双列直插式封装(1)DI0DI7:输入CPU送来的待转换数字量;(2)控制线:CS为片选线 ILE为允许数字量输入线 XFER为传送控制输入线 WR1和WR2为写命令输入线(3)输出线:Rfb为运算放大器反馈线 Iout1和Iout2为两条模拟电流输出线;(4)电源线:VCC为电源线 VREF为参考电压 DGND为数字量地线 AGND为模拟量地线,7.2 MCS-51与D/A的接口,第七章 M
5、CS-51与 A/D和D/A的接口,1.直通方式2.单缓冲方式 3.双缓冲方式,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,一、直通方式直通方式是将两个寄存器的五个控制端预先置为有效两个寄存器都开通,只要有数字信号输入就立即进入D/A转换,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,二、单缓冲方式单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式可以将WR2和Xfer相连在接到地上,并把WR1接到80C51
6、的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,73,DAC0832用作波形发生器,产生锯齿波、三角波和方波。,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,锯齿波程序: ORG 1000H CLR ASTART: MOV R0, #0FEH MOVX R0, A INC A SJMP START END,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,三角波程序: ORG 1080HSTART: CLR A MOV R0, #
7、0FEHDOWN: MOVX R0, A INC A JNZ DOWN MOV A, #0FEHUP: MOVX R0, A DEC A JNZ UP SJMP DOWN END,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,方波程序: ORG 1100HSTART: MOV R0, #0FEHLOOP: MOV A, #33H MOVX R0, A ;置上限电平 ACALL DELAY MOV A, #0FEH MOVX R0, A ;置下限电平 ACALL DEALY SJMP LOOP END,延时子程序(125ms):DELAY: MOV R2, #
8、0F5HDELAY1: MOV R1, #0FEHDELAY2: DJNZ R1,DELAY2 DJNZ R2,DELAY1 RETDJNZ 指令: 2个机器周期245*254*2us=125ms,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,二、双缓冲方式双缓冲方式把DAC0832的输入寄存器和DAC寄存器都连接成受控方式这种方式可用于多路模拟量要求同时输出的情况下,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,75,7.2 MCS-51与D/A的接口,第七章 MCS-51与 A/D和D/A的接口,第七章 MCS-51与
9、 A/D和D/A的接口,ORG 1200HDA1 DATA 20HDA2 DATA 40HDTOUT: MOV R1, #DA1;0#区R1指向DA1 MOV R2, #30;数据块长度送0#区R2 SETB RS0;转入1#区工作寄存器 MOV R1, #DA2;1#区R1指向DA2 CLR RS0;返回0#工作寄存器区NEXT: MOV R0, #0FDH;0#区R0指向1#DAC0832数字量口 MOV A, R1;DA1中数据送A MOVX R0, A;DA1中数据送1#DAC0832 INC R1;修改DA1指针0#区R1 SETB RS0 ;转入1#区 MOV R0, #0FEH;
10、1#R0指向2#DAC0832数字量口 MOV A, R1 ;DA2中数据送A MOVX R0, A ;DA2中数据送2#DAC0832 INC R1 ; 修改DA2指针1#区R1 INC R0 ; 1#区R0指向DAC的启动D/A口, #0FFH MOVX R0, A ;启动DAC工作 CLR RS0 ;返回0#区 DJNZ R2, NEXT ;若未完,则NEXT SJMP DTOUT ;若送完,则循环 END,7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,作用:将模拟量转换为计算机所能识别的数字量转换方式 : (1)计数器方式 速度慢 (2)双积分方式 抗干扰能力强
11、精度较高 速度慢 (3)逐次逼近方式 结构简单、速度较快 (4)并行转换方式 结构复杂、速度最快,7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,一、逐次逼近A/D转换原理,注:N位需要N次比较,SAR: Successive Approximation Register,7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,二、并行A/D转换原理,三位并行A/D转换器原理,7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,三、 A/D转换的性能指标 主要有:分辨率、线性度、偏移误差、转换速度、 转换精度、温度灵敏度、功耗 1.转换速度(转换
12、时间):完成一次A/D转换所需时间的倒数。 如8位逐次逼近ADC:约100微秒 2.转换精度:模拟误差数字误差 模拟误差:比较器、解码网中电阻值以及基准电压波动等所引起的误差 数字误差:丢失码、量化误差(LSB/2),7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,四、 ADC0809芯片8位逐次逼近、可以直接和CPU接口 姐妹芯片位ADC08081.内部结构 图7-6,7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,7-6,7.3 A/D转换器,第七章 MCS-51与 A/D和D/A的接口,7-7,7.3 A/D转换器,第七章 MCS-51与 A/D和
13、D/A的接口,四、 ADC0809芯片2、引脚功能 28引脚,双列直插式封装(1)IN0IN7,8路模拟电压输入线(2)地址输入和控制线(3)数字量输出及控制线(4)电源线及其它,7.4 MCS-51和ADC的接口,第七章 MCS-51与 A/D和D/A的接口,三个问题:(1)给START送一个100ns宽的起动正脉冲;(2)获取EOC线上的状态信息;查询法:低电平转换未完成;高电平给OE送一个高电平中断法:EOC作为中断请求输入线,通过中断服务程序将OE变为高电平;(3)给“三态输出锁存器”分配一个端口地址;,7.4 MCS-51和ADC的接口,第七章 MCS-51与 A/D和D/A的接口,
14、7-8,7.4 MCS-51和ADC的接口,第七章 MCS-51与 A/D和D/A的接口,启动转换:MOV R0, #0F0HMOV A, #07H ;选择IN7模拟电压地址送AMOVX R0, A ;START上产生正脉冲 或:MOV DPTR, #07F0HMOVX DPTR, A读取转换结果:MOV R0, #F0HMOVX A, R0 ;OE变为高电平,数字量送A,7.4 MCS-51和ADC的接口,第七章 MCS-51与 A/D和D/A的接口,例:编程对图中IN0IN7上模拟电压采集一遍数字量,并送入内部RAM以30H为始址的输入缓冲区。,第七章 MCS-51与 A/D和D/A的接口
15、,主程序:ORG 0A00H MOV R1, #30H ;输入数据区始址送R1MOV R4, #8 ;模拟量总路数送R4MOV R2, #00H ;IN0地址送R2SETB EA ;开CPU中断SETB EX1 ;允许INT1中断SETB IT1 ;INT1为边沿触发MOV R0, #0F0H ;送端口地址F0H到R0MOV A, R2 ;IN0地址送AMOVX R0, A ;送IN0地址并启A/DSJMP $ ;等待中断或其他,中断程序: ORG 0013H AJMP CINT1 ORG 0100HCINT1: MOV R0, #0F0H MOVX A, R0 MOV R1, A INC R1 INC R2 MOV A, R2 MOVX R0, A DJNZ R4, LOOP CLR EX1LOOP: RETI END,谢谢,