作者easypro ()
看板ASM
標題Re: LCD測試問題
時間Fri Oct 1 09:41:30 2010
※ 引述《maxwellyann (不彥其煩)》之銘言:
sbit RS =P1^1;
sbit RW =P1^0;
sbit Enable =P1^2;
這邊是設定為P1 Port了。
: void WriteIns(char instruction)
: {
: RS=0;
: RW=0;
: Enable=1;
: P1=instruction;
^^^^^^^^^^^^^^^
Data還走P1 Port???? 這樣不會出來吧。
: Enable=0;
: CheckBusy();
: } /* WriteIns */
: void WriteData(char i)
: {
: RS=1;
: RW=0;
: Enable=1;
: P1=i;
^^^^^
同上面問題
: Enable=0;
: CheckBusy();
: } /* WriteData */
: void WriteString(count,MSG)
: char count;
: char MSG[];
: {
: char i;
: for(i=0;i<count;i++)
: WriteData(MSG[i]);
: } /* WriteString */
: void CheckBusy(void)
: {
: char i=0x80;
: while(i&0x80)
: {
: RS=0;
: RW=1;
: Enable=1;
: i=P1;
^^^^^
檢查不到,永遠卡死迴圈。
: Enable=0;
: delay();
: }
: } /* CheckBusy */
: void delay(void)
: {
: int i;
: for(i=0;i<500;i++)
: ;
: } /* delay */
把RS、Enable、RW都改到P0上面,Data用P1送可以了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.141.250
※ 編輯: easypro 來自: 60.250.141.250 (10/01 09:42)
1F:推 maxwellyann:謝謝你唷~馬上來試試!! 10/01 11:52
2F:→ maxwellyann:我將RS RW E 設成P2_0~2,P1不變,可是還是沒有反應耶 10/01 13:05
3F:→ maxwellyann:i=P1 你說永遠卡死迴圈是什麼意思啊?是設P1會卡死嘛? 10/01 13:06
4F:→ maxwellyann:我改成P2還是沒有反應捏 = = EA大麻煩你幫我解答 謝! 10/01 13:14
5F:→ easypro:LCM起始位址有設定歸位嗎? 10/01 17:11
6F:→ easypro:LCM型號? IO是否有先拉至應該設定的狀態? 10/01 17:21
7F:→ maxwellyann:好像沒有設耶 = = 那要設在哪一段呢? 10/01 22:19
8F:→ maxwellyann:LCM型號:MTC-16101X IO拉至應該設定的位置?甚麼意思? 10/01 22:20
9F:→ maxwellyann:我的IO跟RS RW E都有接才測試,但是都沒反應捏= = 10/01 22:23
10F:推 ruemann:你先把你MCU IO和 LCM的IO連接PO一下 這顆沒有那麼難搞 10/02 01:15
11F:→ maxwellyann:MCU IO是port1~8(P1.0~7) 10/02 14:01
12F:→ maxwellyann:LCM IO是port7~14(DB0~7)RS RW E是port21~23(P2.0~2) 10/02 14:03
13F:→ maxwellyann:LCM port1.3 Gnd port2 +Vcc 我的硬體連接大致是這樣! 10/02 14:04
14F:→ maxwellyann:程式的部分我已經將RS RW E改成P2.0~2.3 LCM一樣P1 10/02 14:06
15F:→ maxwellyann:要麻煩你嚕 謝謝你 我也不知道為麼不會動作 = ='' 10/02 14:07
16F:→ easypro:LCM有出現一排黑字嗎? 10/02 14:18
17F:→ maxwellyann:LCM出現淡淡的黑色,沒有字,而且只有八格有黑色 10/02 16:21
18F:→ maxwellyann:而且也有試過,它是接電源就有黑色,燒ㄌ程式沒動作! 10/02 16:21
19F:推 WolfLord:P0 的話,你需要PULL HIGH 至少10K 10/02 19:39
20F:→ maxwellyann:PULL HIGH 10K是甚麼意思呀 不太懂捏 請狼哥解釋 = =' 10/02 22:16
21F:推 ruemann:你看有沒有辨法搞個示波器看一下SPI動作是不是符合規定 10/03 02:20
22F:推 ruemann:在checkbusy裡面的RS=0前面加上P1=1看看 10/03 02:48
23F:推 WolfLord:他那個LCM是PIO的不是SPI啦~~ 10/03 07:40
24F:→ maxwellyann:目前手邊沒硬體可以操作 = = 如果要用示波器測量 10/03 12:01
25F:→ maxwellyann:那麼要如何接啊 不太會操作示波器的說 @@ 10/03 12:02
26F:→ maxwellyann:還有要呈現甚麼波形才算正常呢!? 10/03 12:02
27F:→ maxwellyann:麻煩給予指導 謝謝你們!!! 10/03 12:03
28F:推 ruemann:我上面寫錯了 是P1=0xFF; 10/03 20:13