1. 程式人生 > >1602液晶顯示屏顯示字元

1602液晶顯示屏顯示字元

本次實驗的效果為實現特定字元在1602液晶顯示屏上流動顯示

所用開發板為普中科技開發板,電路圖如下:



程式碼如下:

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int


sbit rs = P2^6;
sbit rw = P2^5;
sbit lcden = P2^7;


unsigned char table1[16] = " Pechin Science ";
unsigned char table2[27] = "Welcome to the world of MCU";


void delay(uchar m)
{
uchar n = 200;
while(m--)
while(n--);
}




void  write_com(uchar com)
{
rs = 0;
rw = 0;
lcden = 0;
P0 = com;
delay(5);
lcden = 1;

delay(5);
lcden = 0; 
}


void  write_dat(uchar dat)
{
rs = 1;
rw = 0;
lcden = 0;
P0 = dat;
delay(5);
lcden = 1;


delay(5);
lcden = 0; 
}


void lcd_init()
{
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x80);//初始指標指向第一行
}




void main()
{
uchar a = 0,b = 0;
P0 = 0;
P2 = 0;
lcd_init();
for(a = 0; a < 16;a++ )
{
write_dat(table1[a]);
}
write_com(0xc0);//設定第二行
for(b = 0; b < 27;b++ )
{
write_dat(table2[b]);
}


write_com(0x07); //設定每寫一個字元,整屏顯示左移,此句也是本程式的最為關鍵的一個命令
while(1)
{
write_com(0xc0);//重複寫入第二行字元
for(b = 0; b < 27;b++ )
{
write_dat(CnCh[b]);
delay(100);
} 
}
}