您的位置 首页 知识

Nokia 5110_DS18B20显现程序

/**********Nokia5110LCD显示程序***************//**********作者:郑文***************//**********芯片:AT89S52****

/**********Nokia 5110 LCD 显现程序***************/
/**********作者:郑文 ***************/
/**********芯片:AT89S52 **************/
/*功用:支撑中文显现、字符显现、图片显现********/
#include
#include
#include “english_6x8_pixel.h”
#include “picture84x48.h”
#include “Nokia_5110.h”
#include “18b20.h”

#define uchar unsigned char
#define uint unsigned int

uchar tem_h,tem_l,tem_f,tem_f1,tem_f2;
uint tem; //温度读取后*10后存储空间地址
float tem_read; //温度读取保存地址空间

void Delay1ms(unsigned int count);
void temperature_read_charge(void);
void nokia_5110_picture();//写一屏图

/************毫秒延时程序********************/
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<120;j++);
}
/********************************************/
/*void temperature_read_charge(void)
{

tem_read=ReadTemperature();
tem=tem_read*1000; //温度准确到小数点后3位
tem_h=tem/10000+0x30; //温度高位
tem_l=( tem-(tem_h-0x30)*10000 )/1000+0x30; //温度低位
tem_f=( tem-(tem_h-0x30)*10000-(tem_l-0x30)*1000 )/100+0x30;
tem_f1=( tem-(tem_h-0x30)*10000-(tem_l-0x30)*1000-(tem_f-0x30)*100 )/10+0x30;
tem_f2=( tem-(tem_h-0x30)*10000-(tem_l-0x30)*1000-(tem_f-0x30)*100-(tem_f1-0x30)*10 )+0x30;
Delay1ms(100);
}
*/

/**********************************************/
void nokia_5110_picture()//写一屏图
{
uchar e;
uchar t;
uchar k;
uint d;
d=0;
for(t=0;t<6;t++)
{
for(k=0;k<84;k++)
{
e=dal[d];
write_byte(e,1);
d=d+1;
}
}
}
/**************************************/

/*****************主程序********************/
void main(void)
{
unsigned main_i,x,y;
unsigned xnum ,ynum;
float T_temp;
uchar i;
uchar moni_temp;

P2=0X00;
LED_A =1;
LCD_VDD =1;
LCD_GND =0;
LCD_Init(); //初始化液晶
LCD_Clear();

/***********指定地址显现汉字(x,y,table)*********************/

/***********取点(x,y,byte数据)*************/
/*其间X=[0,83] Y=[0,5] byte 显现是从下到上 */

nokia_5110_picture();
LCD_set_XY(42,3);
LCD_write_char(124);
LCD_write_char(C);

/*while(1)
{
for(i=0;i<8;i++)
{
LCD_set_XY(68,4);
LCD_write_char(125+i);
Delay1ms(100);
}
for(i=0;i<8;i++)
{
LCD_set_XY(68,3);
LCD_write_char(125+i);
Delay1ms(100);
}
for(i=0;i<8;i++)
{
LCD_set_XY(68,2);
LCD_write_char(125+i);
Delay1ms(100);
}
for(i=0;i<8;i++)
{
LCD_set_XY(68,1);
LCD_write_char(125+i);
Delay1ms(100);
}
for(i=0;i<8;i++)
{
LCD_set_XY(68,0);
LCD_write_char(125+i);
Delay1ms(100);
}

LCD_set_XY(68,0);
LCD_write_char(125);
LCD_set_XY(68,1);
LCD_write_char(125);
LCD_set_XY(68,2);
LCD_write_char(125);
LCD_set_XY(68,3);
LCD_write_char(125);
LCD_set_XY(68,4);
LCD_write_char(125);

}*/

while(1)
{
/********温度数据的读取和转化*************/
tem_read=ReadTemperature();
tem=tem_read*1000; //温度准确到小数点后一位08.1.8
tem_h=tem/10000+0x30; //温度高位
tem_l=( tem-(tem_h-0x30)*10000 )/1000+0x30; //温度低位
tem_f=( tem-(tem_h-0x30)*10000-(tem_l-0x30)*1000 )/100+0x30;
tem_f1=( tem-(tem_h-0x30)*10000-(tem_l-0x30)*1000-(tem_f-0x30)*100 )/10+0x30;
tem_f2=( tem-(tem_h-0x30)*10000-(tem_l-0x30)*1000-(tem_f-0x30)*100-(tem_f1-0x30)*10 )+0x30;

//Delay1ms(5);
LCD_set_XY(12,3);
LCD_write_char(tem_h);
// Delay1ms(5);
LCD_write_char(tem_l);
// Delay1ms(5);
LCD_write_char(.);
// Delay1ms(5);
LCD_write_char(tem_f);
// Delay1ms(5);
LCD_write_char(tem_f1);
//Delay1ms(5);

moni_temp=((tem_h-0x30)*10+tem_l-0x30)+1;//加1是修正值

if(moni_temp>0 && moni_temp<8)
{

LCD_set_XY(68,3);
LCD_write_char(125);
LCD_set_XY(68,2);
LCD_write_char(125);
LCD_set_XY(68,1);
LCD_write_char(125);
LCD_set_XY(68,0);
LCD_write_char(125);

LCD_set_XY(68,4);
LCD_write_char(125+moni_temp);
}
else if(moni_temp>=8 && moni_temp<16)
{
LCD_set_XY(68,2);
LCD_write_char(125);
LCD_set_XY(68,1);
LCD_write_char(125);
LCD_set_XY(68,0);
LCD_write_char(125);

LCD_set_XY(68,4);
LCD_write_char(132);
LCD_set_XY(68,3);
LCD_write_char(125+moni_temp-8);
}
else if(moni_temp>=16 && moni_temp<24)
{
LCD_set_XY(68,1);
LCD_write_char(125);
LCD_set_XY(68,0);
LCD_write_char(125);

LCD_set_XY(68,4);
LCD_write_char(132);
LCD_set_XY(68,3);
LCD_write_char(132);
LCD_set_XY(68,2);
LCD_write_char(125+moni_temp-16);
}
else if(moni_temp>=24 && moni_temp<32)
{
LCD_set_XY(68,0);
LCD_write_char(125);

LCD_set_XY(68,4);
LCD_write_char(132);
LCD_set_XY(68,3);
LCD_write_char(132);
LCD_set_XY(68,2);
LCD_write_char(132);

LCD_set_XY(68,1);
LCD_write_char(125+moni_temp-24);
}
else if(moni_temp>=32 && moni_temp<40)
{
LCD_set_XY(68,4);
LCD_write_char(132);
LCD_set_XY(68,3);
LCD_write_char(132);
LCD_set_XY(68,2);
LCD_write_char(132);
LCD_set_XY(68,1);
LCD_write_char(132);

LCD_set_XY(68,0);
LCD_write_char(125+moni_temp-32);
}
else
{;}

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/267224.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部