单片机LCD12864

发布时间:2011-8-20 18:10    发布者:kswork
关键词: LCD12864 , 单片机
/*******************************************************************************
*  描述:                                                                       *
*      12864标准字库液晶演示 数据p0,控制p2
*  普中科技开发板                                           *
********************************************************************************/
//2011年8月20日 下午   并行操作
#include
#include
#include
#define uchar unsigned char
#define unit unsigned int
//端口定义
#define LCD_data P0  //数据口
sbit LCD_RS=P2^6;  //寄存器选择输入
sbit LCD_RW=P2^5;  //LCD读写控制
sbit LCD_EN=P2^7;  //LCD使能控制
sbit LCD_PSB=P3^2;  //串并行方式控制
sbit LCD_RST =  P3^7;      //液晶复位端口
uchar code dis1[]={"制作人:锦程"};
uchar code dis2[]={"2011.8.20"};
uchar code dis3[]={"星期六"};
uchar code dis4[]={"调试LCD12864"};
void delay_1ms(unit z)
{
unit x,y;
for(x=z;x>0;x--)
  for(y=125;y>0;y--);
}
//写指令数据到LCD
//RS=L,RW=L,E=高脉冲,D0-d7=指令码
void write_cmd(uchar cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay_1ms(5);
LCD_EN=1;
delay_1ms(5);
LCD_EN=0;   
}
//写显示数据到LCD
//RS=H,RW=L,E=高脉冲,D0-d7=数据
void write_data(uchar date)
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=date;
delay_1ms(5);
LCD_EN=1;
delay_1ms(5);
LCD_EN=0;
}
//设置显示位置
void lcd_pos(uchar X,uchar Y)
{
uchar pos;
if(X==0)
  {X=0x80;}
else if(X==1)
  {X=0x90;}
else if(X==2)
  {X=0x88;}
else if(X==3)
  {X=0x98;}
pos=X+Y;
write_cmd(pos);//显示地址
}

//LCD初始化设定
void lcd_init()
{
LCD_PSB=1; //并口方式
write_cmd(0x30); //基本指令操作
// delay_1ms(5);
write_cmd(0x0c); //显示开,关光标
// delay_1ms(5);
write_cmd(0x01); //清除LCD的显示内容
// delay_1ms(5);
}
main()
{
unit k;
LCD_RST=0;
delay_1ms(40);
LCD_RST=1;
delay_1ms(10);
lcd_init();
lcd_pos(0,0); //设置显示位置为第1行的第1个字符
k=0;
while(dis1[k]!='\0')
{
  write_data(dis1[k]);//显示字符
      k=k+1;
}
lcd_pos(1,0);  //设置显示位置为第2行的第1个字符
k=0;
while(dis2[k]!='\0')
{
  write_data(dis2[k]);//显示字符
   k++;
}
lcd_pos(2,0);  //设置显示位置为第3行的第1个字符
k=0;
while(dis3[k]!='\0')
{
  write_data(dis3[k]);//显示字符
   k++;
}

lcd_pos(3,0);  //设置显示位置为第4行的第1个字符
k=0;
while(dis4[k]!='\0')
{
  write_data(dis4[k]);//显示字符
   k++;
}
while(1)
{}
}
本文地址:https://www.eechina.com/thread-73776-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
Vanko 发表于 2011-10-2 23:39:14
这是有字库的LCD12864,感谢发布者为我们提供了一个参考。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表