带字库程序
/*ﻩﻩﻩﻩﻩﻩﻩ*/
/*主程序ﻩﻩ*/
/**/
/*********************************************************/
main()
{
uchari;
delay(10);//延时
wela=0;
dula=0;
lcd_init();//初始化LCD
lcd_pos(0,0);//设置显示位置为第一行的第1个字符
/**/
/*******************************************************************/
bitlcd_busy()
{
bit result;
LCD_RS=0;
LCD_RW=1;
LCD_EN= 1;
delayNOP();
result=(bit)(P0&0x80);
void lcd_wcmd(uchar cmd)
{
while(lcd_busy());
LCD_RS=0;
LCD_RW = 0;
LCD_EN =0;
_nop_();
_nop_();
P0= cmd;
delayNOP();
LCD_EN= 1;
delayNOP();
LCD_EN= 0;
}
/*******************************************************************/
LCD_RS=1;
LCD_RW=0;
LCD_EN = 0;
P0= dat;
delayNOP();
LCD_EN= 1;
delayNOP();
LCD_EN = 0;
}
/*******************************************************************/
i=0;
while(dis1[i] != '\0')
{//显示字符
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(1,0);//设置显示位置为第二行的第1个字符
i =0;
while(dis2[i] != '\0')
{
ﻩ_nop_();
_nop_();
ﻩ_nop_();
}
ﻩ}
}
/*******************************************************************/
/**/
/*检查LCD忙状态*/
/*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。*/
/**/
/*LCD初始化设定*/
/**/
/*******************************************************************/
void lcd_init()
{
LCD_PSB =1;//并口方式
lcd_wcmd(0x34);//扩充指令操作
delay(5);
LCD_EN = 0;
return(result);
}
/*******************************************************************/
/**/
/*写指令数据到LCD*/
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。*/
/**/
/*******************************************************************/
带字库程序
————————————————————————————————作者:
————————————————————————————————日期:
#include<reg51.h>
#include <intrins.h>
ﻩ
#defineucharunsignedchar
#defineuintunsignedint
/**/
/*延时函数*/
/**/
/*******************************************************************/
voiddelay(int ms)
{
while(ms--)
{
uchari;
ﻩfor(i=0;i<250;i++)
{
_nop_();ﻩﻩ
lcd_wcmd(0x30);//基本指令操作
delay(5);
lcd_wcmd(0x0C);//显示开,关光标
dela;//清除LCD的显示内容
delay(5);
}
/*********************************************************/
ucharIRDIS[2];
uchar IRCOM[4];
voiddelay0(uchar x); //x*0.14MS
voidbeep();
void dataconv();
voidlcd_pos(uchar X,ucharY);//确定显示位置
/*******************************************************************/
/**/
/*写显示数据到LCD*/
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。*/
/**/
/*******************************************************************/
void lcd_wdat(uchardat)
{
while(lcd_busy());
/*TS12864A-3端口定义*/
#define LCD_dataP0//数据口
sbit LCD_RS=P1^0;//寄存器选择输入
sbitLCD_RW=P1^1;//液晶读/写控制
sbit LCD_EN = P2^5;//液晶使能控制
sbitLCD_PSB= P1^2;//串/并方式控制
sbitwela=P2^6;
sbitdula= P2^7;
uchar code dis1[] ={"欢迎指导工作"};
uchar codedis2[]={"淮南师范学院"};
ucharcode dis3[]={"罗雷雷"};
ucharcode dis4[] = {"胡伟伟"};
#define delayNOP();{_nop_();_nop_();_nop_();_nop_();};