C8051F040内部温度传感器C程序_第1页
C8051F040内部温度传感器C程序_第2页
C8051F040内部温度传感器C程序_第3页
C8051F040内部温度传感器C程序_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、附录/内部温度传感器调试程序/利用过采样实现16位精度/ADC0START/ADC0_TEMP_PRO.c#includeADC0START#definetemppage=SFRPAGE;SFRPAGE=0 x00;AD0BUSY=1;SFRPAGE=temppage#defineSTACK_LEN128/采样128次,再将128个数据总和除以8处理后的数据相当于16个原始数据之和,在数值表现形式上为16bittypedefunsignedintuint;typedefunsignedcharuchar;typedefunsignedlongulong;sfr16RCAP2=0 xca;sfr

2、16RCAP3=0 xca;sfr16RCAP4=0 xca;sfr16TMR4=0 xcc;sfr16TMR3=0 xcc;sfr16TMR2=0 xcc;sfr16PCA0CP0=0 xfb;sfr16PCA0CP1=0 xfd;sfr16PCA0CP2=0 xe9;sfr16PCA0CP3=0 xeb;sfr16PCA0CP4=0 xed;sfr16PCA0CP5=0 xe1;sfr16ADC0VAL=0 xbe;sfr16ADC0GT=0 xc4;sfr16ADC0LT=0 xc6;uchartemppage;bitisnewdata;uintkk;floattemp;ucharsta

3、ck_index;ulongtotal;xdatafloatt20;存放温度检测数据,为20个数据xdatauintmystackSTACK_LEN;/过采样数据数组voidadc0_mux(uchartype,ucharsource);voidadc0_source(ucharsource);voidp3anolog_ini(ucharport);voidHVDA_ini(uchargaind);voidadc0_ini();voiddelay1ms(uinttime);voidconfig();voidadc0_mux(uchartype,ucharsource)/type配置测量方式为差

4、动还是单端输入/source为ADC0通道选择(共有9个通道)SFRPAGE=0 x00;AMX0CF=type;AMX0SL=source;voidadcO_source(ucharsource)/ADCO通道选择,为adcO_mux()的简化函数SFRPAGE=0 x00;AMX0SL=source;voidp3anolog_ini(ucharport)配置p3口模拟输入管脚SFRPAGE=0 x00;AMX0PRT=port;SFRPAGE=0 x0f;P3MDIN&=port;将相应管脚配置成模拟输入口voidHVDA_ini(uchargaind)/高压差动放大器配置SFRPAGE=

5、0 x00;HVA0CN=gaind;voidadc0_ini()SFRPAGE=0 x00;ADC0CF=0 x80;/ADC0时钟为系统时钟17分频,PGA增益为1ADC0CN=0 x80;/*AD0EN=1,ADC0模块使能AD0TM=0,ADC0为连续跟踪模式AD0CM1:AD0CM0=00b,为AD0BUSY启动方式AD0LJST=0,数据存储格式右对齐,即ADC0H存放12bit高四位*/REF0CN&=0 x0f;/AD0VRS=0,ADC0参考电压为VREFAREF0CNI=0 x07;/TEMPE=1,内部温度传感器工作/*BIASE=1,偏移产生器工作REFBE=1,内部参

6、考电平工作,电路部分须将VREF参考输出(C8051F40的第12管脚)与VREF0(C8051F040的16管脚相连,并最好并联一个4.7uF和0.1uF的旁路电容以电平滤波*/adc0_source(9);选择第9通道,即选择温度信号为AD转换EIE2|=0 x02;开ADC0中断voiddelay1ms(uinttime)/延迟1msuinti;uintj;for(i=0;itime;i+)for(j=0;j300;j+);voidconfig()/crossbar使能,但并没有进行外围设备配置WDTCN=0 x07;/WatchdogTimerControlRegisterWDTCN=

7、0 xDE;/DisableWDTWDTCN=0 xAD;SFRPAGE=0 x0F;XBR0=0 x00;/XBAR0:InitialResetValueXBR1=0 x00;/XBAR1:InitialResetValueXBR2=0 x40;/crossbar使能与否并不影响此程序运行XBR3=0 x00;/XBAR3:InitialResetValueSFRPAGE=0 x0F;P0MDOUT=0 x00;/OutputconfigurationforP0P1MDOUT=0 x00;/OutputconfigurationforP1P2MDOUT=0 x00;/Outputconfig

8、urationforP2P3MDOUT=0 x00;/OutputconfigurationforP3P4MDOUT=0 x00;/OutputconfigurationforP4P5MDOUT=0 x00;/OutputconfigurationforP5P6MDOUT=0 x00;/OutputconfigurationforP6P7MDOUT=0 x00;/OutputconfigurationforP7P1MDIN=0 xFF;/InputconfigurationforP1P2MDIN=0 xFF;/InputconfigurationforP2P3MDIN=0 xFF;/Input

9、configurationforP3SFRPAGE=0 x0F;CLKSEL=0 x00;/OscillatorClockSelectorOSCXCN=0 x00;/EXTERNALOscillatorControlRegisterOSCICN=0 x84;/InternalOscillatorControlRegistervoidmain()chari;config();adc0_ini();/ADC0初始化ADC0START;/ADC0启动EA=1;i=0;stack_index=0;while(1)if(isnewdata)由该位查询ADCO转化值是否更新if(stack_index=STACK_LEN)for(i=0,total=0;i19)i=0;在此设断点,观察程序运行结果delay1ms(100);ADC0START;voidADC0_ISR()interrupt15/ADC0中断SFRPAGE=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论