基本信息
文件名称:基于汇编与C语言的单片机原理及应用课件第8章 MCS-51单片机的外部扩展技术(二)(徐进老师制作).ppt
文件大小:3.5 MB
总页数:100 页
更新时间:2025-06-24
总字数:约2.85万字
文档摘要

在单片机应用系统中,如需同时输出多路模拟信号,这时的D/A转换器就必须采用双缓冲工作方式。图8-36是一个两路模拟信号同步输出的D/A转换接口电路。图中两片D/A转换器的片选端分别接在单片机的P2.5和P2.6引脚上,而是控制输入寄存器的,所以两片D/A转换器的输入寄存器地址为0DFFFH(P2.5=0)和0BFFFH(P2.6=0)。而这两片D/A转换器的DAC寄存器的控制端口都接在单片机的P2.7上,所以它们的共同编址为7FFFH。图8-36两路0832与单片机的接口电路【例8-13】设硬件接口电路如图8-36所示,设两片0832转换器的模拟输出分别用于示波器的X、Y偏转,试编程实现示波器上的光点根据参数X、Y的值同步移动。汇编程序如下:MOVDPTR,#0DFFFHMOVA,#XMOVX@DPTR,A;将参数X写入DAC(1)的数据输入锁存器MOVDPTR,#0BFFFHMOVA,#YMOVX@DPTR,A;将参数Y写入DAC(2)的数据输入锁存器MOVDPTR,#7FFFHMOVX@DPTR,A;两片DAC同时启动转换,同步输出SJMP$C语言编程如下:#includereg51.h#includeabsacc.h//定义绝对地址访问#defineINPUTR1XBYTE[0xDFFF]#defineINPUTR2XBYTE[0xBFFF]#defineDACRXBYTE[0x7FFF]#defineucharunsignedcharvoiddac2b(data1,data2)uchardata1,data2;{INPUTR1=data1;//送数据到一片DAC0832INPUTR2=data2;//送数据到另一片DAC0832DACR=0;//启动两路D/A同时转换}本章小结本章介绍了MCS-51单片机应用系统中常见的输入外设(键盘)和输出外设(LED数码管、LCD显示器)与MCS-51单片机的人机交互通道设计技术,还讨论了常用的A/D转换器(ADC0809)、D/A转换器(DAC0832)与MCS-51单片机的输入/输出通道设计技术。通过本章学习,读者应学会MCS-51单片机的交互通道和输入/输出通道的接口设计以及软件编程。按照输出数字量的有效位数,A/D转换器可分为4位、8位、10位、12位、14位、16位并行输出以及BCD码输出的3位半、4位半、5位半等多种。按照转换速度,A/D转换器大致分为超高速(转换时间≤1ns)、高速(转换时间≤1?s)、中速(转换时间≤1ms)、低速(转换时间≤1s)等几种不同转换速度的芯片。目前,除并行输出A/D转换器外,随着单片机串行扩展方式的日益增多,带有同步SPI串行接口的A/D转换器的使用也逐渐增多。串行输出的A/D转换器具有占用端口线少、使用方便、接口简单等优点,因此,读者要给予足够重视。较为典型的串行A/D转换器为美国TLC549(8位)、TLC1549/1543(10位)、AD7810(10位)和TLC2543(12位)等。为适应系统集成的需要,有些转换器还将多路转换开关、时钟电路、基准电压源、二–十进制译码器和转换电路集成在一个芯片内,为用户提供很多方便。8.2.2.2A/D转换器的主要技术指标(1)转换时间和转换速率A/D完成一次转换所需要的时间。转换时间的倒数为转换速率。(2)分辨率分辨率是衡量A/D转换器能够分辨出输入模拟量最小变化程度的技术指标。分辨率取决于A/D转换器的位数,所以习惯上用输出的二进制位数或BCD码位数表示。例如,A/D转换器AD1674的满量程输入电压为5V,可输出12位二进制数,即用212个数进行量化,其分辨率为1LSB,也即5V/212=1.22mV,其分辨率为12位,或A/D转换器能分辨出输入电压1.22mV的变化;又如,输出BCD码的A/D转换器MC14433,其满量程输入电压为2V,其输出最大的十进制数为1999,分辨率为3位半(BCD码),如果换