|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于T6963清屏程序的問題請(qǐng)教 |
作者:northerns 欄目:單片機(jī) |
顯屏是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)呢?問題太簡(jiǎn)單嗎?? |
3樓: | >>參與討論 |
作者: szxxx 于 2006/9/26 13:08:00 發(fā)布:
清屏就是清RAM 找到RAM的區(qū)就可以理解 |
4樓: | >>參與討論 |
作者: northerns 于 2006/9/26 17:03:00 發(fā)布:
謝謝szxxx 還想再問一下:清屏就是清RAM,那么清理的開始地址必須是從0000H開始嗎?還是它自動(dòng)指向的就是0000H的呢?我可不可以不從0000H開始呢?還有在上面提到的“MOV R6,#0A4H”的A4H是怎么來(lái)的呢? 剛接觸顯屏,可能問的問題有點(diǎn)煩大家和有點(diǎn)簡(jiǎn)單,可我還是期盼大家給點(diǎn)幫助。。。! 另附文本、圖形設(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ū)的和 清屏也不過(guò)是把文本區(qū)或者圖形區(qū)寫進(jìn)00H,和寫圖形的區(qū)別是一個(gè)全0一個(gè)有值,都是寫。剛才試了一下,可是為什么清屏就不能從指定的地址開始呢? 下面是清屏和寫圖形的程序: ;清除液晶顯示器. ;********************************************************************************** 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點(diǎn)陣), ;數(shù)據(jù)來(lái)自程序存儲(chǔ)器, ;********************************************************************************** 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ā)布:
祝賀 自己研究出來(lái)的結(jié)果是最好的。你的水平會(huì)提高得很快。 |
7樓: | >>參與討論 |
作者: northerns 于 2006/9/27 10:38:00 發(fā)布:
還得再請(qǐng)教 清屏也不過(guò)是把文本區(qū)或者圖形區(qū)寫進(jìn)00H,和寫圖形的區(qū)別是一個(gè)全0一個(gè)有值,都是寫。剛才試了一下,可是為什么清屏就不能從指定的地址開始呢? 各位給點(diǎn)意見啊 |
8樓: | >>參與討論 |
作者: northerns 于 2006/9/27 17:14:00 發(fā)布:
找不到原因不罷休啊 |
9樓: | >>參與討論 |
作者: 1dqmoon 于 2006/9/28 23:07:00 發(fā)布:
這個(gè)倒不會(huì)吧 注意幾點(diǎn), 如果你的文本區(qū)和圖形重疊或不重疊,清屏的時(shí)候?qū)懙牡刂房赡懿灰粯,下面的是一個(gè)c代碼的程序,你看一下就知道了 /******************************************************************************** 函數(shù)名: Void ClearScreen(unsigned int ram) 函數(shù)功能: 清除整個(gè)屏幕 ram : 要清零的單元數(shù) ********************************************************************************/ void ClearScreen(uint ram) { unsigned int i; // 清顯示 RAM 區(qū) 0000h--2000h (8k) WriteCmd3(0x00,0x00,AddrSet); // 設(shè)置指針地址0000H WriteCmd1(0xb0); // 設(shè)置自動(dòng)寫狀態(tài) for(i=0x00;i<ram;i++) WriteData(0x00); // data=0; WriteCmd1(0xb2); // 自動(dòng)寫結(jié)束 } WriteCmd3(0x00,0x00,AddrSet); // 設(shè)置指針地址0000H 這一條,就是先設(shè)置指定的地址,然后開始清 (0地址是個(gè)特殊的情況哦) |
10樓: | >>參與討論 |
作者: northerns 于 2006/9/29 10:30:00 發(fā)布:
我找到問題所在了,可是還有些困惑。! 先感謝1dqmoon,再問1dqmoon個(gè)你的程序里的問題: 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點(diǎn)陣), ;數(shù)據(jù)來(lái)自程序存儲(chǔ)器, ;********************************************************************************** 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 …… 清屏和刷屏程序有一點(diǎn)區(qū)別,就是清屏里有: MOV R4,#0B2H CALL PR12 而刷屏里在寫完數(shù)據(jù)后沒有設(shè)置MOV R4,#0B2H, 在刷屏里添加進(jìn)去后就OK了! 這是為什么呢,如果沒有MOV R4,#0B2H會(huì)造成什么后果呢,原因是什么呢? |
11樓: | >>參與討論 |
作者: northerns 于 2006/9/29 10:34:00 發(fā)布:
即將迎來(lái)光明了,可還得智者點(diǎn)撥一下啊 TO:1dqmoon, 不好意思還有個(gè)問題: "0地址是個(gè)特殊的情況哦" 為什么特殊?? |
|
|
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào) |