📄 guding.c
字号:
/*======缩写说明=========
PB---判别
SF---是否
ZL---指令
SJ---数据
QD---确定
WZ---位置
========================*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void Delay5Ms(void);
sbit RS = P1^0; // P10口接4脚,1-数据寄存器,0-指令寄存器
sbit RW = P1^1; // P11口接5脚,1-读操作,0-写操作
sbit E = P1^2; // P12口接6脚,使能
extern uchar m,n,k,l;
void ReadTemperature();
uchar lcd_show_date[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
/*=========================
读忙子程序 RS=0 RW=1 E=1
=========================*/
bit PB_busy(void)
{
uchar temp ;
bit busy=1;
RS=0;
RW=1;
E=1;
while(busy)
{
E = 0 ;
temp = P2 ;
E = 1 ; //读忙
temp = temp & 0x80;
if(temp) busy=1; //当检测到忙,则一直检测,程序进入循环
else busy=0; //等待不忙
}
return busy; //返回忙标志,可能有用
}
/*==========================
写指令子程序 RS=0 RW=0 E=1
============================*/
void Write_ZL(uchar ZL)
{
if( !PB_busy() ) //判断不忙则写指令
{
RS=0; RW=0;
P2 = ZL ;
E=1;
E=0;
}
}
/*==========================
写单个数据 RS=1 RW=0 E=1
============================*/
void Write_SJ(uchar SJ)
{
if( !PB_busy() )
{
RS=1; RW=0;
P2 = SJ ;
E = 1 ;
E = 0 ;
}
}
/*===============================
确定字符位置字程序 x---列 y---行
================================*/
void QD_WZ(uchar x,uchar y)
{
uchar address;
if(y==0) address = 0x80 + x ; //x,y都从0计起
else address = 0xc0 + x ;
Write_ZL(address);
}
/*==========================================
初试化:
===========================================*/
void Reset(void)
{
uchar n;
for(n=0;n<3;n++) //3次,不检测忙信号(故未直接用函数)
{
RS=0;RW=0;E=1;
P2=0x38; //八位总线,双行显示,显示5X10的点阵字符
E=1;E=0;
Delay5Ms();
};
Write_ZL(0x38); //需要检测忙信号
Write_ZL(0x0e);
Write_ZL(0x0d); //关显示
Write_ZL(0x01);
Delay5Ms();
Write_ZL(0x06); //光标设置,光标右移,文字不移动
Delay5Ms();
Write_ZL(0x0c); //开显示,设置光标
/*未用到指令5*/
}
// 短延时
void Delay5Ms(void)
{
uint c=5552;
while(c--);
}
void main(void)
{
Reset();
while(1)
{
ReadTemperature();
Delay5Ms();
QD_WZ(1,0);
Write_SJ(lcd_show_date[m]);
QD_WZ(2,0);
Write_SJ(lcd_show_date[n]);
QD_WZ(3,0);
Write_SJ(0x2e);
QD_WZ(4,0);
Write_SJ(lcd_show_date[k]);
QD_WZ(5,0);
Write_SJ(lcd_show_date[l]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -