DS18b20 温度检测液晶显示-温度可调上下限1602显示 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { int temp,tempH=50,tempL=1; float temperature; unsigned char TempFlag=0; char displaytemp[16],num;//定义显示区域临时存储数组 LCD_Init(); //初始化液晶 DelayMs(20); //延时有助于稳定 LCD_Clear(); //清屏 Init_Timer0(); UART_Init(); Lcd_User_Chr(); //写入自定义字符 while (1) //主循环 { num=KeyScan(); switch(num) { case 1:if(tempH<127)tempH++;break; case 2:if(tempH>-55)tempH--;break; case 3:if(tempL<127)tempL++;break; case 4:if(tempL>-55)tempL--;break; default:break; } switch(TempFlag) { case 0: //输出温度上限下限 sprintf(displaytemp,"H.%3d L.%3d ",tempH,tempL); LCD_Write_String(0,1,displaytemp);//显示第二行 break; case 1:LCD_Write_String(0,1,"over tempH ");break; case 2:LCD_Write_String(0,1,"under tempL ");break; default:break; } if(ReadTempFlag==1) { ReadTempFlag=0; temp=ReadTemperature(); temperature=temp*0.0625; temp>>=4; if(temp>tempH) TempFlag=1; //高于高温标志 else if(temp<tempL) TempFlag=2; //低于低温标志 else TempFlag=0; //正常显示标志 sprintf(displaytemp,"Temp %6.2f ",temperature);//打印温度值 LCD_Write_String(0,0,displaytemp);//显示第一行 LCD_Write_Char(13,0,0x01);//写入温度右上角点 LCD_Write_Char(14,0,'C'); //写入字符C } } }
- 1
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助