DS18B20+PIC测温用1602显示温度C程序
//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); //查表写数据
}
}
DS18B20PIC测温1602显示温 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)