📄 shiyan3.c
字号:
//*****液晶显示程序设计(HD44780)*******
//*****设计者*******************展凌***
//****程序实现功能:简单的显示字符******
#include<reg52.h>
#define uchar unsigned char
sbit rs=P1^5;//写信号
sbit rw=P1^6;//读信号
sbit en=P1^7;//使能信号
sbit flag=ACC^7;//忙标志,flag=1(正在忙),flag=0(空闲)
uchar idata fttp[13]="www.heart.com";//要显示的字符
uchar idata host[16]="ZhanLing welcome";
//*****************************************
void delay()//延时函数
{//用于读写数据要保持的时间
//时序图要求是120ns,长点没关系
uchar i;
for(i=200;i>0;i--);
}
//*****************************************
void busy_flag()//检查忙标志函数
{//如果正在处理数据,则等待
do
{//这段要按照时序图来写
en=0;
rw=1;
rs=0;
en=1;
ACC=P0;
en=0;
}while(flag==1);
}
//*****************************************
void write_com(uchar com)//写命令函数
{//向液晶写入命令
//要按照时序图来写
busy_flag();//检查忙
en=0;
rw=0;
rs=0;
en=1;
P0=com;//写入命令
en=0;
delay();//延时一会
}
//******************************************
void write_dat(uchar dat)//写数据函数
{//向LCD写入数据,LCD会显示出来的
//严格按照时序图来写
busy_flag();//检查忙
en=0;
rw=0;
rs=1;
en=1;
P0=dat;//写入数据
en=0;
delay();//延时一会
}
//*****************************************
void intc()//初始化函数
{
write_com(0x01);//LCD清屏
write_com(0x02);//LCD光标复位
write_com(0x06);//写入一数据,光标自动右移
write_com(0x0c);//不显示光标
write_com(0x38);//P0的8位数据线都有效(必须)
}
//*********************************************
void main()//主函数
{
uchar i;
intc();//初始化
for(i=0;i<13;i++)
{
write_dat(fttp[i]);
//第1行顶格显示13个字符
}
write_com(0x80+0x40);//改变光标位置
//0x80表示第1行顶格,0x80+0x40第2行顶格
//0x80+0x41表示第2行第2个位置
for(i=0;i<16;i++)
{
write_dat(host[i]);
//第2行顶格显示16个字符
}
while(1);//循环
}
//**************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -