⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 自己做的单片机Proteus仿真实例
💻 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 + -