写出来的程序又如何验证是否正确?
其实,你只需要对LCD的打开、关闭,以及能把一个数据块显示在LCD上就行了
“常见字母、数字、符号、中文、自定义字符、图形,以及文字和图形混和显示;光标显示/隐藏(Cursor
on/off)、显示字符闪烁(Display
character
blink);画面清除(Display
clear)、光标归位(Return
home)”
这些功能,只需要在这个数据块上进行 *** 作,然后再送到LCD显示。
#include <reg51.h>#define uchar unsigned char
#define uint unsigned int
#define LCD_DATA P2
sbit LCD_BL=P1^0
sbit LCD_RS=P1^1
sbit LCD_RW=P1^2
sbit LCD_EN=P1^3
//uchar code smg_data[]={0x15,0x15,0x15,0x0E,0x0E,0x15,0x15,0x15}
//uchar code smg_data[]={0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x00}
//uchar code smg_data[]={0x1B,0x0A,0x11,0x15,0x11,0x0A,0x1B,0x00}
//uchar code smg_data[]={0x0E,0x15,0x15,0x00,0x15,0x00,0x15,0x00}
//uchar code smg_data[]={0x1F,0x11,0x15,0x1B,0x15,0x11,0x1F,0x00}
//uchar code smg_data[]={0x11,0x15,0x15,0x0A,0x15,0x15,0x11,0x00}
//uchar code smg_data[]={0x1F,0x15,0x15,0x1F,0x15,0x15,0x1F,0x00}
//uchar code smg_data[]={0x1F,0x11,0x11,0x11,0x11,0x0A,0x04,0x00}
void delay(uint z)
void write_com(uchar com)
void write_data(uchar da)
void init()
void main()
{
// uchar i
LCD_RW=0
LCD_EN=0
LCD_BL=0
init()
// write_com(0x40)
// for(i=0i<8i++)
// {
// write_data(smg_data[i])
// }
write_com(0x80)
write_data('a')
while(1)
}
void delay(uint z)
{
uint x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
void write_com(uchar com)
{
LCD_DATA=com
LCD_RS=0
LCD_EN=1
delay(5)
LCD_EN=0
}
void write_data(uchar da)
{
LCD_DATA=da
LCD_RS=1
LCD_EN=1
delay(5)
LCD_EN=0
}
void init()
{
write_com(0x38)//设置8位格式,2行5x7点阵
write_com(0x0c)//开显示,关光标,不闪烁
write_com(0x06)//文字不动,光标自动右移
write_com(0x01)//清屏并光标复位
}
1602液晶第一行第一位显示个 a
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)