LCD1602顯示一個字符,如果這個字符在字庫CGROM中,有三種顯示方法
#include <STC89C5xRC.H> #define uint unsigned int #define uchar unsigned char sbit rs=P2^6; // 指令/數據選擇 sbit rw=P2^5; // 讀/寫選擇 sbit e=P2^7; // e由1到0,執行指令 void delay(uint t); void write_com(uchar com); //寫指令函數 void write_dat(uchar dat); //寫數據函數 void init(); // 初始化 void main() { init(); write_com(0x80); //設置字符顯示位置,就是第一行,第一列 write_dat('A'); //寫入字符"A"
//或者寫成 write_dat(0x41);
//或者寫成 write_dat(65);
while(1); //一直顯示下去 } void write_com(uchar com) ////寫指令函數 { rs=0; //選擇指令寄存器 rw=0; //選擇寫操作 P0=com; //讓P0口的8個腳獲取指令參數 delay(100); e=1; //e由1到0,執行指令 delay(100); e=0; } void write_dat(uchar dat) { rs=1; //選擇數據寄存器 rw=0; //選擇寫操作 P0=dat; //讓P0口的8個腳獲取數據參數 delay(100); e=1; delay(100); e=0; } void delay(uint t) { while(--t); } void init() { write_com(0x38); //功能設置指令:選擇8位總線,兩行顯示方式,5x8點陣 write_com(0x0c); //打開屏幕顯示功能,沒有光標,也沒有結尾閃爍 write_com(0x06); //寫完字符后,光標右移,屏幕移動 write_com(0x01); //清屏 }
上面的代碼不用改,在LCD12864中也能顯示
除了字庫不同,其它的差不多。
字符'A'地址也是41H.