|
|||||||||||
| 技術(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 |
點(diǎn)陣屏的問(wèn)題? |
| 作者:yang365 欄目:單片機(jī) |
本人通過(guò)電子報(bào)看到《帶漢字庫(kù)點(diǎn)陣屏的設(shè)計(jì)》一文中的匯編語(yǔ)言 程序,對(duì)于程序中的一些不清楚問(wèn)題想向諸位您請(qǐng)教,希望能得到回復(fù)。 MOMERY EQU 38H DA2 EQU P1.3 ;595-14 CLK2 EQU P3.4 ;595-11 LATCH2 EQU P3.3 ;595-12 DATA595A EQU 4CH DATA595B EQU 4BH DELBUF EQU 4AH ORG 00H AJMP START ORG 0030H START: MOV SP, #60H MOV DPTR,#TABLE ;取要顯示漢字表的機(jī)內(nèi)碼的首地址 PUSH DPH PUSH DPL LOOP: POP DPL POP DPH MOV R0, #0E0H ; 字模數(shù)據(jù)暫存區(qū) MOV R7,#2 ; 每個(gè)漢字為2 字節(jié)每屏1 個(gè)漢字需2 個(gè)字節(jié) PRHZ3: CLR A MOVC A, @A+DPTR ;取漢字的機(jī)內(nèi)碼 MOV @R0,A INC R0 INC DPTR DJNZ R7, PRHZ3 ;一個(gè)漢字2個(gè)字節(jié)的機(jī)內(nèi)碼取完了嗎? PUSH DPH PUSH DPL MOV R0, #0E0H MOV A,#2FH ;是結(jié)束嗎?是從頭再來(lái) 判斷文字是否結(jié)束 CLR C SUBB A,@R0 JC LCD112 JMP START LCD112: MOV 24H, @R0 ; 24H 和25H 為暫存緩沖存內(nèi)碼 INC R0 MOV 25H, @R0 INC R0 MOV A, 24H CLR C SUBB A, #0A0H ; 轉(zhuǎn)換為區(qū)位碼 MOV 24H, A MOV A, 25H CLR C SUBB A, #0A0H MOV 25H, A MOV A, R0 PUSH ACC LCALL DPONHZ ;取字模數(shù)據(jù)并存入0C0H 開始的寄存器 LCALL DIS ;送出顯示 POP ACC MOV R0, A AJMP LOOP POP DPL POP DPH PUSH DPH PUSH DPL DPONHZ: MOV A, 24H ; 取字模數(shù)據(jù)至0C0H 開始的內(nèi)部存儲(chǔ)區(qū) MOV B, #5EH MUL AB ADD A, 25H MOV 25H, A CLR A ADDC A, B MOV 24H, A CLR C RRC A CLR C RRC A MOV P1,A ;頁(yè)碼送入P1 MOV MOMERY,A ;頁(yè)碼送入38H,以便顯示掃描部分調(diào)用 LCALL RL245 ;調(diào)用左移五位子程序 CLR 24H.7 ;打開始能控制P2.7 MOV DPH, 24H MOV DPL, 25H MOV R2, #32 ;一個(gè)漢字32個(gè)點(diǎn)陣數(shù)據(jù) MOV R1, #0C0H ;點(diǎn)陣數(shù)據(jù)存入首地址 DPHZ2: MOVX A, @DPTR ;從漢字庫(kù)中查找點(diǎn)陣數(shù)據(jù) INC DPTR MOV @R1, A INC R1 DJNZ R2, DPHZ2 RET RL245: MOV R7, #05; 24H25H; 左移5 位 RLL1: CLR C MOV A, 25H RLC A MOV 25H,A MOV A, 24H RLC A MOV 24H, A DJNZ R7, RLL1 RET ;顯示處理部分,因?yàn)橹挥幸粋(gè)字顯示,所以采用逐字顯示方式。 DIS: MOV R4,#0FFH ;行掃描初值,可以調(diào)整為00H MOV R7,#060H ;一屏顯示的時(shí)間....................................... D5: MOV R6,#16 ;共16行逐行顯示 |
| 2樓: | >>參與討論 |
| 作者: yang365 于 2005/3/1 15:54:00 發(fā)布:
我的電路圖 * - 本貼最后修改時(shí)間:2005-3-2 8:51:05 修改者:yang365 |
|
| 3樓: | >>參與討論 |
| 作者: yang365 于 2005/3/2 8:54:00 發(fā)布:
這破圖終于傳上去了 |
|
| 4樓: | >>參與討論 |
| 作者: qingheworkshop 于 2005/3/2 10:23:00 發(fā)布:
你好像不會(huì)提問(wèn)題啊,不象一個(gè)工程師 提問(wèn)題要簡(jiǎn)明扼要,大家回答問(wèn)題都是提供一種思路或者解決辦法,難道讓誰(shuí)花大量時(shí)間去讀你的程序嗎?再說(shuō),作為工程師,不應(yīng)該在論壇里提這樣的問(wèn)題啊。 我講一個(gè)故事:從前有個(gè)人一心信佛,天天跪拜祈求觀音菩薩保佑,終于有一天菩薩顯圣,讓他一見菩薩,這人突然有好奇心,便問(wèn)菩薩說(shuō):您也拜神仙嗎?觀音菩薩說(shuō):我也拜菩薩。這人更奇怪了,問(wèn):那您拜的是哪做菩薩?觀音菩薩說(shuō):我拜的是南海觀音菩薩。這人大惑不解說(shuō):您不就是觀音菩薩嗎?您拜自己?觀音菩薩說(shuō):是啊,求人不如求己。 我不是在這里賣老,我也沒(méi)有資格,但是我認(rèn)為這是一種正確的學(xué)習(xí)心態(tài),求人只能給你思路與方法,路還是要自己走的。否則是沒(méi)有進(jìn)步的 |
|
| 5樓: | >>參與討論 |
| 作者: yang365 于 2005/3/2 11:38:00 發(fā)布:
謝謝 謝謝您的回貼 只是我在這一個(gè)問(wèn)題上(29C020的讀寫)已經(jīng)卡了快半個(gè)月了 提出來(lái)只是尋求一個(gè)思路或者有朋友會(huì)為我指出某處錯(cuò)誤 也許就是一層窗戶紙。 |
|
| 6樓: | >>參與討論 |
| 作者: yywxwen 于 2005/3/4 10:00:00 發(fā)布:
關(guān)于第5個(gè)問(wèn)題的解答 問(wèn)題:計(jì)算出區(qū)位碼后,怎樣在字庫(kù)中查找相對(duì)應(yīng)于區(qū)位碼的字庫(kù)點(diǎn)陣地址,點(diǎn)陣字模的地址是怎樣計(jì)算出來(lái)的。 字符首地址為:[(區(qū)碼-1)*94+(位碼-1)]*32 |
|
| 7樓: | >>參與討論 |
| 作者: yywxwen 于 2005/3/4 10:04:00 發(fā)布:
第4個(gè)問(wèn)題的回答 問(wèn)題:為什么要調(diào)用左移五位子程序,目的是什么? 此左移五位相當(dāng)于把一個(gè)數(shù)乘了32 也就是說(shuō),按上面的那個(gè)公式:字符首地址為:[(區(qū)碼-1)*94+(位碼-1)]*32 最后面的乘32 |
|
| 8樓: | >>參與討論 |
| 作者: yywxwen 于 2005/3/4 10:09:00 發(fā)布:
回答第3個(gè)問(wèn)題 問(wèn)題:送給P1的頁(yè)碼初值我沒(méi)找到 每頁(yè)32K,共8頁(yè),程序上有個(gè)把24H里的數(shù)據(jù)右移兩位,即是送的頁(yè)數(shù),是個(gè)算法 自己找個(gè)數(shù)試試就知道了。 |
|
| 9樓: | >>參與討論 |
| 作者: yywxwen 于 2005/3/4 10:11:00 發(fā)布:
第一個(gè)和第2個(gè)問(wèn)題,本人C不好,無(wú)從回答 |
|
| 10樓: | >>參與討論 |
| 作者: yang365 于 2005/3/4 14:38:00 發(fā)布:
感謝yywxwen的回答 對(duì)于我很有用謝謝 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |