温度传感器,液晶,定时器2,串口通信集一体使用(C程序).docVIP

  • 2
  • 0
  • 约6.96千字
  • 约 6页
  • 2017-08-30 发布于安徽
  • 举报

温度传感器,液晶,定时器2,串口通信集一体使用(C程序).doc

/************************************************************* 内容:显示格式 第一行显示temperature 第二行显示 温度 XX.XX C 可以显示负温度 液晶显示显示同时通过串口发送到电脑端显示 使用配套的上位机测温软件 晶振使用11.0592M 当然也可以是12M 里面还用了定时器2定时 作为单片机初学者参考 不用积分 有些地方可能注释的不够专业望各位见谅 说实在话 如果自学单片机的话真的很难 大家要有耐心哦 希望大家给个好评把 *************************************************************/ #include reg52.h #include stdio.h #define Lcd_Data P0 //宏定义 P0 sbit RS = P2 ^ 1; //寄存器选择输入端 sbit RW = P1 ^ 5; //lcd读写信号端 sbit E = P1 ^ 6; //lcd命令使能端 sbit Busy = P0 ^ 7; //读忙标志端 sbit DQ = P3 ^ 7; //ds18b20数据输入输出端 unsigned char ldelay=0; //时间溢出标志 unsigned char t=0; //定时器2定时变量 /************************************* 延时函数 *************************************/ void Delay(unsigned int time) //大约延时2×time+5us { while( time-- ); }/************************************* LCD1602读忙函数 *************************************/ void Read_Busy(void) // 寄存器选择输入端选择为指令输入,lcd读写信号端为读,命令使能端从1到0下降沿时判忙 { do { Lcd_Data = 0xff; //初始化P0 RS = 0; //选择指令寄存器 RW = 1; //当RS为0时,RW为1时,读忙 E = 0; //使能为0 Delay(10); E = 1; //使能为1 } while(Busy); } /************************************* LCD1602写指令函数 *************************************/ void write_command(unsigned char lcdcommand) // 寄存器选择输入端选择为指令输入,lcd读写信号端为写,命令使能端从0到1 上升沿是写入指令并判忙 { Lcd_Data = lcdcommand; RS = 0; RW = 0; E = 0; Read_Busy(); E = 1; } /************************************* LCD1602写数据函数 *************************************/ void write_data(unsigned char lcddata) // 寄存器选择输入端选择为数据输入,lcd读写信号端为写,命令使能端从0到1 上升沿是写入数据,并判忙 { Lcd_Data = lcddata; RS = 1; RW = 0; E = 0; Read_Busy(); E = 1; } /************************************* LCD1602初始化函数 *************************************/ void Init_LCD(void) { P2=0x3f; Delay(400); write_command(0x01); //清屏 write_c

文档评论(0)

1亿VIP精品文档

相关文档