有關使用PIC18F系列控制LCD的定義 |
答題得分者是:aki
|
microchip1127
一般會員 發表:20 回覆:22 積分:8 註冊:2008-04-30 發送簡訊給我 |
各位大大 你們好:
最近剛接手上一個人的工作,開始觸碰PIC系列的chip,因為之前的人沒有 清楚在程式上寫下註解,所以有許多地方不是很了解為什麼需要這樣定義,而找 尋pic18f系列的datasheet也沒有找到為什麼需要這樣定義,想在這邊請教各位 大大一些定義的東西,以下是我有疑問的程式部份: // LCD Module commands Definitions //--------------------------------------------------------------------- #define Function_Set 0b01011000 // 2Line_8Bit #define CLR_DISP 0x001 // Clear the Display #define DISP_ON 0x00C // Display on #define DISP_OFF 0x008 // Display off #define ADDR_INC 0x006 // Entry Mode Set ,Address 1 #define Cursor_RET 0x002 // Cursor return home 上述是為了定義LCD所用,可是不是很懂的地方是,這可以從那邊得知 #define Function_Set 0b01011000這樣設定的方式為2Line_8Bit, 而程式的確是用在16 Characters * 2 Lines的LCD上,只是這樣的設定是 2Line_8bit,而下面的定義也是一樣,想請教的地方就是這些定義的內容可 以在那邊找到參考,因為在PIC18F的datasheet內沒有看到這些定義的方 式,如果表達不是很清楚,我會解釋,謝謝指教 編輯記錄
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
Taiwan Microchip 有說明檔(中文)的可供下載學習,也有 example code,
只要有 C 語言的概念都應該看得懂! ===================引 用 microchip1127 文 章=================== 各位大大 你們好: 最近剛接手上一個人的工作,開始觸碰PIC系列的chip,因為之前的人沒有 清楚在程式上寫下註解,所以有許多地方不是很了解為什麼需要這樣定義,而找 尋pic18f系列的datasheet也沒有找到為什麼需要這樣定義,想在這邊請教各位 大大一些定義的東西,以下是我有疑問的程式部份: // LCD Module commands Definitions //--------------------------------------------------------------------- #define Function_Set 0b01011000 // 2Line_8Bit #define CLR_DISP 0x001 // Clear the Display #define DISP_ON 0x00C // Display on #define DISP_OFF 0x008 // Display off #define ADDR_INC 0x006 // Entry Mode Set ,Address 1 #define Cursor_RET 0x002 // Cursor return home 上述是為了定義LCD所用,可是不是很懂的地方是,這可以從那邊得知 #define Function_Set 0b01011000這樣設定的方式為2Line_8Bit, 而程式的確是用在16 Characters * 2 Lines的LCD上,只是這樣的設定是 2Line_8bit,而下面的定義也是一樣,想請教的地方就是這些定義的內容可 以在那邊找到參考,因為在PIC18F的datasheet內沒有看到這些定義的方 式,如果表達不是很清楚,我會解釋,謝謝指教 |
microchip1127
一般會員 發表:20 回覆:22 積分:8 註冊:2008-04-30 發送簡訊給我 |
回二樓大大:
LCD Module的datasheet沒有寫,只有寫接腳的關聯而已,還是 謝謝提醒 回三樓大大: 我在Taiwan Microchip有找到LCD的一些設定,目前正在參考中 ,謝謝大大的指點
編輯記錄
microchip1127 重新編輯於 2008-07-24 17:23:07, 註解 無‧
|
naga88
一般會員 發表:0 回覆:13 積分:7 註冊:2008-06-23 發送簡訊給我 |
對不起插嘴一下 / /LCD Module commands Definitions //--------------------------------------------------------------------- #define Function_Set 0b01011000 // 2Line_8Bit #define CLR_DISP 0x001 // Clear the Display #define DISP_ON 0x00C // Display on #define DISP_OFF 0x008 // Display off #define ADDR_INC 0x006 // Entry Mode Set ,Address 1 #define Cursor_RET 0x002 // Cursor return home 這是LCD Module 的控制碼 比如說對lcd寫入0ch的話lcd就會亮起來 ,寫入01h的話就會清除顯示幕 等等 所以欲知詳情 還是要看LCD Module 的資料的
------
http://tw.myblog.yahoo.com/naga_tooru |
microchip1127
一般會員 發表:20 回覆:22 積分:8 註冊:2008-04-30 發送簡訊給我 |
===================引 用 naga88 文 章=================== 對不起插嘴一下 / /LCD Module commands Definitions //--------------------------------------------------------------------- #define Function_Set 0b01011000 // 2Line_8Bit #define CLR_DISP 0x001 // Clear the Display #define DISP_ON 0x00C // Display on #define DISP_OFF 0x008 // Display off #define ADDR_INC 0x006 // Entry Mode Set ,Address 1 #define Cursor_RET 0x002 // Cursor return home 這是LCD Module 的控制碼 比如說對lcd寫入0ch的話lcd就會亮起來 ,寫入01h的話就會清除顯示幕 等等 所以欲知詳情 還是要看LCD Module 的資料的 我已經有在二樓跟三樓大大那邊得知,已經有在Taiwan Microchip裡面有照到類似的範例了, 只是,它裡面寫的也沒有註明為什麼是這樣設定,只知道是用在LCD 16*2上面,而我現在要用 LCD 20*4上面,因為一次只能夠顯示兩排,本以為只要將 #define Function_Set 0b01011000 // 2Line_8Bit 改成4Line,這樣應該就可以用LCD 20*4了,而我的LCD Module的資料沒有寫上面這些設定, 有剛好是接手別人之前寫的,所以想知道這是怎麼設定的,從範例裡,也只能看到是相同的設定, 但是我還是不了解怎麼改,現在我已經用另一種方法將原本是用LCD 16*2可以改成用LCD 20*4 了 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
我想也不必太苛責發問者,也許我說話重了些! Sorry!
將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention, 又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶! 就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時, 就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題, 至於要如何回答那就是見人見智了! 以上 ===================引 用 taishyang 文 章=================== 小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
前輩是認為我苛責發問者嗎? 是的話就誤會大了^^|
===================引 用 aki 文 章=================== 我想也不必太苛責發問者,也許我說話重了些! Sorry! 將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention, 又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶! 就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時, 就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題, 至於要如何回答那就是見人見智了! 以上 ===================引 用 taishyang 文 章=================== 小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^ |
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
Sorry! 用語不當.
===================引 用 taishyang 文 章=================== 前輩是認為我苛責發問者嗎? 是的話就誤會大了^^| ===================引 用 aki 文 章=================== 我想也不必太苛責發問者,也許我說話重了些! Sorry! 將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention, 又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶! 就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時, 就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題, 至於要如何回答那就是見人見智了! 以上 ===================引 用 taishyang 文 章=================== 小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^ |
microchip1127
一般會員 發表:20 回覆:22 積分:8 註冊:2008-04-30 發送簡訊給我 |
不管怎麼樣,都謝謝兩位大大的一些見解,
兩位的意思我都了解,我也大概知道像我 這樣初學者的問題在那邊了,真是謝謝,希 望下次有別的問題時,兩位大大也不吝指 教,感謝^__^ 最後,我後來有去網路上找到http://www.lcd-module.com.hk/html/alpha.html這網頁裡, 找到LCD 16*2的LCD Module的datasheet裡的Display Commands有這些設定的Function 找到大大說的LCD Module 的 datasheet, spec而這個跟之前我買的附在LCD上的datasheet spec 不一樣,之前我買的那個沒有附這麼詳細的資料,所以,現在知道為什麼要這樣設定了, 真是謝謝兩位大大的一些經驗,讓我收穫不少,現在疑問解決了,謝謝 ===================引 用 aki 文 章=================== Sorry! 用語不當. ===================引 用 taishyang 文 章=================== 前輩是認為我苛責發問者嗎? 是的話就誤會大了^^| ===================引 用 aki 文 章=================== 我想也不必太苛責發問者,也許我說話重了些! Sorry! 將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention, 又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶! 就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時, 就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題, 至於要如何回答那就是見人見智了! 以上 ===================引 用 taishyang 文 章=================== 小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^
編輯記錄
microchip1127 重新編輯於 2008-07-31 17:45:28, 註解 無‧
microchip1127 重新編輯於 2008-07-31 17:46:13, 註解 無‧ microchip1127 重新編輯於 2008-07-31 17:49:17, 註解 無‧ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |