基于51单片机的1602液晶显示温度和时间的C程序.doc
《基于51单片机的1602液晶显示温度和时间的C程序.doc》由会员分享,可在线阅读,更多相关《基于51单片机的1602液晶显示温度和时间的C程序.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/液晶显示温度#include AT89X52.H#define Ddata P0sbit RS=P27; /命令数据控制端sbit RW=P26; /读写选择端 sbit LCDE=P25; /液晶使能端sbit DQ=P20; /ds18b20与单片机连接口#define uchar unsigned char#define uint unsigned int文档来自于网络搜索unsigned char hour=0,min=0,sec=0; /定义初值unsigned int count=0;unsigned char line116= temp: ; /16个字符unsigned ch
2、ar line216= time: 00:00:00; /16个字符unsigned char tab=0,1,2,3,4,5,6,7,8,9; /数组文档来自于网络搜索uchar data disdata5;uint tvalue; /温度值uchar tflag; /温度正负标志文档来自于网络搜索void time();/*lcd1602程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确的)文档来自于网络搜索unsigned int i,j; for(i=0;ims;i+) for(j=0;j110;j+);文档来自于网络搜索void delay5m
3、s()/延时5毫秒(不够精确的)unsigned int i;for (i=0;i1000;i+);void delay50us()register int i; for (i=0;i0;m-)for(n=255;n0;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=co
4、mm; RS=0; RW=0; LCDE=0;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
5、=0; RW=0; RS=0; RW=1; LCDE=1; i=Ddata; LCDE=0; return(i);void init()/*初始化程序,必须按照产品的资料介绍的过程进行*/wr_com(0x38); /*显示模式设置必须三次,不用检测忙信号delay5ms();wr_com(0x38);delay5ms();wr_com(0x38);delay5ms();wr_com(0x01); /*清屏*delay5ms();busycheck();wr_com(0x08);delay5ms();busycheck();delay5ms();wr_com(0x06); /*光标移动设置,写
6、一个字符后地址指针加1* delay5ms();busycheck();delay50us();wr_com(0x38); /*显示模式设置*delay50us();busycheck();delay50us();wr_com(0x0c); /*显示开,不显示光标*delay50us();busycheck();delay50us();wr_com(0x40); /set cgram addressdelay50us();delay50us(); /*这些延时可用可不用*/文档来自于网络搜索void display()unsigned char i; wr_com(0x80); /set ra
7、m address delay50us(); busycheck(); delay50us(); for(i=0;i6;i+) wr_data(line1i); /display(6个字符) delay50us(); busycheck(); busycheck(); delay50us(); wr_com(0xc0); / 0xc0=0x80+0x40 delay50us(); busycheck(); delay50us();文档来自于网络搜索 for(i=0;i0;i-) /读一个字节的数据函数 DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 1602 液晶显示 温度 时间 程序
限制150内