欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    STC12C5A60S2单片机的AD转换.docx

    • 资源ID:3166292       资源大小:37.17KB        全文页数:3页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    STC12C5A60S2单片机的AD转换.docx

    STC12C5A60S2单片机的AD转换A/D转换测试程序 #include “stc12c5a.h”/头文件在STC公司主页上下载 #include ”intrins.h” /与STC12C5A60S2单片机ADC相关的寄存器说明/ Sfr ADC_CONTR = 0xBC;/AD转换控制寄存器 Sfr ADC_RES = 0xBD;/AD转换结果寄存器高 Sfr ADC_RESL = 0xBE;/AD转换结果寄存器低 Sfr P1ASF = 0x9D;/P1口模拟转换功能控制寄存器 Sfr AURX1 = 0xA2;/AD转换结果存储方式控制位 #define ADC_POWER 0x80 /ADC电源开 #define ADC_FLAG 0x10 /ADC结束标志位 #define ADC_START 0x08 /ADC启动控制位设为开 #define ADC_SPEEDLL 0x00 /设为540个时钟周期ADC一次 #define ADC_SPEEDL 0x20 /设为360个时钟周期ADC一次 #define ADC_SPEEDH 0x40 /设为180个时钟周期ADC一次 #define ADC_SPEEDHH 0x60 /设为90个时钟周期ADC一次 void AD_init(void); void delay(unsigned int a); unsigned int AD_get(unsigned char n); float AD_work(unsigned char n); void main unsigned char i; AD_init; while(1) for(i=0;i<8;i+) AD_work(i); delay(20); unsigned int AD_get(unsigned char n) /第n通道ADC采样函数 unsigned int adc_data; ADC_RES = 0; /清零 ADC_CONTR=ADC_POWER|ADC_SPEEDLL|n|ADC_START;/打开AD转换电源、设定转换速度、设定通道号、AD转换开始 _nop_;_nop_;_nop_;_nop_;/要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR 寄存器 while(!(ADC_CONTR&ADC_FLAG); /等待转换完成 adc_data=ADC_RES; /转换结果计算,取8位结果 ADC_CONTR&=ADC_FLAG;/关闭AD转换,ADC_FLAG位由软件清0 return adc_data; /返回ADC的值 float AD_work(unsigned char n) float AD_val; /定义处理后的数值AD_val为浮点数 unsigned char i; for(i=0;i<100;i+) AD_val+=AD_get(n); /转换100次求平均值(提高精度) AD_val/=100; AD_val=(AD_val*5)/256; /AD的参考电压是单片机上的5v,所以乘5即为实际电压值 return AD_val; void AD_init(void) P1ASF = 0xff; /P1口全部作为模拟功能A/D使用 ADC_RES = 0; /清零转换结果寄存器高8位 ADC_CONTR = ADC_POWER|ADC_SPEEDLL; delay(2); /等待1ms,让AD电源稳定 void delay(unsigned int a) unsigned int i; while (a-) i=5000; while(i-);

    注意事项

    本文(STC12C5A60S2单片机的AD转换.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开