<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 硬件漢字庫設(shè)計原理與應(yīng)用

          硬件漢字庫設(shè)計原理與應(yīng)用

          作者: 時間:2012-07-04 來源:網(wǎng)絡(luò) 收藏

          四顯示原理與軟件編制

          在第一節(jié)中我們已經(jīng)得出國字的區(qū)位碼為195AH 換算成十進(jìn)制為2590 ,即國字的點陣位
          于第25 區(qū)的第90 個字的位置,相當(dāng)于在文件HZK16 中的位置為32 [(25-1) 94 (90-1)] 75040B 以后的32 個字節(jié)為國的顯示點陣。
          在本系統(tǒng)中AT29C020 的A15 A17 分別連接到P1 口的P1.0 P1.1 和P1.2 作為頁選擇控制A0
          A14 直接連接單片機(jī)的A0 A14 利用MOVX 指令連續(xù)取32 個字節(jié)送LCD 的相應(yīng)位置就能實現(xiàn)正確的漢字顯示。
          由于240 128 點陣的LCD 顯示器每行只能顯示15 個漢字16 16 點陣漢字所以可以將需要顯示的語句按15 個漢字為1 行進(jìn)行編寫標(biāo)點符號要用全角不足15 個漢字的則補(bǔ)空格這就是下面軟件中的MENG.ASM 中的內(nèi)容
          為方便讀者將已經(jīng)通過匯編的有關(guān)程序列出有關(guān)LCD 的具體使用方法請見文獻(xiàn)[2]
          主程序
          C_ADD EQU 8001H 液晶命令地址
          D_ADD EQU 8000H 液晶數(shù)據(jù)地址
          DAT1 EQU 30H
          DAT2 EQU 31H
          COM EQU 32H
          CODE1 EQU 33H
          COUNT EQU 34H
          O_Y EQU 35H
          O_X EQU 36H
          COUNT_X EQU 37H
          ORG 0000H
          SJMP START
          ORG 0030H
          START: MOV SP, #60H
          ORL AUXR, #02H EXTRAM 位1 訪問外部數(shù)據(jù)存儲器
          ANL AUXR1, #0FH ENBOOT=0 訪問到FLASH
          CLR P1.5 正顯
          LCALL INT 初始化設(shè)置子程序
          LCALL CLEAR 清屏
          MOV DPTR, #TABLE 科幻小說的開頭
          MOV O_Y, #00H
          PUSH DPH
          PUSH DPL
          LOOP: POP DPL
          POP DPH
          MOV R0, #0E0H 字模數(shù)據(jù)暫存區(qū)
          MOV R7, #30 每個漢字為2 字節(jié)每行15 個漢字需30 字節(jié)
          PRHZ3: CLR A
          MOVC A, @A+DPTR
          MOV @R0,A
          INC R0
          INC DPTR
          DJNZ R7, PRHZ3
          PUSH DPH
          PUSH DPL
          MOV O_X, #00H
          MOV R0, #0E0H
          MOV COUNT_X, #15
          LCD112: MOV 24H, @R0 24H 和25H 為暫存緩沖存內(nèi)碼
          INC R0
          MOV 25H, @R0
          INC R0
          MOV A, 24H
          CLR C
          SUBB A, #0A1H 轉(zhuǎn)換為區(qū)位碼
          MOV 24H, A
          MOV A, 25H
          CLR C
          SUBB A, #0A1H
          MOV 25H, A
          MOV A, R0
          PUSH ACC
          LCALL DPONHZ 取字模數(shù)據(jù)并存入0C0H 開始的寄存器
          LCALL WRI_CC 送出顯示
          POP ACC
          MOV R0, A
          INC O_X
          INC O_X
          DJNZ COUNT_X,LCD112 1 行漢字送完跳轉(zhuǎn)
          MOV A, O_Y
          ADD A, #10H
          MOV O_Y, A
          MOV A, O_Y
          CJNE A, #80H,LOOP
          MOV O_Y, #00H
          LCALL DELAY 送完1 屏后延長時間以便于閱讀
          LCALL DELAY
          LCALL DELAY
          LCALL DELAY
          LCALL DELAY
          LCALL DELAY
          POP DPL
          POP DPH
          PUSH DPH
          PUSH DPL
          MOV A, DPH
          SUBB A, #0DFH 小說結(jié)尾地址如果是結(jié)尾則復(fù)位重新開始
          JNC RST1
          JMP LOOP
          RST1: MOV A, DPL
          SUBB A, #2AH
          JNC RST
          JMP LOOP
          RST: JMP START
          DPONHZ: MOV A, 24H 取字模數(shù)據(jù)至0C0H 開始的內(nèi)部存儲區(qū)
          MOV B, #94
          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
          LCALL RL245
          CLR 24H.7
          MOV DPH, 24H
          MOV DPL, 25H
          MOV R2, #32
          MOV R1, #0C0H
          DPHZ2: MOVX A, @DPTR
          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
          R_ST: MOV DPTR, #C_ADD 讀狀態(tài)
          MOVX A, @DPTR
          RET
          ST01: LCALL R_ST 讀寫一數(shù)據(jù)前
          JNB ACC.0, ST01
          JNB ACC.1, ST01
          RET
          ST2: LCALL R_ST 連續(xù)讀前
          JNB ACC.2, ST2
          RET
          ST3: LCALL R_ST 連續(xù)寫前
          JNB ACC.3, ST3
          RET
          ST6: LCALL R_ST
          JB ACC.6, ERR
          RET
          ERR: LJMP ST6
          PR1: LCALL ST01
          MOV A, DAT1
          LCALL PR13
          PR11: LCALL ST01
          MOV A, DAT2
          LCALL PR13
          PR12: LCALL ST01
          MOV A, COM
          LJMP PR14
          PR13: MOV DPTR, #D_ADD
          PR14: MOVX @DPTR, A
          RET
          PR2: LCALL ST01
          MOV DPTR, #D_ADD
          MOVX A, @DPTR
          MOV DAT2, A
          RET
          INT: MOV DAT1, #00H 初始化設(shè)置子程序
          MOV DAT2, #00H
          MOV COM, #40H
          LCALL PR1
          MOV DAT1, #20H
          MOV DAT2, #00H
          MOV COM, #41H
          LCALL PR1
          MOV DAT1, #00H
          MOV DAT2, #08H
          MOV COM, #42H
          LCALL PR1
          MOV DAT1, #20H
          MOV DAT2, #00H



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();