资源描述:
《单片机原理及其应用课件--第八章-2(修订).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章MCS-51单片机的接口技术8.1显示器及其接口8.2键盘接口8.3D/A转换器及其接口8.4A/D转换器及其接口8.5打印机接口*8.6拨码盘及语音接口*18.3D/A转换器及其接口8.3.1D/A转换器8.3.2MCS-51和D/A的接口21.D/A转换器的原理D/A转换器的原理:把输入数字量中每位都按其权值分别转换成模拟量,并通过运算放大器求和相加(如图8-3-2所示)。3图8-3-2T型电阻网络型D/A转换器根据克希荷夫定律,如下关系成立:I0==1/2·I1I1==1/2·I2I2==1/2
2、·I3I3==VREF/2R4n位D/A转换器5D/A转换器的输出形式电压输出电流输出输出加运放将电流转为电压。D/A转换器的输入锁存无锁存器不能与P0直接相连。有锁存器能与P0直接相连。62.D/A转换器的性能指标l分辨率:分辨率是指D/A转换器的单位数字量引起的模拟量输出的变化。一般定义为:输出满度与2n的比值。例如:8位D/A,输出满度是5V,分辨率为5/28=19.5mvl转换精度:转换精度指满度校准时,在全量程内,DAC的实际模拟输出值与理论值的最大相对误差。l线性度:线性度是指DAC的实际转换特
3、性曲线和理想直线之间的最大偏移误差。l建立时间:建立时间是数据变化满刻度时,输出达到终值±(1/2)LSB所需的时间。73.DAC0832lDAC0832内部结构DAC0832内部由三部分电路组成(图8-3-3)。“8位输入寄存器”、“8位DAC寄存器”、“8位D/A转换电路”由8位T型电阻网络和电子开关组成。图8-3-3DAC0832原理框图8l引脚功能DAC0832共有20条引脚,双列直插式封装。(1)数字量输入线DI7~DI0(8条);(2)控制线(5条);(3)输出线(3条);(4)电源和地线(4条
4、)。图8-3-4DAC0832原理框图9第一级寄存器选通:ILE=1,CE=0,WR1=0第二级寄存器选通:WR2=0,XFER=0108.3.2MCS-51和D/A的接口1.DAC的应用(输出端)lDAC用作单极性电压输出lDAC用作双极性电压输出(图8-3-5、表8-3-1)lDAC用作程控放大器(图8-3-6)11+5V图8-3-4单极性DAC的接法12图8-3-5双极性DAC的接法132.MCS-51与8位DAC的接口(输入端)MCS-51和DAC0832接口时,有三种连接方式:直通方式单缓冲方式(
5、只有一路模拟量输出,或多路模拟量输出但不要求同步)双缓冲方式(多路模拟量输出且要求同步)14图8-3-7单缓冲方式下的DAC0832(一个直通,一个受控)MOVA,#80HMOVR0,#0FEHMOVX@R0,A+5V15图8-3-8DAC产生波形16锯齿波ORG0000HSTART:MOVR0,#0FEHCLRALOOP:MOVX@R0,AINCASJMPLOOPEND17三角波ORG0000HSTART:MOVR0,#0FEHCLRADOWN:MOVX@R0,AINCAJNZDOWNUP:DECAMOV
6、X@R0,AJNZUPSJMPDOWNEND18矩形波ORG0000HSTART:MOVR0,#0FEHLOOP:MOVA,#33HMOVX@R0,AACALLDELAY1MOVA,#0FFHMOVX@R0,AACALLDELAY2SJMPLOOPEND19图8-3-98031和两片DAC0832的接口(双缓冲方式,数字量的输入锁存和转换输出分两步)FDH1#DAC0832输入寄存器地址FEH2#DAC0832输入寄存器地址FFH1#和2#DAC0832DAC寄存器地址20设8031内部RAM中有两个长度为
7、20的数据块,其起始地址分别为20H和40H,编出能把20H和40H中的数据同步从1#和2#DAC0832输出的程序。程序设计:设0区R1寄存器指向20H单元,1区R1指向40H单元,0区R2寄存器存放数据块长度,0区和1区的R0指向DAC端口地址。21ORG0000HDTOUT:MOVR1,#20H;1#DAC数据区指针MOVR2,#20;数据块长度计数器SETBRS0;切换到1区MOVR1,#40H;2#DAC数据区指针CLRRS0;回0区NEXT:MOVR0,#0FDH;1#DAC输入寄存器地址MOV
8、A,@R1;取1#DAC数据指针指向单元中的数据MOVX@R0,A;数据送1#DAC0832输入寄存器INCR1;修改1#数据指针22SETBRS0;转1区MOVR0,#0FEH;2#DAC输入寄存器地址MOVA,@R1;取2#DAC数据指针指向单元中的数据MOVX@R0,A;数据送2#DAC0832输入寄存器INCR1;修改2#数据指针INCR0;指向1#,2#DAC端口地址MOVX@R0,A;启动两片DAC0