1602液晶顯示屏顯示字元
阿新 • • 發佈:2019-01-06
本次實驗的效果為實現特定字元在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); } } }