📄 液晶时钟.c
字号:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define Data P0
sbit e=P3^5;
sbit rw=P3^6;
sbit rs=P3^7;
uchar code table1[]={"HXJ"};
uchar code table2[]={"www.HXJ.com"};
void read_status(void);
void write_data(uchar wd)
{
read_status();
Data=wd;
rs=1;
rw=0;
e=0;
e=1;
}
void write_command(uchar wc,Busybit)
{
if(Busybit)read_status();
Data=wc;
rs=0;
rw=0;
e=0;
e=0;
e=1;
}
void read_data(void)
{
rs=1;
rw=1;
e=0;
e=0;
e=1;
}
void read_status(void)
{
Data=0xff;
rs=0;
rw=1;
e=0;
e=0;
e=1;
while(Data & 0x80);
return(Data);
}
void init(void)
{
Data=0x00;
write_command(0x38,0);
delay_5ms();
write_command(0x38,0);
delay_5ms();
write_command(0x38,0);
delay_5ms();
write_command(0x38,1);
write_command(0x08,1);
write_command(0x01,1);
write_command(0x06,1);
write_command(0x0c,1);
}
void dispaly_onechar(uchar x,uchar y,uchar data)
{
y&=0x01;
x&=0x0f;
if(y) x|=0x40;
x|=0x80;
write_command(x,0);
write_data(data);
}
void display_string(uchar x,uchar y,uchar code *ddata)
{
uchar strlength;
strlength=0;
y&=0x01;
x&=0x0f;
while(ddata[strlength]>0x20)
{
if(x<=0x0f)
{
display_onechar(x,y,ddata[strlength]);
strlength++;
x++;
}
}
}
void delay_5ms(void)
{
uint num=5500;
while(num--);
}
void delay_400ms(void)
{
uint numA=5;
uint numB;
while(numA--)
{
numB=7200;
while(numB--);
};
}
void main(void)
{
delay_400ms();
init();
delay_5ms();
display_string(3,0,table1);
display_string(3,1,table2);
LCM_ReadData();//测试用句无意义
LCM_Data=255;
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -