- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机12864液晶显示
//本程序使用带中文字库的液晶显示器LCD12864
#include reg52.h
#include intrins.h
//定义引脚连接
#define LCD_DATA P0 //数据口
sbit RS = P3^5; //并行的指令/数据选择信号, H数据, L命令
sbit RW = P3^6; //并行读写选择信号, H读, L写
sbit E = P3^4; //并行使能端, H有效, L无效
sbit PSB = P3^7; //串并行选择端,H选择并行,L选择串行
sbit ff=P1^7; //忙碌标志
//待显示的内容
unsigned char code Tab1[]={机会总是留给准备};
unsigned char code Tab2[]={梅州搜搜网 };
unsigned char code Tab3[]={ 211工作室 };
unsigned char code Tab4[]={TEL: 07532114432};
//延时子程序
void Delay1mS(unsigned int tt) //延时tt毫秒
{
unsigned char i;
while(tt--)
for(i=113;i0;i--); ;
}
bit CheckBusy() //读BF标志位,检查LCD是否就绪
{
RS=0;
_nop_();
RW=1;
_nop_();
E=1;
_nop_();
if(LCD_DATA0x80)
return 1;
else
return 0;
}
void Wait() //等待LCD就绪
{
while(CheckBusy()==1)ff=0;
ff=1;
}
/*unsigned char Read_Data() //读数据
{
Wait();
RS=1;
RW=1;
E=1;
_nop_();
return LCD_DATA;
}
*/
Write_Data(unsigned char dat) //写一个字节数据
{
Wait();
RS=1;
RW=0;
E=1;
_nop_();
LCD_DATA=dat;
E=0;
_nop_();
}
Write_Command(unsigned char dat) //写命令
{
Wait();
RS=0;
RW=0;
E=1;
_nop_();
LCD_DATA=dat;
E=0;
_nop_();
}
Write_String(unsigned char *p) //写字符串
{
char cnt=0;
while(*(p+cnt)!=\0)
{
Write_Data(*(p+cnt));
cnt++;
}
}
void LCD_Init() //LCD初始化
{
Write_Command(0x30);//基本指令, 扩充指令为34H
Delay1mS(1);
Write_Command(0x0c);//显示开, 关光标 .开光标0X0E
Delay1mS(1);
Write_Command(0x01);//清屏
Delay1mS(1);
}
void Set_Position(unsigned char x, unsigned char y) //设置待显示的位置
{
unsigned char p;
switch(x%4)
{
case 0: p = 0x80; break; //第一行开始地址
case 1: p = 0x90; break; //第二行
case 2: p = 0x88; break; //第三行
case 3: p = 0x98; break; //第四行
}
p += y;
Write_Command(p);
}
main()
{
PSB=1; //并行
LCD_Init();
Set_Position(0,0);
Write_String(Tab1);
Set_Position(1,0);
Write_String(Tab2);
Set_Position(2,0);
Write_String(Tab3);
Set_Position(3,0);
Write_String(Tab4);
while(1);
}
文档评论(0)