网站大量收购闲置独家精品文档,联系QQ:2885784924

C8051F040内部温度传感器C程序.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
附录一: //内部温度传感器调试程序// //利用过采样实现16位精度// //ADC0_TEMP_PRO.c #include C8051F040.h #define ADC0START temppage=SFRPAGE;SFRPAGE=0x00;AD0BUSY=1;SFRPAGE=temppage #define STACK_LEN 128 //采样128次,再将128个数据总和除以8 //处理后的数据相当于16个原始数据之和,在数值表现形式上为16bit typedef unsigned int uint; typedef unsigned char uchar; typedef unsigned long ulong; sfr16 RCAP2=0xca; sfr16 RCAP3=0xca; sfr16 RCAP4=0xca; sfr16 TMR4=0xcc; sfr16 TMR3=0xcc; sfr16 TMR2=0xcc; sfr16 PCA0CP0=0xfb; sfr16 PCA0CP1=0xfd; sfr16 PCA0CP2=0xe9; sfr16 PCA0CP3=0xeb; sfr16 PCA0CP4=0xed; sfr16 PCA0CP5=0xe1; sfr16 ADC0VAL=0xbe; sfr16 ADC0GT=0xc4; sfr16 ADC0LT=0xc6; uchar temppage; bit isnewdata; uint kk; float temp; uchar stack_index; ulong total; xdata float t[20];//存放温度检测数据,为20个数据 xdata uint mystack[STACK_LEN];//过采样数据数组 void adc0_mux(uchar type,uchar source); void adc0_source(uchar source); void p3anolog_ini(uchar port); void HVDA_ini(uchar gaind); void adc0_ini(); void delay1ms(uint time); void config(); void adc0_mux(uchar type,uchar source){//type 配置测量方式为差动还是单端输入 //source 为ADC0通道选择(共有9个通道) SFRPAGE=0x00; AMX0CF=type; AMX0SL=source; } void adc0_source(uchar source){//ADC0通道选择,为adc0_mux()的简化函数 SFRPAGE=0x00; AMX0SL=source; } void p3anolog_ini(uchar port){//配置p3口模拟输入管脚 SFRPAGE=0x00; AMX0PRT=port; SFRPAGE=0x0f; P3MDIN=~port;//将相应管脚配置成模拟输入口 } void HVDA_ini(uchar gaind){//高压差动放大器配置 SFRPAGE=0x00; HVA0CN=gaind; } void adc0_ini(){ SFRPAGE=0x00; ADC0CF=0x80;//ADC0时钟为系统时钟17分频,PGA增益为1 ADC0CN=0x80; /*AD0EN=1,ADC0模块使能 AD0TM=0,ADC0为连续跟踪模式 AD0CM1:AD0CM0=00b,为AD0BUSY启动方式 AD0LJST=0,数据存储格式右对齐,即ADC0H存放12bit高四位*/ REF0CN=0x0f;//AD0VRS=0,ADC0参考电压为VREFA REF0CN|=0x07;//TEMPE=1,内部温度传感器工作 /*BIASE=1,偏移产生器工作 REFBE=1,内部参考电平工作,电路部分须将VREF参考输出(C8051F40的第12管脚)与VREF0(C8051F040的16管脚相连,并最好并联一个4.7uF和0.1uF的旁路电容以电平滤波*/ adc0_source(9);//选择第9通道,即选择温度信号为AD转换 EIE2 |= 0x02; //开ADC0中断 } void delay1ms(uint time){//延迟1ms uint i; uint j; for (i=0;itime;i++){ for(j=0;j300;j++); } } void config(){//crossbar 使能,但并没有进行外围设备配置 WDTCN = 0x07; // Watchd

文档评论(0)

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

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

1亿VIP精品文档

相关文档