#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LOVE MCU!";// 要顯示的字符
uchar code table1[]="wo de ni!!!";
sbit RS = P2^4; // 液晶基本設置,端口 不同的可以做改動 要隨機應變
sbit RW = P2^5;
sbit EN = P2^6;
uchar num;
void delay(uint x) //延時1ms 所有的延時 為了讓顯示跟穩定 時間 不宜太長 太長 影響寫入的速率, 也不宜太短 太短 影響接受的穩定性
{
uint i,j;
for(i=x;i>=0;i--)
for(j=100;j>=0;j--);
}
void write_com(uchar com)//寫入命令字操作
{
RS=0;
RW=0;
P0=com;
delay(5);
EN=1;
delay(5);
EN=0;
}
void write_data(uchar date)//寫入數據字操作
{
RS=1;
RW=0;
P0=date;
delay(5);
EN=1;
delay(5);
EN=0;
}
void init()//1602顯示屏初始化
{
write_com(0x38);// 1602 調至為顯示模式
write_com(0x0c);//設置開顯示 且 不顯示光標
write_com(0x06);// 寫一個字符后地址指針加一
write_com(0x01);// 顯示清0 數據指針清0
}
void main()
{
init();
write_com(0x80); //數據指針定位到第一行第一個字
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(10);
}
write_com(0x80+0x40);// 數據指針定位到第一行第二個字
for(num=0;num<11;num++)
{
write_data(table1[num]);
delay(10);
}
while(1);
}
|