⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tem.c

📁 高精度液晶显示温度计,C51,16*2LCD,DS18B20温度传感器
💻 C
字号:
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
sbit to=P2^3;

unsigned int sys10mscounter;
unsigned char syslimitcounter;

float Te;

void soft_20ms();
void hard_10ms(unsigned int delaytime);
void soft_nop(){}


void soft_10ms()
{
register int i;
for(i=0;i<711;i++);
}

void soft_20ms()
{soft_10ms();
soft_10ms();
}

void hard_10ms(unsigned int delaytime)
{sys10mscounter=delaytime;
while(sys10mscounter);
}

unsigned char data lcdcounter;
bit lcdusing1,lcdusing2;

bit lcd_checkbusy()
{register lcdstate;
dc=0;
rw=1;
cs=1;
soft_nop();
lcdstate=lcdbus;
cs=0;
return((bit)(lcdstate&0x80));
}

void lcd_wrcmd(unsigned char lcdcmd)
{lcdusing1=1;
while(lcd_checkbusy());
lcdbus=lcdcmd;
dc=0;
rw=0;
cs=1;
soft_nop();
cs=0;
lcdbus=0xff;
lcdusing1=0;
}

void lcd_moveto(char position)
{register cmd=0x80;
cmd=cmd|position;
lcd_wrcmd(cmd);
}

void lcd_wrdata(char lcddata)
{
lcdusing2=1;
while(lcd_checkbusy());
if(lcdcounter==16){
lcd_moveto(20+0x2c);
while(lcd_checkbusy());}

if(lcdcounter==32){
lcd_moveto(0);
while(lcd_checkbusy());
lcdcounter=0;}

lcdcounter++;
lcdbus=lcddata;
dc=1;
rw=0;
cs=1;
soft_nop();
cs=0;
lcdbus=0xff;
lcdusing2=0;
}

void lcd_string(char *strpoint)
{register i=0;
while(strpoint[i]!=0){
lcd_wrdata(strpoint[i]);
i++;
}
}

void lcd_init()
{lcd_wrcmd(0x38);
lcd_wrcmd(0x0c);
lcd_wrcmd(0x06);
lcd_wrcmd(0x01);
lcdcounter=0;
}

void lcd_cls()
{lcd_wrcmd(0x01);
lcdcounter=0;
}



main()
{
int i,j;//定义循环变量
char buffer[20];//定义字符数组,存储输出内容

P0=0xff;P1=0xff;P2=0xff;P3=0xff;//单片机各位口初使化

to=1;//温度报警接口值。为P2.3。低电平报警。

while(1)
//主循环。每隔10ms进行一次信号采集,对收到的信号进行分析处理。
{
lcd_init();//液晶初使化

Te=(float)read_tem(1)/16;
//read_tem为一外部函数,读取传感器输出的数据并进行计算转换为温度值。
sprintf(buffer,"%05.2f'C",Te);
//温度值转换为字符串,以便于LCD模块输出显示
lcd_string(buffer);
//LCD输出

//判断温度报警
if(Te>20)
	to=0;
else
	to=1;
//循环延时
for(i=0;i<70;i++)
for(j=0;j<35;j++)
{}
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -