本帖最后由 lovebaby8848 于 2012-4-5 12:08 编辑
本来打算让18B20和NTC的温度显示在12232上面的 ,结果调试了好久PWM背光一直没解决 LCD只能在侧面看清楚 只能使用串口了 本实验通过串口发0 显示18B20的温度 同时蜂鸣器响一下 发1 显示NTC测试的温度 使用高级法码自动发送0和1测试了一小时偏差在2C 不知道怎么校准 要创造一个0C的环境?? 程序参考的是lixiaoxu2meng的 对原作者提供了M0方方面面的历程表示万分感谢!!本人51也刚学,还写不出来独立的程序 只能在高手的程序上改改,检验自己是否理解了程序,请大家多给榔头 谢谢
主程序就是一个判断。。。
int main (void)
{
Sys_Init();
ADC_Configuration(); //配置ADC
while(1)
{
uint8_t bInChar[1]={0xFF};
while(UART0->ISR.RDA_IF==0);
DrvUART_Read(UART_PORT0,bInChar,1);
if(bInChar[0]==0)
{
DrvGPIO_SetBit(E_GPB, 10);
wendu1 = read_temp();
printf("The 18B20 Temp0 is %.1f C\n",wendu1);
delay_ms(1000);
}
DrvGPIO_ClrBit(E_GPB, 10);
if(bInChar[0]==1)
{
DrvADC_StartConvert(); // 开启ADC转换
while(DrvADC_IsConversionDone()==FALSE); // 判断ADC是否转换结束 并送串口显示
AD_Value = DrvADC_GetConversionData(7);
AD_Value = AD_Value*3300/4095- 725; // 将电压值转换成温度 经过校准后 确认0度为720mV
AD_Value = AD_Value/-2;
printf("The NTC Temp1 is %d C\n",AD_Value);
}
DrvGPIO_ClrBit(E_GPB, 10);
}
} |