|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于T6963清屏程序的問題請教 |
| 作者:northerns 欄目:單片機 |
顯屏是240×128,這是清屏程序: CLEAR: MOV R2,#00H ;CLEAR DISPLAY RAM MOV R3,#00H MOV R4,#24H ;SET THE ADD POINT. CALL PR1 MOV R4,#0B0H CALL PR12 MOV R6,#0A4H CLEAR1: MOV R5,#1EH CLEAR2: CALL PR03 MOV A,#00H CALL PR14 DJNZ R5,CLEAR2 DJNZ R6,CLEAR1 MOV R4,#0B2H CALL PR12 RET 這里的“MOV R6,#0A4H”是為什么呢?為什么是A4H(164)而不是80H(128)呢 |
| 2樓: | >>參與討論 |
| 作者: northerns 于 2006/9/26 9:09:00 發(fā)布:
怎么沒有回應(yīng)呢?問題太簡單嗎?? |
|
| 3樓: | >>參與討論 |
| 作者: szxxx 于 2006/9/26 13:08:00 發(fā)布:
清屏就是清RAM 找到RAM的區(qū)就可以理解 |
|
| 4樓: | >>參與討論 |
| 作者: northerns 于 2006/9/26 17:03:00 發(fā)布:
謝謝szxxx 還想再問一下:清屏就是清RAM,那么清理的開始地址必須是從0000H開始嗎?還是它自動指向的就是0000H的呢?我可不可以不從0000H開始呢?還有在上面提到的“MOV R6,#0A4H”的A4H是怎么來的呢? 剛接觸顯屏,可能問的問題有點煩大家和有點簡單,可我還是期盼大家給點幫助。。。。 另附文本、圖形設(shè)置: ;TEXT HOME ADDRESS SET MOV R2,#00H MOV R3,#00H MOV R4,#40H CALL PR1 ;TEXT AREA SET MOV R2,#1EH ;TEXT AREA 30 COLUMNS MOV R3,#00H MOV R4,#41H CALL PR1 ;GRAPHIC HOME ADDRESS SET MOV R2,#00H MOV R3,#04H MOV R4,#42H CALL PR1 ;GRAPHIC AREA SET MOV R2,#1EH ;GRAPHIC AREA 30 COLUMNS MOV R3,#00H MOV R4,#43H CALL PR1 MOV R4,#80H ;"OR" MODE CALL PR12 MOV R4,#0A3H ;CURSOR PATTERN SET 3 LINES CALL PR12 |
|
| 5樓: | >>參與討論 |
| 作者: northerns 于 2006/9/26 17:56:00 發(fā)布:
明白A4H了,它是文本區(qū)和圖形區(qū)的和 清屏也不過是把文本區(qū)或者圖形區(qū)寫進00H,和寫圖形的區(qū)別是一個全0一個有值,都是寫。剛才試了一下,可是為什么清屏就不能從指定的地址開始呢? 下面是清屏和寫圖形的程序: ;清除液晶顯示器. ;********************************************************************************** CLEAR: MOV R2,#00H ;CLEAR DISPLAY RAM MOV R3,#00H MOV R4,#24H ;SET THE ADD POINT. CALL PR1 MOV R4,#0B0H CALL PR12 MOV R6,#0A4H CLEAR1: MOV R5,#1EH CLEAR2: CALL PR03 MOV A,#00H CALL PR14 DJNZ R5,CLEAR2 DJNZ R6,CLEAR1 MOV R4,#0B2H CALL PR12 RET ;顯示一屏圖畫程序(240X128點陣), ;數(shù)據(jù)來自程序存儲器, ;********************************************************************************** PICTURE_E: MOV DPTR,#PICTURE_EDZ ;TEST 1 JMP TEST0 PICTURE0: MOV DPTR,#PICTURE0DZ ;TEST 1 TEST0: CALL CLEAR MOV R2,#00H MOV R3,#04H MOV R4,#24H CALL PR1 MOV R4,#0B0H CALL PR12 ;DATA UTO WRITE SET. MOV R1,#10H ;16X8HANGX240LIE. TEST1: MOV R2,#08H ;8HANGX240LIE. TEST2: MOV R3,#1EH ;16X30=240LIE. TEST3: CALL PR03 MOV A,#00H MOVC A,@A+DPTR JNB FXXS,TEST5 CPL A TEST5: INC DPTR CALL PR14 DJNZ R3,TEST3 DJNZ R2,TEST2 DJNZ R1,TEST1 TEST4: RET DQXTCS: MOV R7,#40D TEST55: CALL DALY CALL READ_KEY MOV A,KEY CJNE A,#04H,TEST44 DJNZ R7,TEST55 MOV R6,#42H MOV R5,#0AAH CALL SAVE CALL DALY CALL DALY CALL ALARM CALL LDALY CALL ALARM CALL LDALY CALL ALARM TEST44: MOV R6,#42H CALL READD CALL DALY MOV A,R5 CJNE A,#0AAH,TEST6 &nb |
|
| 6樓: | >>參與討論 |
| 作者: gyt 于 2006/9/26 19:11:00 發(fā)布:
祝賀 自己研究出來的結(jié)果是最好的。你的水平會提高得很快。 |
|
| 7樓: | >>參與討論 |
| 作者: northerns 于 2006/9/27 10:38:00 發(fā)布:
還得再請教 清屏也不過是把文本區(qū)或者圖形區(qū)寫進00H,和寫圖形的區(qū)別是一個全0一個有值,都是寫。剛才試了一下,可是為什么清屏就不能從指定的地址開始呢? 各位給點意見啊 |
|
| 8樓: | >>參與討論 |
| 作者: northerns 于 2006/9/27 17:14:00 發(fā)布:
找不到原因不罷休啊 |
|
| 9樓: | >>參與討論 |
| 作者: 1dqmoon 于 2006/9/28 23:07:00 發(fā)布:
這個倒不會吧 注意幾點, 如果你的文本區(qū)和圖形重疊或不重疊,清屏的時候?qū)懙牡刂房赡懿灰粯,下面的是一個c代碼的程序,你看一下就知道了 /******************************************************************************** 函數(shù)名: Void ClearScreen(unsigned int ram) 函數(shù)功能: 清除整個屏幕 ram : 要清零的單元數(shù) ********************************************************************************/ void ClearScreen(uint ram) { unsigned int i; // 清顯示 RAM 區(qū) 0000h--2000h (8k) WriteCmd3(0x00,0x00,AddrSet); // 設(shè)置指針地址0000H WriteCmd1(0xb0); // 設(shè)置自動寫狀態(tài) for(i=0x00;i<ram;i++) WriteData(0x00); // data=0; WriteCmd1(0xb2); // 自動寫結(jié)束 } WriteCmd3(0x00,0x00,AddrSet); // 設(shè)置指針地址0000H 這一條,就是先設(shè)置指定的地址,然后開始清 (0地址是個特殊的情況哦) |
|
| 10樓: | >>參與討論 |
| 作者: northerns 于 2006/9/29 10:30:00 發(fā)布:
我找到問題所在了,可是還有些困惑。! 先感謝1dqmoon,再問1dqmoon個你的程序里的問題: WriteCmd3(0x00,0x00,AddrSet);AddrSet是設(shè)置什么的呀?(別的都明白了) 然后::: 我找到問題所在了,可是還有些困惑。。 先看下面 下面是清屏和寫圖形的程序: ;清除液晶顯示器. ;********************************************************************************** CLEAR: MOV R2,#00H ;CLEAR DISPLAY RAM MOV R3,#00H MOV R4,#24H ;SET THE ADD POINT. CALL PR1 MOV R4,#0B0H CALL PR12 MOV R6,#0A4H CLEAR1: MOV R5,#1EH CLEAR2: CALL PR03 MOV A,#00H CALL PR14 DJNZ R5,CLEAR2 DJNZ R6,CLEAR1 MOV R4,#0B2H CALL PR12 RET ;顯示一屏圖畫程序(240X128點陣), ;數(shù)據(jù)來自程序存儲器, ;********************************************************************************** PICTURE_E: MOV DPTR,#PICTURE_EDZ ;TEST 1 JMP TEST0 PICTURE0: MOV DPTR,#PICTURE0DZ ;TEST 1 TEST0: CALL CLEAR MOV R2,#00H MOV R3,#04H MOV R4,#24H CALL PR1 MOV R4,#0B0H CALL PR12 ;DATA UTO WRITE SET. MOV R1,#10H ;16X8HANGX240LIE. TEST1: MOV R2,#08H ;8HANGX240LIE. TEST2: MOV R3,#1EH ;16X30=240LIE. TEST3: CALL PR03 MOV A,#00H MOVC A,@A+DPTR JNB FXXS,TEST5 CPL A TEST5: INC DPTR CALL PR14 DJNZ R3,TEST3 DJNZ R2,TEST2 DJNZ R1,TEST1 TEST4: RET …… 清屏和刷屏程序有一點區(qū)別,就是清屏里有: MOV R4,#0B2H CALL PR12 而刷屏里在寫完數(shù)據(jù)后沒有設(shè)置MOV R4,#0B2H, 在刷屏里添加進去后就OK了! 這是為什么呢,如果沒有MOV R4,#0B2H會造成什么后果呢,原因是什么呢? |
|
| 11樓: | >>參與討論 |
| 作者: northerns 于 2006/9/29 10:34:00 發(fā)布:
即將迎來光明了,可還得智者點撥一下啊 TO:1dqmoon, 不好意思還有個問題: "0地址是個特殊的情況哦" 為什么特殊。? |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |