内容发布更新时间 : 2025/2/13 3:08:04星期一 下面是文章的全部内容请认真阅读。
.
//液晶显示温度
#include \#define Ddata P0
sbit RS=P2^7; //命令数据控制端 sbit RW=P2^6; //读写选择端 sbit LCDE=P2^5; //液晶使能端
sbit DQ=P2^0; //ds18b20与单片机连接口 #define uchar unsigned char #define uint unsigned int
unsigned char hour=0,min=0,sec=0; //定义初值 unsigned int count=0;
unsigned char line1[16]={\\ //16个字符 unsigned char line2[16]={\00:00:00\ //16个字符 unsigned char tab[]={'0','1','2','3','4','5','6','7','8','9'}; //数组
uchar data disdata[5];
uint tvalue; //温度值 uchar tflag; //温度正负标志 void time();
/*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的) {
unsigned int i,j; for(i=0;i 1页 . void delay5ms()//延时5毫秒(不够精确的) { unsigned int i; for (i=0;i<1000;i++); } void delay50us() { register int i; for (i=0;i<20;i++); } void delay() {unsigned char m,n; for(m=255;m>0;m--) for(n=255;n>0;n--); } void wr_com(unsigned char comm) //********写控制字符程序 E=1 RS=0 RW=0 **********// { LCDE=0; //使能端 RS=0; //********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。 RW=0; //********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。 LCDE=1; Ddata=comm; RS=0; RW=0; LCDE=0; 2页 . } void wr_data(unsigned char dat)//*****当前位置写字符子程序:E=1 RS=1 RW=0 { LCDE=0; RS=0; //********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。 RW=0; //********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。 RS=1; RW=0; LCDE=1; Ddata=dat; //将dat赋给P0口 LCDE=0; RS=0; RW=0; } unsigned char busycheck()//*****忙状态检查*******// { unsigned char i; LCDE=0; RS=0; RW=0; RS=0; RW=1; LCDE=1; i=Ddata; LCDE=0; return(i); } 3页