C模拟量接口编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 7 章 MCS-51系列单片机模拟量接口的C51编程 7.1 8位并行D/A转换器DAC0832的C51编程 7.2 12位并行DAC1208和串行D/AMAX517的C51编程 7.3 8位A/D转换器ADC0808/0809的C51编程 7.4 12位串行A/D转换器TLC2543的C51编程 7.1 8位并行D/A转换器DAC0832 的C51编程 7.1.1 DAC0832基础知识 【例7-1】DAC082单缓冲工作方式示例 【例7-2】DAC0832双缓冲器工作方式示例 【例7-3】多路DAC0832输出示例 7.1.3 DAC0832输出各种波形的C51编程 1.阶梯波 设定一8位的变量,该变量从0开始循环增量,每增量一次向DAC0832写入一个数据,得到一个输出电压,这样可以得到一个阶梯波。 DAC0832的分辨率是8位,如其满刻度是5V,则一个阶梯波的幅度为:V=5V/256=19.5mV void main( ) { uchar i=0; while(1) { for(i=0;i256;i++) { DAC0832=i;} } } 2.三角波 void main( ) { uchar i=0; while(1) { for(i=0;i0xff;i++) { DAC0832=i;} for(i=0xff;i0;i--) { DAC0832=i;} } } 3.方波 void main( ) { uchar i=0; while(1) { DAC0832=0xff; 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中,从而得到一个全周期的正弦编码表。 code uchar sintab[ ]= { 0x7f, 0x89, 0x94, 0x9f, 0xaa, 0xb4, 0xbe, 0xc8, 0xd1, 0xd9, 0xe0, 0xe7, 0xed, 0xf2, 0xf7, 0xfa, 0xfc, 0xfe, 0xff }; void main( ) { uchar data i=0,k; while(1) { for(i=0;i18;i++) { DAC0832=sintab[i];} for(i=18;i0;i--) { DAC0832=sintab[i];} for(i=0;i18;i++) {DAC0832=~sintab[i];} for(i=18;i0;i--) {DAC0832=~sintab[i];} } } 【例7-4】采用DAC0832实现的波形发生器 7.2 12位并行D/A芯片DAC1208的C51编程 【例7-5】利用DAC1208驱动直流电机 7.3 8位A/D转换器ADC0809的C51 作用:完成模拟量到数字量的转换 分辨率: 转换时间: 1.主要功能特点 ?分辨率为8位; ?总的不可调误差在±(1/2)LSB和±1LSB之间; ?典型转换时间为100μs; ?具有锁存控制的8路多路开关; ?具有三态缓冲输出控制; ?单一+5V供电,此时输入范围为0~5V; ?输出与TTL兼容; ?工作温度范围—40℃~+85℃。 2.结构与外部引脚 3.ADC0809的操作时序 【例7-6】1路模拟输入A/D转换示例 (1)无条件方式: #includeabsacc.h #includereg51.h #define uchar unsigned char #define ADC08090 XBYTE[0x78ff] void delay( ) { uchar j; for(j=0;j250;j++);} void main( ) { while(1)

文档评论(0)

taotao0a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档