您的位置 首页 报告

DS18B20+PIC测温用1602显现温度C程序

熟悉使用单片机运用DS18B20温度传感器测试温度,并用1602显示屏显示温度1、第一行显示:Temperature2、第二行显示:实测温度值****

//了解运用单片机运用DS18B20温度传感器测验温度,并用1602显现屏显现温度

//1、榜首行显现:Temperature
//2、第二行显现:实测温度值
//**************************************************

//**************************************************
//硬件设置:
//1、SW2,SW4开关悉数断开
//2、插上DS18B20温度传感器
//**************************************************

//**************************************************
//*****************界说头文件**********************
//**************************************************
#include
#include “delay.h”

//**************************************************
//******************界说装备位*********************
//**************************************************
__CONFIG(0x3545);
//FLASH代码不维护,RB6和RB7为调试方式,FLASH不写维护,数据代码不维护
//RB3为数字IO口,低电压复位使能,上电延时开,看门狗开,4M晶体XT振荡器

//**************************************************
//******************界说常量***********************
//**************************************************
#define uchar unsigned char
#define uint unsigned int

//**************************************************
//***************界说DS18B20引脚*******************
//**************************************************
#define DQ RE0
#define DQ_IO TRISE0

//**************************************************
//******************界说LCD引脚*********************
//**************************************************
#define RS RA1
#define RW RA2
#define E RA3

//**************************************************
//******************界说变量***********************
//**************************************************
uchar lowtemp,hightemp; //低8位温度变量,高8位温度变量
uchar zhengshu,xiaoshu; //温度整数变量,温度小数变量
uint temperature; //转化后的温度值BCD码方式
uchar temp[7]; //转化后温度寄存变量

//**************************************************
//******************界说数据***********************
//**************************************************
//显现: Temperature
//显现:WWW*PICAVR*COM
const uchar name[16]=
//{0x20,0x20,0x20,0x54,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x20,0x20};
{0x20,0x57,0x57,0x57,0x2E,0x50,0x49,0x43,0x41,0x56,0x52,0x2E,0x43,0x4F,0x4D,0x20};

//***********************************************
//函 数 名:delayms(uchar time);
//进口参数:time
//出口参数:无
//函数效果:毫秒延时
//说 明:
//***********************************************
void delayms(uchar time)
{
uint i;
while(time–)
{
for(i=93;i>0;i–){;}
}
}

//***********************************************
//函 数 名:port_init();
//进口参数:无
//出口参数:无
//函数效果:端口初始化
//说 明:
//***********************************************
void port_init(void)
{
ADCON1=0X07; //设置RA,RE口为数字口
TRISA=0X00; //设置RA口为输出口
TRISD=0X00; //设置RD口为输出口
TRISE=0X00; //设置RE口为输出口
OPTION=0X8F; //分频给WDT,分频比为128
}

//***********************************************
//函 数 名:lcd_enable();
//进口参数:无
//出口参数:无
//函数效果:LCD写使能
//说 明:
//***********************************************
void lcd_enable(void)
{
RS=0; //写指令
RW=0; //写操作
E=0; //低电平信号
delayms(10); //低电平信号坚持
E=1; //拉高电平信号
}

//***********************************************
//函 数 名:lcd_writebyte(uchar data);
//进口参数:data
//出口参数:无
//函数效果:LCD写一个字节数据
//说 明:
//***********************************************
void lcd_writebyte(uchar data)
{
PORTD=data; //向RD口写数据
RS=1; //写数据
RW=0; //写操作
E=0; //低电平信号
delayms(10); //低电平信号坚持
E=1; //拉高电平信号
}

//***********************************************
//函 数 名:lcd_writedata(const uchar *ptt);
//进口参数:*ptt
//出口参数:无
//函数效果:LCD写数据块函数
//说 明:
//***********************************************
void lcd_writedata(const uchar *ptt)
{
uchar i;
for(i=0;i<16;i++) //写16个字节数据
{
lcd_writebyte(ptt); //查表写数据
}
}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部