STC12C5A系列内置AD-PWM(频率可调)串口发送.pdf

STC12C5A系列内置AD-PWM(频率可调)串口发送.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品文档 #includestc12c5a.h #includeintrins.h #define uchar unsigned char // - void AD_init(); //AD 初始化函数 void delay(unsigned int a); // 延时函数( 1ms) float AD_work(unsigned char channel); //AD 数值处理函数 unsigned int AD_get(unsigned char channel); //AD 转换函数 void PCA(); // 设置 PWM输出函数 unsigned char ge1,n1,m1,aa,num,pwm; int V,temp1; sbit key1=P0^1; sbit key2=P0^2; // - void send(uchar data1) { ES=0; // 关闭中断 TI=0; SBUF=data1; while(!TI); // 等待发送完成 TI=0; // 中断标志位清 0 ES=1; // 打开中断 } void chuankou() // 串口发送 AD { temp1=V; ge1=temp1/1000; m1=(temp1%1000)/100; n1=((temp1%1000)%100)/10; send(ge1+48); // 因为 0 对应的 ASCII 码是 48 ,所以要 +48 send(.); send(m1+48); send(n1+48); send(V); send( ); } 。 1欢迎下载 精品文档 // - unsigned int AD_get(unsigned char channel) { ADC_CONTR=0x88|channel; // 开启 AD转换 1000 1000 即 POWERSPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 _nop_(); _nop_(); _nop_(); _nop_();// 要经过 4 个 CPU时钟的延时,其值才能够保 证被设置进 ADC_CONTR寄存器 while(!(ADC_CONTR0x10)); // 等待转换完成 ADC_CONTR=0xe7; // 关闭 AD转换, ADC_FLAG位由软件清 0 return(ADC_RES*4+ADC_RESL); // 返回 AD转换完成的 10 位数据 (16 进制 ) } // - float AD_work(unsigned char channel) { double AD_val,AD_vale; // 定义处理后的数值 AD_val 为浮点数

您可能关注的文档

文档评论(0)

lyf66300 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8020140062000006

1亿VIP精品文档

相关文档