全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2461
推到 Plurk!
推到 Facebook!

有關使用PIC18F系列控制LCD的定義

答題得分者是:aki
microchip1127
一般會員


發表:20
回覆:22
積分:8
註冊:2008-04-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-24 11:03:00 IP:139.223.xxx.xxx 訂閱
各位大大 你們好:

最近剛接手上一個人的工作,開始觸碰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 重新編輯於 2008-07-31 11:32:19, 註解 無‧
microchip1127 重新編輯於 2008-07-31 11:32:59, 註解 [已結案]‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-24 11:45:04 IP:118.169.xxx.xxx 訂閱
你要看的應該是LCD Module的datasheet ^_^
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-24 15:41:33 IP:61.66.xxx.xxx 訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-24 17:22:24 IP:139.223.xxx.xxx 訂閱
回二樓大大:

LCD Module的datasheet沒有寫,只有寫接腳的關聯而已,還是
謝謝提醒

回三樓大大:

我在Taiwan Microchip有找到LCD的一些設定,目前正在參考中
,謝謝大大的指點
編輯記錄
microchip1127 重新編輯於 2008-07-24 17:23:07, 註解 無‧
naga88
一般會員


發表:0
回覆:13
積分:7
註冊:2008-06-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-25 14:51:48 IP:60.249.xxx.xxx 訂閱

對不起插嘴一下
/ /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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-07-30 16:59:51 IP:139.223.xxx.xxx 訂閱

===================引 用 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-07-30 17:30:43 IP:118.169.xxx.xxx 訂閱
小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-07-30 19:45:18 IP:61.66.xxx.xxx 訂閱
我想也不必太苛責發問者,也許我說話重了些! Sorry!

將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention,
又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶!

就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時,
就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題,
至於要如何回答那就是見人見智了!

以上
===================引 用 taishyang 文 章===================
小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-07-30 20:03:24 IP:118.169.xxx.xxx 訂閱
前輩是認為我苛責發問者嗎? 是的話就誤會大了^^|


===================引 用 aki 文 章===================
我想也不必太苛責發問者,也許我說話重了些! Sorry!

將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention,
又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶!

就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時,
就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題,
至於要如何回答那就是見人見智了!

以上
===================引 用 taishyang 文 章===================
小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-07-30 20:23:45 IP:61.66.xxx.xxx 訂閱
Sorry!  用語不當. 

===================引 用 taishyang 文 章===================
前輩是認為我苛責發問者嗎? 是的話就誤會大了^^|


===================引 用 aki 文 章===================
我想也不必太苛責發問者,也許我說話重了些! Sorry!

將心比心,如果是初學者就算是有 Datasheet or Specification 等 Documention,
又怎樣,很多人都還不會讀呢? 要了解 LCDM 我也買了很多本書來讀耶!

就這一位發問者來說,當網友告訴他 Microchip Taiwan 有相關的教學檔案時,
就會去找答案了,已經算是非常是好的初學者了,所以建議對於這種人,最好的鼓勵就是儘可能回答問題,
至於要如何回答那就是見人見智了!

以上
===================引 用 taishyang 文 章===================
小弟斗膽認為您spec沒有看仔細,要知道怎麼控制LCD模組,沒有看LCD模組的spec要怎麼知道如何控制呢 ^^
microchip1127
一般會員


發表:20
回覆:22
積分:8
註冊:2008-04-30

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-07-31 10:02:54 IP:139.223.xxx.xxx 訂閱
不管怎麼樣,都謝謝兩位大大的一些見解,
兩位的意思我都了解,我也大概知道像我
這樣初學者的問題在那邊了,真是謝謝,希
望下次有別的問題時,兩位大大也不吝指
教,感謝^__^

最後,我後來有去網路上找到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, 註解 無‧
系統時間:2024-05-02 12:11:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!