C51模拟量接口编程.ppt

上传人:tia****nde 文档编号:12706004 上传时间:2020-05-14 格式:PPT 页数:26 大小:385.50KB
返回 下载 相关 举报
C51模拟量接口编程.ppt_第1页
第1页 / 共26页
C51模拟量接口编程.ppt_第2页
第2页 / 共26页
C51模拟量接口编程.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
第7章MCS-51系列单片机模拟量接口的C51编程,7.18位并行D/A转换器DAC0832的C51编程7.212位并行DAC1208和串行D/AMAX517的C51编程7.38位A/D转换器ADC0808/0809的C51编程7412位串行A/D转换器TLC2543的C51编程,718位并行D/A转换器DAC0832的C51编程,7.1.1DAC0832基础知识,【例7-1】DAC082单缓冲工作方式示例,【例7-2】DAC0832双缓冲器工作方式示例,【例7-3】多路DAC0832输出示例,7.1.3DAC0832输出各种波形的C51编程,1阶梯波,设定一8位的变量,该变量从0开始循环增量,每增量一次向DAC0832写入一个数据,得到一个输出电压,这样可以得到一个阶梯波。DAC0832的分辨率是8位,如其满刻度是5V,则一个阶梯波的幅度为:V=5V/256=19.5mV,voidmain()uchari=0;while(1)for(i=0;i256;i+)DAC0832=i;,2三角波,voidmain()uchari=0;while(1)for(i=0;i0;i-)DAC0832=i;,3方波,voidmain()uchari=0;while(1)DAC0832=0 xff;delay1();DAC0832=0;delay2();,4正弦波,利用DAC0832接口实现正弦波输出时,先要对正弦波形模拟电压矩形离散化。对于一个正弦波形取N个等分离散点,按定义计算出对应1、2、3。N各离散点的数据值D1、D2、D3、DN制成一个正弦波表。因为正弦波在半周期内是以极值点位中心对称,而且正弦波形为互补关系,故在制正弦表时只需要1/4周期,即取0/2之间的数值,,步骤如下:,(1)计算0/2区间N/4个离散的正弦值;(2)根据对称关系复制/2区间的值;(3)将0区间的各点根据求补即可得到2区间各值。将得到的这些数据根据所用的DAC0832的位数进行量化,得到相应的数字量,依次存入RAM或固化于EPROM中,从而得到一个全周期的正弦编码表。,codeucharsintab=0 x7f,0 x89,0 x94,0 x9f,0 xaa,0 xb4,0 xbe,0 xc8,0 xd1,0 xd9,0 xe0,0 xe7,0 xed,0 xf2,0 xf7,0 xfa,0 xfc,0 xfe,0 xff;voidmain()uchardatai=0,k;while(1)for(i=0;i0;i-)DAC0832=sintabi;for(i=0;i0;i-)DAC0832=sintabi;,【例7-4】采用DAC0832实现的波形发生器,7.212位并行D/A芯片DAC1208的C51编程,【例7-5】利用DAC1208驱动直流电机,7.38位A/D转换器ADC0809的C51,作用:完成模拟量到数字量的转换分辨率:转换时间:,1主要功能特点,分辨率为8位;总的不可调误差在(1/2)LSB和1LSB之间;典型转换时间为100s;具有锁存控制的8路多路开关;具有三态缓冲输出控制;单一+5V供电,此时输入范围为05V;输出与TTL兼容;工作温度范围40+85。,2结构与外部引脚,3ADC0809的操作时序,【例7-6】1路模拟输入A/D转换示例,(1)无条件方式:,#include#include#defineucharunsignedchar#defineADC08090XBYTE0 x78ffvoiddelay()ucharj;for(j=0;j250;j+);voidmain()while(1)ADC08090=0;/启动A/Ddelay();P1=ADC08090;/读取数据,(2)查询方式,#include#include#defineucharunsignedchar#defineADC08090XBYTE0 x78ffsbitP33=P33;Voidmain()while(1)ADC08090=0;/启动A/Dl1:P33=1;if(P33=0)P1=ADC08090;/读取数据elsegotol1;,(3)中断方式,#include#include#defineucharunsignedchar#defineADC08090XBYTE0 x78ffsbitP33=P33;voidmain()EA=1;EX1=1;IT1=1;ADC08090=0;/启动A/Dwhile(1);voidint0()interrupt2P1=ADC08090;/读取数据ADC08090=0;/启动A/D,7412位串行A/D转换器TLC2543的C51编程,【例7-8】,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!