内容发布更新时间 : 2025/1/11 10:29:02星期一 下面是文章的全部内容请认真阅读。
51单片机测温18b20与LCD12864程序知道
基于STC89C52单片机的18b20测温程序
主程序:
/***************************************************************************** 使用单片机:STC89C52 晶振频率:11.0592MHZ 开发环境:Keil4.0
功能简述:调试用12864LCD的显示功能,蜂鸣器报警装置
******************************************************************************/ #include
#define uchar unsigned char #define uint unsigned int #define lcd_data P0 #include \#include \
code uchar Display1[8]={\实际温度\code uchar Display2[8]={\报警温度\sbit sl=P0^3; sbit sr=P0^4; sbit su=P0^5;
1 / 18
51单片机测温18b20与LCD12864程序知道
sbit sd=P0^6; char f=0;
//定义标志位
sbit beep=P1^7; //蜂鸣器
uint temp,templa; //定义整形温度数据 float f_temp; //定义浮点型得温度数据 int Actual_Temp; int Alarm_Temp;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z) //延时函数 {
uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void Key_Scan() //键盘扫描程序 {
if(sl==0)
{
delay(5); if(sl==0) {
while(!sl); if(f==0)
//按键松手检测 等待按键释放
//消抖
//实现光标的左移
2 / 18
51单片机测温18b20与LCD12864程序知道
}
}
f=4;
// 按键自减1
else f--;
if(sr==0) { }
if(su==0) {
//实现光标的右移
delay(5); if(sr==0) { }
//消抖
while(!sr); f++; if(f==4)
f=0;
//按键松手检测
//实现按键加的功能
delay(5); if(su==0) {
//消抖
while(!su); if(f==1)
//按键松手检测
{Alarm_Temp=Alarm_Temp+100;} if(f==2)
3 / 18