718
1万
管理员
使用道具 举报 送花
2
4
50
注册会员
73
5883
超级版主
iop78*** 发表于 2023-6-4 02:50 这个例程vref好像是2.5v,我 现在vref是vcc,请问那个adc表的数值应该怎么得到哦 ...
10
143
348
中级会员
43
336
595
高级会员
梁工 发表于 2023-8-1 14:35 只要NTC供电来自ADC的AV_REF,REF的电压从2.5V~VCC,ADC值都一样,不会影响精度。 ...
1159
5121
论坛元老
huh*** 发表于 2023-11-30 19:30 ntc的程序在哪里 ,借鉴的
#include "COMM/stc.h" //调用头文件 #include "COMM/usb.h" #include "seg_led.h" #include "key.h" #include "beep.h" #include "tim0.h" #include "exit.h" #include "adc.h" #include "ntc.h" #define MAIN_Fosc 24000000UL //定义主时钟 char *USER_DEVICEDESC = NULL; char *USER_PRODUCTDESC = NULL; char *USER_STCISPCMD = "@STCISP#"; bit TIM_10MS_Flag; //10ms的标志位 u16 Tme_CountDown = 0; //全局变量 bit RUN_STATE = 0; //0:正常运行 1:参数设置 u8 S_HOUR = 0; u8 S_MINUTE = 0; u8 S_SECOND = 0; void sys_init(); //函数声明 void delay_ms(u16 ms); //unsigned int void TIME_SET_Second(void) { S_SECOND ++; if( S_SECOND>60 ) { S_SECOND = 0; S_MINUTE++; } } void main() //程序开始运行的入口 { int TEMP_VAL; int count = 0; sys_init(); //USB功能+IO口初始化 usb_init(); //usb库初始化 delay_ms(500); Timer0_Init(); //定时器0初始化 ADC_Init(); P1M0 = 0x00; P1M1 = 0x08; EA = 1; //CPU开放中断,打开总中断。 while(1) //死循环 { delay_ms(2); if( DeviceState != DEVSTATE_CONFIGURED ) // continue; if( bUsbOutReady ) { usb_OUT_done(); printf("当前温度:%d\r\n",TEMP_VAL); } if( TIM_10MS_Flag==1 ) //如果10ms到了 { TIM_10MS_Flag = 0; //清空标志位 count++; if( count>=30 ) { count = 0; TEMP_VAL = Temp_Cal(ADC_Read(3)); SEG0 = TEMP_VAL/1000%10; SEG1 = TEMP_VAL/100%10; SEG2 = TEMP_VAL/10%10 +10; SEG3 = TEMP_VAL/1%10; } } } } void Timer0_Isr(void) interrupt 1 { static timcount = 0; SEG_LED_Show(); //数码管刷新的 timcount++; //1ms+1 if( timcount>=10 ) //如果这个变量大于等于10,10ms计数到达 { timcount = 0; TIM_10MS_Flag = 1; //10ms时间到了 } } void sys_init() //函数定义 { WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快 EAXFR = 1; //扩展寄存器(XFR)访问使能 CKCON = 0; //提高访问XRAM速度 P0M1 = 0x00; P0M0 = 0x00; //设置为准双向口 P1M1 = 0x00; P1M0 = 0x00; //设置为准双向口 P2M1 = 0x00; P2M0 = 0x00; //设置为准双向口 P3M1 = 0x00; P3M0 = 0x00; //设置为准双向口 P4M1 = 0x00; P4M0 = 0x00; //设置为准双向口 P5M1 = 0x00; P5M0 = 0x00; //设置为准双向口 P6M1 = 0x00; P6M0 = 0x00; //设置为准双向口 P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口 P3M0 = 0x00; P3M1 = 0x00; P3M0 &= ~0x03; P3M1 |= 0x03; //设置USB使用的时钟源 IRC48MCR = 0x80; //使能内部48M高速IRC while (!(IRC48MCR & 0x01)); //等待时钟稳定 USBCLK = 0x00; //使用CDC功能需要使用这两行,HID功能禁用这两行。 USBCON = 0x90; } void delay_ms(u16 ms) //unsigned int { u16 i; do { i = MAIN_Fosc/6000; while(--i); }while(--ms); } 复制代码
qepu*** 发表于 2024-3-26 10:48 一个是0~2.5。一个是2.5~5。怎么可能会一样呢?
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-5-2 18:05 , Processed in 0.168455 second(s), 111 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.