?? weida.asm
字號:
dat_port equ p0
stb bit p2.0
busy bit p2.1
org 000h
JMP START
ORG 100H
start: mov P0,#0ffh ;初始化MCU埠
mov P1,#0ffh
mov P3,#0ffh
MOV P2,#0F0H
MOV A,#00H ;初始化寄存器
MOV PSW,#00H
MOV IE,#00H
MOV SP,#30H
main: acall ho1o ;調用一級庫打印
acall lopo ;打印"#-#-"20個
acall hoho ;換一行
mov A,#00H
MOV R6,#00H
MOV DPTR,#TAB1
lop1: MOV A,R6 ;打印"1234567890ABCDEFGHIJKLMNOP
movc a,@a+dptr ;QRSTUVWXYZ OK!"字符
acall sozo
inc r6
CjnE r6,#46,lop1
acall hoco ;換行
acall lopo ;再打印"#-#-"20個
acall hoho ;換行
acall hogo ;設定打印漢字方式
mov A,#00H
MOV R6,#00H
MOV DPTR,#TAB2
lop2: MOV A,R6 ;打印"歡迎使用啟東斯邁特S51在線開發板!"
movc a,@a+dptr
acall sozo
inc r6
CjnE r6,#34,lop2
acall hoco ;回車換行
acall hoco
jmp $ ;演示結束!
ho1o:mov a,#1bh ;調用一級庫
acall sozo
mov a,#38h
acall sozo
mov a,#00h
acall sozo
acall hoho
ret
hoho:mov a,#0ah ;換行
acall sozo
ret
hoco:mov a,#0dh ;回車換行
acall sozo
ret
hogo:mov a,#1bh ;選定16*16漢字點陣
acall sozo
mov a,#38h
acall sozo
mov a,#00h
acall sozo
ret
lopo: mov r7,#15
l1po: mov a,#23h ;"#"
acall sozo
mov a,#2Dh ;"-"
acall sozo ;
djnz r7,l1po
ret
sozo: push dph ;打印單字元或傳輸指令
push dpl
jb busy,$ ;/busy ?
mov dat_port,a
clr stb
nop
setb stb
pop dpl
pop dph
ret
TAB1: db 31h,32h,33h,34h,35h,36h,37h,38h,39h,30h ;單字元字碼表(單字節)
db 41h,42h,43h,44h,45h,46h,47h,48h,49h,4ah
db 4bh,4ch,4dh,4eh,4fh,51h,52h,53h,54h,0dh
db 55h,56h,57h,58h,59h,5ah,20h,20h,20h,20h
db 2dh,2dh,4fh,4bh,20h,21h
TAB2: db 0bbh,0b6h,0d3h,0adh,0cah,0b9h,0d3h,0c3h ;;漢字字碼表(雙字節)
db 0c4h,0cfh,0beh,0a9h,0b0h,0aeh,0cbh,0bch ;
db 0A3h,0b5h,0a3h,0b1h,0a3h,0c2h ;
db 0b8h,0dfh,0bch,0b6h,0d3h,0c3h ;
db 0bbh,0a7h,0b0h,0e5h,0a3h,0a1h ;
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -