📄 text1.c
字号:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
sbit rs = P2^0;
sbit rw = P2^1;
sbit en = P2^2;
sbit psb = P2^3;
sbit ret = P2^5;
uchar command,data1,data2,com0;
uchar lcd_bufl,lcd_bufg;//定义显示缓冲区
void lcd_int();
void clear_lcd();
void lcd_set();
void display();
void dis_init();
void delay(uchar ms);
void write_command(uchar command);
void write_data(uchar data0);
//液晶初始化
void lcd_int(void)
{
ret=0;
delay(10);
ret=1;
_nop_();
psb=1;//将PSB置1,通信方式为8BIT数据并口
_nop_();
}
//LCD功能设置
void lcd_set(void)
{
command=0x34;//功能设置--8BIT控制界面,扩充指令集---这个可去掉
write_command(command);
command=0x30;//功能设置--8BIT控制界面,基本指令集
write_command(command);
command=0x01;//清屏幕显示,将DDRAM的地址计数器归零
write_command(command);
command=0x06;//DDRAM的地址计数器(AC)加1
write_command(command);
command=0x0c;//显示打开,光标关,反白显示关
write_command(command);
}
//清屏程序
void clear_lcd(void)
{
command=0x01;
write_command(command);
command=0x34;
write_command(command);
command=0x30;
write_command(command);
}
//写指令程序
void write_command(uchar command)
{
delay(100);
rs=0;
rw=0;
P0=command;
en=1;
_nop_();
_nop_();
en=0;
}
//写数据程序
void write_data(uchar data0)
{
delay(100);
rs=1;
rw=0;
P0=data0;
en=1;
_nop_();
_nop_();
en=0;
}
//延时子程序
void delay(uchar ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
//液晶显示程序
void display(void)
{
command=com0;
write_command(command);
data2=lcd_bufl;
data1=lcd_bufg;
write_data(data1);
data1=data2;
write_data(data1);
}
//显示字符
void dis_init(void)
{
com0=0x82;
lcd_bufl=0xcf;
lcd_bufg=0xc4;
display();
}
//主程序
main()
{
lcd_int();
lcd_set();
while(1)
{
dis_init();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -