付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A/D转换测试程序(ADC查询方式)#include “stc12c5a. h” /头文件在STC公司主页上 下载#i nc I ude ” i ntr i ns. h”/与STC12C5A60S2单片机ADC相关的寄存器说明/SfrADC_C0NTR= 0xBC;/AD转换控制寄存器SfrADC_RES=0xBD;/AD 转换结果寄存器高SfrADC_RESL二 0xBE;/AD 转换结果寄存器低SfrP1ASF=0x9D;/P1 口模拟转换功能控制寄存器SfrAURX1二 0xA2;/AD 转换结果存储方式控制位#defineADC_P0WER0x80/ADC电源开#def ineADC_
2、FLAG0x10/ADC结束标志伎#defineADC_START0x08/ADC启动控制位设为开0x00/设为 540#define ADC SPEEDLL个时钟周期ADC 一次#define ADC_SPEEDL0x20/设为360个时钟周期ADC 一次#define ADC_SPEEDH个时钟周期ADC 一次0x40/设为180#define ADC_SPEEDHH个时钟周期ADC 一次void AD_init(void);void de 1 ay (uns igned int a);0x60/设为90uns igned int AD get(uns igned char n); fIo
3、at AD work (uns i gned char n);void ma i n ()uns i gned char i; AD_i n i t ();whi le(1)for (i二0;i8;i+)AD work(i); de I ay (20);uns i gned int AD_get (uns i gned char n) /第 n 通 道ADC采样函数uns i gned int adc_data;ADC_RES = 0;/清零ADC_C0NTR=ADC_P0WER|ADC_SPEEDLL|n|ADC_START;/打开AD转换电源、设定转换速度、设定通道号、 AD转换开始_no
4、p_() ;_nop_() ;_nop_() ;_nop_() ;/要经过 4 个 CPU时钟的延时,其值才能够保证被设置进 ADC_C0NTR 寄存器wh i I e (! (ADC_CONTR&ADC_FLAG) ;/ 等待转换完成adc_data=ADC_RES;/转换结果计算,取8位结果ADC_CONTR&=ADC_FLAG; /关闭 AD 转换,ADC_FLAG 位由软件清0return adc_data;/返回 ADC 的值fIoat AD work (uns i gned char n)f I oat AD_va I ;/定义处理后的数值AD va I为浮点数uns i gned char i;for (i=0;i100;i+)AD_val+=AD_get (n) ; /转换 100 次求平均值 (提高精度)AD_val/=100;AD_val二(AD_val*5)/256; /AD 的参考电压是单 片机上的5v,所以乘5即为实际电压值return AD va I ;void AD init (void)P1ASF = Oxff; /P1 口全部作为模拟功能A/D使 用ADC_RES = 0;/清零转换结果寄存器高8位ADC_C0NTR = ADC_POWER|ADC_SPEEDLL;de I ay (2) ;/等待1ms,让AD电源稳定vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论