void ADC0_Init (void){REF0CN = 0x0E; // VDD作为基准电压,启用内部温度传感器AMX0P = 0x10; // 10是P3.0,试过07(1.7)和1E(温度),都没问题ADC0CF = 0xFC; // 11111,32分频? (*表示分频数-1=31) D2为1,左对齐AMX0N = 0x1F; // 单端方式ADC0CN = 0xC2; // T2溢出作为启动信号EIE1 |= 0x08; // 开中断}void System_Init (void){PCA0MD &= ~0x40; OSCICN |= 0x03; Port_Init (); Timer_Init (); ADC0_Init ();}void DelayMS(uint x){uchar i;while(x--){for(i=120;i>0;i--);}}void main(void){System_Init (); lcd_init();clr_screen();DelayMS(100);lcd_pos(0,0);disp_chinese(hang1);lcd_pos(1,0);disp_chinese(hang2);lcd_pos(2,0);disp_chinese(hang3);lcd_pos(3,0);disp_chinese(hang4);EA = 1;while (1){led0=~led0;DelayMS(5500);}}测试结果:
本文引用地址:https://www.eepw.com.cn/article/201611/323298.htm1、用开发板上的电位器,可以让高位结果在0~255之间变化
2、用温度传感器,室温下显示高位为65,*近笔记本风扇数秒后变成66,说明温度有变化,因为是高位,不明显,也没计算。
3、用全新的南孚电池一节,显示稳定的121。
____________________________________________________________________________
一、修改程序,将10位数字量转换成0~1023显示在屏幕上
*用变位器,可以实现1~1023的变化,1和0之间无法稳定,直接接地也无法显示0
*用一节全新电池,显示485,VDD为3V,偏差不大。
二、再修改程序,将正输入设为温度传感器
*显示263,稍微加热后变成265,仍然觉得不够明显
*263对应电压约770mv,根据公式换算温度是负数。。。。
在笔记本散热口放了一会升到268,还是低!
评论