![]() |
OLED12864源代碼分享 IIC協議http://www.zg4o1577.cn/bbs/dpj-204281-1.html LCD12864中文資料包 容易看明白 http://www.zg4o1577.cn/bbs/dpj-200462-1.html |
名字不是重點 發表于 2021-6-29 12:01 嗯,確實很輕松 ![]() |
單片機,刷新屏幕,還是需要效率,能快則快,重復性代碼還是需要精簡,不是隨便寫寫就好了。 |
比如這樣:/* 1602模塊的4線接口方式寫入一個字節的數據 utype:數據類型,0為命令數據,1為顯示數據 udat: 一字節數據 */ void Lcd_1602_write(uchar utype,uchar udat) { uchar i; lcdrs=utype; //寫入指令或數據 for(i=0;i<2;i++) //8Bit分開2次寫入,高低半字節 { lcden=1; //LCD使能開 P0=(P0&0x0f)|(udat&0xf0); //寫入高4位:即P04-P07,低位是P00-P03 //如果寫入的是低4位則:P0=(P0&0xf0)|((date>>4)&0x0f); delay(3); //簡單延時 lcden=0; //LCD使能關 udat<<=4; //低4位上移到高4位 } } 輕輕松松。。。 |
脫KZ放P了! 既然有了2 個函數WRITE_COM和WRITE_DAT,就不用再傳個參數bit i,且整個LCM_W_TEST()都可以不要,直接分別調用就行了,省的跳來跳去,CPU不累嗎 ![]() |
既然看了別人的一個程序進行學習研究,為何不多看幾個?只要再看兩個人的程序包你可以自己確定答案的![]() |
各人喜歡。這個用判斷的也行,分別用寫命令和數據的函數也行。 |