📄 main.c
字号:
/******************http://hi.baidu.com/echoas***************
程序:12864液晶显示原理
内容:LCD12864显示汉字(字库文字)
软件:keil uVision4
液晶:QY12864HZ1(字库型)
作者:大海橡树
整理日期:2010-11-25
修改:无
备注:已经过测试!
备注:有什么错误的地方,欢迎网友们到空间留言
O(∩_∩)O~
*******************http://hi.baidu.com/echoas**************/
#include<AT89X52.h>
#define uchar unsigned char
#define uint unsigned int
//端口定义
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
//sbit PSB=P2^4;//1---8位或4位并口方式;0---串口方式,单片机默认上电是1,故不用设定
uchar table[]=" 欢迎访问 ";
uchar table1[]="大海橡树百度空间";
void read_busy() //读忙标志
{
RS=0;
RW=1;
EN=1;
while(P0 & 0x80);
EN=0;
}
void delay(uint i) //延时函数
{
while(--i);
}
void write_LCD_command(uchar value) //写命令函数
{
read_busy(); //每次读写前都要惊醒“忙”判断
RS=0;
RW=0;
delay(200);
EN=1; //EN从1---0锁存有效数据
P0=value;
delay(200);
EN=0;
}
void write_LCD_data(uchar value)//写数据函数
{
read_busy(); //每次读写前都要惊醒“忙”判断
RS=1;
RW=0;
delay(200);
EN=1; //EN从1---0锁存有效数据
P0=value;
delay(200);
EN=0;
}
void init_LCD() //LCD12864初始化
{
delay(4000);
write_LCD_command(0x30);//8位数据格式,基本指令显示
delay(100); //延时时间
write_LCD_command(0x30);//8位数据格式,基本指令显示
delay(37);
write_LCD_command(0x0C);//开显示、关闭光标
delay(100);
write_LCD_command(0x01);//清屏指令
delay(10000); //延时
write_LCD_command(0x06);//设置显示点:指针自加1
}
void main()
{
uchar num;
init_LCD();
write_LCD_command(0x80);//设定显示的地址
write_LCD_command(0x01);
for(num=0;num<16;num++)
{
write_LCD_data(table[num]);
delay(10000);
}
write_LCD_command(0x90);
for(num=0;num<16;num++)
{
write_LCD_data(table1[num]);
delay(10000);
}
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -