51单片机测温18b20与LCD12864程序知道

51单片机测温18b20与LCD12864程序知道

基于STC89C52单片机的18b20测温程序

主程序:

/***************************************************************************** 使用单片机:STC89C52 晶振频率:11.0592MHZ 开发环境:Keil4.0

功能简述:调试用12864LCD的显示功能,蜂鸣器报警装置

******************************************************************************/ #include #include #include #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

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4