請教要如何測試文字型LCD好壞 |
答題得分者是:㊣
|
david_ls
一般會員 發表:5 回覆:13 積分:3 註冊:2005-01-31 發送簡訊給我 |
想請教各位前輩要如何測試 文字型LCD(STC2A16DRG 16x2) 的好壞
目前手上只有一顆, 8051確定可以正常運作, Program是拿網路上的resource來使用 不知有沒有辦法使用簡單的輸入訊號來測試文字LCD是否正常 ps. 文字型 LCD接上電源的時候, 會顯示一兩個方塊, 接著就消失! 感謝前輩賜教了! #include #define DBPORT P2 // 定義 P2 埠為資料輸出埠 sbit RS=P1^0 ; // LCD致能控制線接腳 sbit RW=P1^1 ; // LCD讀寫控制接腳 sbit E=P1^2 ; // LCD 資料與指令選擇線接腳 void delay1ms(int count); // 時間延遲副程式 void LCD_CMD(char cmd); // 寫入指令暫存器函式原型宣告 void LCD_DATA(char data1); // 寫入資料暫存器函式原型宣告 char code mess1[]="95441160"; char code mess2[]="shin"; main() { char *pp; // 設定字串的指標位置 delay1ms(5) ; // 等待 LCD 電源與穩定 LCD_CMD(0x3b) ; // #0111011B 8位元存取雙列字5×7字型 LCD_CMD(0xe) ; // #01110B 顯示器ON/游標閃爍/x被顯示在位址計數器 while(1) { LCD_CMD(0x1) ; // 清除螢幕 delay1ms(5) ; // 時間延遲delay1ms(2) ; LCD_CMD(0x80); // 設定DD RAM位址第一行第1列 pp = mess1; while(*pp !=0) LCD_DATA(*pp ); // 呼叫顯示字串函式 delay1ms(1000) ; LCD_CMD(0x1) ; // 清除螢幕 delay1ms(5) ; // 時間延遲delay1ms(2) ; LCD_CMD(0xC0); // 設定DD RAM位址第一行第2列 pp = mess2; while(*pp !=0) LCD_DATA(*pp ); // 呼叫顯示字串函式 delay1ms(1000) ; } } void delay1ms(int count) { int i,j; for(i=0;i } // 寫入資料暫存器函式 void LCD_DATA(char data1) { char i; DBPORT=data1; // ASCII字元輸出到資料線 RS=1;RW=0;E=1; //控制線 寫入資料暫存器 for(i=0 ; i < 40 ;i ) ; // 一個短時間的延遲時序 RS=1;RW=0;E=0; } // 寫入指令暫存器函式 void LCD_CMD(char cmd) { char i; DBPORT =cmd ; //寫入指令暫存器 RS=0;RW=0;E=1; //控制線 P2=0x04; for(i=0 ; i < 40 ;i ) ; // 一個短時間的延遲時序 RS=0;RW=0;E=0; //控制線 P2=0x00; } |
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
ererer40
初階會員 發表:37 回覆:91 積分:45 註冊:2008-05-02 發送簡訊給我 |
依我的經驗,千千萬萬別先去懷疑硬體問題,有九成以上都是程式問題,等找出問題後才恍然大悟
依我的經驗: 1.確認硬體:拿最簡單的或你以前有成功過的程式下去跑,這樣可以確認LCD硬體沒問題,比較直覺的方式是拿另一個新的LCD測試,如果跟前一個狀況一樣,應該可確認硬體沒問題 2.確認你的IO名稱正不正確:例如明明就是接P1,你程式確是寫P2,別以為不可能,就是會出現這種靈異現象 3.確認是否有確實輸出入:我這個人比較多疑,所以通常我會用麵包板特別做一個全IO單純只接LED燈與開關的,當模擬試跑看看燈會不會亮確認有輸出入。 4.確認每一隻IO當下是否有在忙其他的事:例如中斷之類的,有時最好看一下手冊,有些IO有特別用途。 5.線路問題:就算將LCM全部的腳位直接拉到目的位置,中間不接電阻之類的應該也還可正常顯示(只是可能會看不太清楚),所以電路上應該比較不會有問題 6.確認供應電源:這應該不用說了吧正負接反、電流不足、電壓過大過小...等等之類的 |
david_ls
一般會員 發表:5 回覆:13 積分:3 註冊:2005-01-31 發送簡訊給我 |
非常感謝各位的幫忙, 我採用的方式是買顆新的16*2文字型LCD, 可以正常運作了, 優點是便宜有背光顯示, 缺點是體積大了些,
程式部分是下載的(別人應該是有驗證過了)自己驗證過也是ok的, 起初也是什麼都顯示不出來, 後來發現是Vo沒去調整, 把Vo接地後就可以看到字型顯示了! 懷疑上一顆LCD也是Vo沒接, 導致Adj以最清淡的對比顯示, 實驗之後什麼都顯示不出來, 所以有可能是之前被我搞壞了@@ 而㊣ 版大說的很正確, 新的文字型LCD模組的確如㊣ 版大所述, 第一排全亮, 第二排全滅, 在此要特別感謝您的經驗提供!! ===================引 用 ererer40 文 章=================== 依我的經驗,千千萬萬別先去懷疑硬體問題,有九成以上都是程式問題,等找出問題後才恍然大悟 依我的經驗: 1.確認硬體:拿最簡單的或你以前有成功過的程式下去跑,這樣可以確認LCD硬體沒問題,比較直覺的方式是拿另一個新的LCD測試,如果跟前一個狀況一樣,應該可確認硬體沒問題 2.確認你的IO名稱正不正確:例如明明就是接P1,你程式確是寫P2,別以為不可能,就是會出現這種靈異現象 3.確認是否有確實輸出入:我這個人比較多疑,所以通常我會用麵包板特別做一個全IO單純只接LED燈與開關的,當模擬試跑看看燈會不會亮確認有輸出入。 4.確認每一隻IO當下是否有在忙其他的事:例如中斷之類的,有時最好看一下手冊,有些IO有特別用途。 5.線路問題:就算將LCM全部的腳位直接拉到目的位置,中間不接電阻之類的應該也還可正常顯示(只是可能會看不太清楚),所以電路上應該比較不會有問題 6.確認供應電源:這應該不用說了吧正負接反、電流不足、電壓過大過小...等等之類的 |
ererer40
初階會員 發表:37 回覆:91 積分:45 註冊:2008-05-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |