?? yibupstc9.asm
字號(hào):
;*************************************
;*********異步屏控制卡驅(qū)動(dòng)程序V1.0****
;********* 南京東大智能 ****
;*************************************
;調(diào)試過程:1、能顯示固定漢字及圖片。
; 2、設(shè)置任意內(nèi)碼,調(diào)用字庫顯示漢字
; 3、加入通信程序,顯示漢字
; 4、測試調(diào)整
; 修改了接受數(shù)據(jù)是控制數(shù)據(jù)長度070111
clk equ p1.0
stb equ p1.1
datr1 equ p1.2
datr2 equ p1.3
l0 equ p1.4
l1 equ p1.5
l2 equ p1.6
;noe equ p1.3
;hoe equ p0.0
;noe2 equ p0.1
;hoe2 equ p0.2
oe1 equ p1.7
oe2 equ p3.2
;*************************************
p4 equ 0e8h
led1 equ p4.0
led2 equ p4.1
led3 equ p4.2
led4 equ p4.3
;*************************************
dat2 equ p3.3
clk2 equ p3.4
set2 equ p3.5
;*************************************
org 0000h
ljmp main
org 23h ;串行中斷入口地址
jmp com_int ;串行中斷服務(wù)程序
main: nop
nop
cpl led2 ;喂狗
;mov p1, #00h
mov 20h, #00h ;標(biāo)志積存器
;//00h:串口接收到數(shù)據(jù)包標(biāo)志,通知主程序處理數(shù)據(jù)
;//01h:清屏標(biāo)志
mov 21h, #00h ;從字庫來的數(shù)據(jù)進(jìn)行反轉(zhuǎn)用積存器
mov 28h, #00h ;合并aciic暫存
mov 29h, #00h ;合并aciic暫存
mov 2ah, #0cdh ;串口數(shù)據(jù)接收指針
mov 2bh, #00h ;串口數(shù)據(jù)接收緩沖
mov 2ch, #00h
mov 2fh, #0fh ;595控制線輸出。
;*****************
mov 30h, #00h
mov 31h, #01h
mov 32h, #02h
mov 33h, #03h
mov 34h, #04h
mov 35h, #05h
mov 36h, #06h
mov 37h, #07h
mov 38h, #08h
mov 39h, #09h
mov 3ah, #0ah
mov 3bh, #0bh
mov 3ch, #0ch
mov 3dh, #0dh
mov 3eh, #0eh
mov 3fh, #0fh
;40h---5bh :接收數(shù)據(jù)緩沖擴(kuò)大改為0cdh--0f2h
mov 40h, #00h ;空閑計(jì)數(shù)低位
mov 41h, #00h ;空閑計(jì)數(shù)高位
;5ch: 暫存1
;5dh: 暫存2
;5eh:接收校驗(yàn)和
;5fh:發(fā)送校驗(yàn)和
mov sp, #60h
lcall comm ;初始化串口
lcall intdata ;初始化接收數(shù)據(jù)緩沖
;**************************************************
cpl led2
lcall zhuanyi ;根據(jù)串口讀到的內(nèi)碼,從漢字庫中讀出字模數(shù)據(jù),
;并依次存儲(chǔ)在ram中 .
lcall nbsjcl ;上屏內(nèi)部數(shù)據(jù)處理,把字庫轉(zhuǎn)換成直接顯示的數(shù)據(jù),
;加快掃描的速度。
cpl led2
lcall nbsjclx ;下屏內(nèi)部數(shù)據(jù)處理,把字庫轉(zhuǎn)換成直接顯示的數(shù)據(jù),
;加快掃描的速度。
lcall com_send ;串口發(fā)送數(shù)據(jù)
;************************************
main1: nop
cpl led1
cpl led2
;lcall zhuanyi ;根據(jù)串口讀到的內(nèi)碼,從漢字庫中讀出字模數(shù)據(jù),
;并依次存儲(chǔ)在ram中 .
;lcall nbsjcl ;上屏內(nèi)部數(shù)據(jù)處理,把字庫轉(zhuǎn)換成直接顯示的數(shù)據(jù),
;加快掃描的速度。
;lcall nbsjclx ;下屏內(nèi)部數(shù)據(jù)處理,把字庫轉(zhuǎn)換成直接顯示的數(shù)據(jù),
;加快掃描的速度。
;lcall dqzimo ;讀取字模程序
lcall com_cl ;串口數(shù)據(jù)處理
;串口數(shù)據(jù)處理數(shù)據(jù)包合法后要存儲(chǔ),否則不存儲(chǔ)。
;lcall jsdizhi ;計(jì)算字摸地址(16)
lcall kongxian ;計(jì)數(shù)程序,在串口中斷時(shí)清零,計(jì)數(shù)到一定值后
;清串口數(shù)據(jù)處理標(biāo)志和指針(070111)
jb 01h, qingp ;若清屏標(biāo)志有效則不執(zhí)行顯示程序
lcall xianshis ;調(diào)用顯示上排
lcall xianshix ;調(diào)用顯示下排
qingp: nop
ljmp main1
;**************************************************
kongxian: nop
inc 40h
mov a, 40h
cjne a, #1fh, exitkx
mov 40h, #00h
clr 00h ;串口接收到數(shù)據(jù)包標(biāo)志,通知主程序處理數(shù)據(jù)
mov 2ah, #0cdh ;串口數(shù)據(jù)接收指針
inc 41h
mov a, 41h
cjne a, #0f0h, exitkx
mov 41h, #00h
nop
setb 01h ;設(shè)置清屏標(biāo)志
exitkx: nop
ret
;**************************************************
;初始化接收緩沖區(qū)
intdata: nop
mov r0, #0cdh
mov @r0, #0cch ;啟示字
inc r0
mov @r0, #26h ;除頭尾外字節(jié)數(shù)
inc r0
mov @r0, #01h ;顯示屏地址
inc r0
;C4 CF BE A9 B6 AB B4 F3 D6 C7 C4 DC
;D6 C7 C4 DC BB AF CD A3 B3 B5 B3 A1 CF B5 CD B3
mov @r0, #0d6h ;漢字1
inc r0
mov @r0, #0c7h ;漢字1
inc r0
mov @r0, #0c4h ;漢字2
inc r0
mov @r0, #0dch ;漢字2
inc r0
mov @r0, #0bbh ;漢字3
inc r0
mov @r0, #0afh ;漢字3
inc r0
mov @r0, #0cdh ;漢字4
inc r0
mov @r0, #0a3h ;漢字4
inc r0
mov @r0, #0b3h ;漢字5
inc r0
mov @r0, #0b5h ;漢字5
inc r0
mov @r0, #0b3h ;漢字6
inc r0
mov @r0, #0a1h ;漢字6
inc r0
mov @r0, #0cfh ;漢字7
inc r0
mov @r0, #0b5h ;漢字7
inc r0
mov @r0, #0cdh ;漢字8
inc r0
mov @r0, #0b3h ;漢字8
inc r0
;D6 C7 C4 DC BB AF CD A3 B3 B5 B3 A1 CF B5 CD B3
;BF D5 32 33 CE BB A4 A2 A4 A1 BF D5 32 36 CE BB
;00 00 C4 CF BE A9 B6 AB B4 F3 D6 C7 C4 DC 00 00
mov @r0, #00h ;漢字9
inc r0
mov @r0, #00h ;漢字9
inc r0
mov @r0, #0c4h ;漢字10
inc r0
mov @r0, #0cfh ;漢字10
inc r0
mov @r0, #0beh ;漢字11
inc r0
mov @r0, #0a9h ;漢字11
inc r0
mov @r0, #0b6h ;漢字12
inc r0
mov @r0, #0abh ;漢字12
inc r0
mov @r0, #0b4h ;漢字13
inc r0
mov @r0, #0f3h ;漢字13
inc r0
mov @r0, #0d6h ;漢字14
inc r0
mov @r0, #0c7h ;漢字14
inc r0
mov @r0, #0c4h ;漢字15
inc r0
mov @r0, #0dch ;漢字15
inc r0
mov @r0, #00h ;漢字16
inc r0
mov @r0, #00h ;漢字16
inc r0
;
mov @r0, #2ah ;備用字
inc r0
mov @r0, #65h ;除頭尾外字節(jié)和
inc r0
mov @r0, #55h ;結(jié)束字
ret
;**************************************************
;根據(jù)串口讀到的內(nèi)碼,從漢字庫中讀出字模數(shù)據(jù),
;并依次存儲(chǔ)在ram中 .
zhuanyi: nop
;處理第1個(gè)字
mov r0, #0d0h ;指向接收數(shù)據(jù)首
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #00h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram 2000h-201fh
;處理第2個(gè)字
mov r0, #0d2h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #20h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram 2000h-201fh
;處理第3個(gè)字
mov r0, #0d4h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #40h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第4個(gè)字
mov r0, #0d6h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #60h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第5個(gè)字
mov r0, #0d8h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #80h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第6個(gè)字
mov r0, #0dah
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #0a0h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第7個(gè)字
mov r0, #0dch
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #0c0h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第8個(gè)字
mov r0, #0deh
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #0e0h ;第幾個(gè)字標(biāo)志
mov 5dh, #20h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;(第二排)
;處理第9個(gè)字
mov r0, #0e0h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #00h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第10個(gè)字
mov r0, #0e2h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #20h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第11個(gè)字
mov r0, #0e4h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #40h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第12個(gè)字
mov r0, #0e6h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #60h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第13個(gè)字
mov r0, #0e8h
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #80h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第14個(gè)字
mov r0, #0eah
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #0a0h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第15個(gè)字
mov r0, #0ech
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #0c0h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
;處理第16個(gè)字
mov r0, #0eeh
mov a, @r0
mov r2, a
inc r0
mov a, @r0
mov r3, a
mov 5ch, #0e0h ;第幾個(gè)字標(biāo)志
mov 5dh, #21h ;第幾個(gè)字標(biāo)志
lcall dqzimo ;讀取字模到內(nèi)存程序
lcall cunram ;存儲(chǔ)到ram
nop
ret
;**************************************************
;讀取字模程序
dqzimo: nop
;78h-- 79h-- 7ah-- 7bh-- 7ch-- 7dh--7eh--7fh--
clr 78h ;RS485 0--JIESHOU
setb 79h ;ROM-CE'
setb 7ah ;RAM-CE2'
setb 7bh ;RAM-CE1'
CLR 7ch ;A19
CLR 7dh ;A18
CLR 7eh ;A17
CLR 7fh ;A16
;mov 2fh,#0fh ;位選控制字
mov a, 2fh
;lcall send_kz
;*********************************************
;判斷r2,r3的值,若是00h則輸出全為00h
;判斷r2,r3的值,若是小于a0h則分別輸出r2,r3的字庫
mov a, r2
clr cy
cjne a, #0a0h, bd1 ;判斷與#0a0h大小
bd1: jnc clhanzi ;若r2大于0a0h,則轉(zhuǎn)入漢字處理
cjne a, #00h, smz1 ;判斷r2是否=0
mov a, r3
cjne a, #00h, smz1 ;判斷r3是否=0
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -