程序如下:
#include
#define LCD_DB P0
sbit LCD_RS=P2^2;
sbit LCD_RW=P2^3;
sbit LCD_E=P2^4;
//函数定义
#define uchar unsigned char
#define uint unsigned int
void LCD_init(void); //初始化
void LCD_write_command(uchar command); //写指令
void LCD_write_data(uchar dat); //写数据
void LCD_disp_char(uchar x,uchar y,uchar dat); //显示位置,X(0-16),y(1-2)
void delay_n40us(uint n); //延时
void LCD_init(void) //初始化
{
LCD_write_command(0x01); //清除屏幕显示
LCD_write_command(0x3c); //设置8位格式,2行,5x7?
LCD_write_command(0x0c); //整体显示,关光标,不闪烁?
LCD_write_command(0x06); //设定输入方式,增量不移位
delay_n40us(100);
}
void LCD_write_command(uchar dat) //写指令
{
LCD_DB=dat;
LCD_RS=0; //指令
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_E=0;
delay_n40us(5);
}
void LCD_write_data(uchar dat) //写数据
{
LCD_DB=dat;
LCD_RS=1; //数据
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_E=0;
delay_n40us(5);
}
void LCD_disp_char(uchar x,uchar y,uchar dat) //显示一个字符
{
uchar address;
if(y==0)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
LCD_write_data(dat);
}
void delay_n40us(uint n) //延时函数
{
uchar j;
for(n=n;n>0;n--)
for(j=0;j<2;j++)
;
}
//主函数
void main(void)
{
char a;
char b[16]="123456789abcdeef";
char c[16]="ABCDEFGHIGKLMNOP";
delay_n40us(200);
LCD_init();
for(a=0;a<16;a++)
{
LCD_disp_char(a,0,b[a]);
LCD_disp_char(a,1,c[a]);
}
while(1);
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』