|
#include<reg52.h>
#define LCD_DB P0
sbit LCD_RS = P2^6;
sbit LCD_RW = P2^5;
sbit LCD_EN = P2^7;
unsigned char Zh1[]=" Dian Zi 1801 ";
unsigned char Zh2[]=" Xue Hao: 18 ";
void Busy() //检忙
{
unsigned char sta;
LCD_DB = 0xff;
LCD_RS = 0;
LCD_RW = 1;
do
{
LCD_EN = 1;
sta = LCD_DB;
LCD_EN = 0;
}
while(sta&0x80);
}
void Lcd_Write_Cmd(unsigned char cmd) //命令
{
Busy();
LCD_RS = 0;
LCD_RW = 0;
LCD_DB = cmd;
LCD_EN = 1;
LCD_EN = 0;
}
void Lcd_Write_Data(unsigned char dat) //数据
{
Busy();
LCD_RS = 1;
LCD_RW = 0;
LCD_DB = dat;
LCD_EN = 1;
LCD_EN = 0;
}
void InitLcd() //初始化
{
Lcd_Write_Cmd(0x38);
Lcd_Write_Cmd(0x08);
Lcd_Write_Cmd(0x01);
Lcd_Write_Cmd(0x06);
Lcd_Write_Cmd(0x0c);
}
void LcdSetCursor(unsigned char x,unsigned char y) //坐标
{
unsigned char addr;
if(y == 0)
addr = 0x00 + x;
else
addr = 0x40 + x;
Lcd_Write_Cmd(addr|0X80);
}
void LcdShowStr(unsigned char x,unsigned char y,unsigned char *s) //字符串
{
LcdSetCursor(x,y);
while(*s)
{
Lcd_Write_Data(*s);
s++;
}
}
void main(void)
{
P1=0xf0;
InitLcd();
LcdShowStr(0,0,Zh1);
LcdShowStr(0,1,Zh2);
while(1);
}
|
-
捕获.PNG
(74.56 KB, 下载次数: 29)
LCD1602仿真图
-
-
LCD显示屏.zip
79.93 KB, 下载次数: 28, 下载积分: 黑币 -5
所有文件
|