欢迎来到天天文库
浏览记录
ID:49084583
大小:97.50 KB
页数:6页
时间:2020-02-28
《基于-51单片机的温度检测系统程序与仿真.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//****************************************//**用DS18B20进行测量,lcd1602显示**//****************************************#include"reg51.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintucharcodetable1[]={"ID:"};//欢迎显示,包括空格在内<=16ucharcodetable2[]={"Name:"};//欢迎显示,包括空格在内<=16ucharco
2、destr1[]={"Temperature"};ucharcodestr2[]={""};//************管脚定义************************sbitlcd_rs=P3^0;//液晶数据命令选择端sbitlcd_en=P3^1;//液晶使能sbitDQ=P3^6;//液晶使能//************参数定义************************uinttvalue;//温度值uchartflag;//温度正负标志uchardatadisdata[5];//************子函数定义******************
3、******voiddelay(ucharz);//delay延时子程序voidinit_lcd();//LCD1602初始化函数voidwrite_com(ucharcom);//LCD1602写指令函数voidwrite_data(uchardate);//LCD1602写数据函数voidlcd1602_display(uchar*q,uchar*p);//LCD1602显示函数voidwelcome();//LCD1602显示欢迎函数voiddelay_DS18B20(uinti);//delay_DS18B20函数voidInit_DS18B20_display(
4、);//DS18B20初始化显示voidInit_DS18B20();//DS18B20初始化ucharReadOneByte();//DS18B20读一字节voidWriteOneByte(uchardat);//DS18B20写一字节Read_Temperature();//DS18B20读取温度值并转换voidDS18B20_display();//DS18B20温度显示//************主函数************************voidmain(){welcome();delay(2000);Init_DS18B20_display();wh
5、ile(1){Read_Temperature();DS18B20_display();}}//************delay延时子程序************************voiddelay(ucharz){ucharx,y;for(x=0;x6、加1write_com(0x01);//显示清零,数据指针清零write_com(0x06);//写一个字符后地址指针加1write_com(0x0c);//关显示,光标不显示不闪烁}//************LCD1602写指令函数************************voidwrite_com(ucharcom){delay(5);lcd_rs=0;//选择写指令lcd_en=0;//将使能端置0P2=com;//将要写的命令送到数据总线上delay(5);//延时5ms,待数据稳定lcd_en=1;//由于初始化已将lcd_en置为0,使能端给一个高脉冲7、,delay(5);//延时5ms,待数据稳定lcd_en=0;//将使能端置0以完成脉冲}//************LCD1602写数据函数************************voidwrite_data(uchardate){delay(5);lcd_rs=1;//选择写数据lcd_en=0;//将使能端置0P2=date;//将要写的数据送到数据总线上delay(5);//延时5ms,待数据稳定lcd_en=1;//由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5);//延时5ms,待数
6、加1write_com(0x01);//显示清零,数据指针清零write_com(0x06);//写一个字符后地址指针加1write_com(0x0c);//关显示,光标不显示不闪烁}//************LCD1602写指令函数************************voidwrite_com(ucharcom){delay(5);lcd_rs=0;//选择写指令lcd_en=0;//将使能端置0P2=com;//将要写的命令送到数据总线上delay(5);//延时5ms,待数据稳定lcd_en=1;//由于初始化已将lcd_en置为0,使能端给一个高脉冲
7、,delay(5);//延时5ms,待数据稳定lcd_en=0;//将使能端置0以完成脉冲}//************LCD1602写数据函数************************voidwrite_data(uchardate){delay(5);lcd_rs=1;//选择写数据lcd_en=0;//将使能端置0P2=date;//将要写的数据送到数据总线上delay(5);//延时5ms,待数据稳定lcd_en=1;//由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5);//延时5ms,待数
此文档下载收益归作者所有