PORTA EQU 0200H;8255的PA口地址
PORTB EQU 0202H;A1、A2用于端口选择
PORTC EQU 0204H;PC口,上面是PB口
PCONT EQU 0206H;8255的控制口地址
RESET EQU 11100010B ;LCD复位命令码
DISP_ON EQU 10101111B ;LCD显示开命令码
DISP_NOR EQU 10100110B ;LCD正常显示命令码
DISP_ALL EQU 10100100B ;LCD所有点全部显示命令码
LINE0 EQU 01000000B ;行号,0开始,到63
PAGE0 EQU 10110000B ;页号,0开始,到7
COLHIGH EQU 00010000B ;列号高四位
COLLOW EQU 00000000B ;列号低四位,共16列
ADCA EQU 10100000B ;向左显示命令码
DATASEGMENT ;定义数据段
XIDB 04H,0C4H,44H,44H,44H,0FCH,44H,44H
DB 44H,0FCH,44H,44H,44H,0E6H,44H,00H
DB 00H,0FFH,40H,50H,48H,47H,40H,40H
DB 40H,47H,48H,48H,40H,0FFH,00H,00H
BEIDB 00H,20H,20H,20H,20H,0FFH,00H,00H
DB 0FFH,20H,10H,08H,0CH,00H,00H,00H
DB 20H,60H,20H,10H,10H,7FH,00H,00H
DB 3FH,40H,40H,40H,40H,40H,70H,00H
SHIDB 00H,0FCH,00H,00H,0FFH,00H,02H,0F2H
DB 12H,12H,0FEH,12H,12H,0FBH,12H,00H
DB 00H,8FH,40H,30H,0FH,00H,00H,3FH
DB 00H,00H,0FFH,10H,20H,1FH,00H,00H
FANDB 04H,44H,94H,24H,6FH,04H,0E4H,24H
DB 24H,24H,2FH,0F4H,24H,06H,04H,00H
DB 04H,04H,0FDH,04H,02H,00H,3FH,40H
DB 40H,42H,44H,43H,40H,40H,70H,00H
DADB 20H,20H,20H,20H,20H,20H,0A0H,7FH
DB 0A0H,20H,20H,20H,20H,30H,20H,00H
DB 00H,40H,40H,20H,10H,0CH,03H,00H
DB 01H,06H,08H,10H,20H,60H,20H,00H
XUEDB 40H,30H,11H,96H,90H,90H,91H,96H
DB 90H,90H,98H,14H,13H,50H,30H,00H
DB 04H,04H,04H,04H,04H,44H,84H,7EH
DB 06H,05H,04H,04H,04H,06H,04H,00H
JI01DB 40H,40H,42H,0CCH,00H,40H,40H,40H
DB 40H,0FFH,40H,40H,40H,60H,40H,00H
DB 00H,00H,00H,7FH,20H,10H,08H,00H
DB 00H,0FFH,00H,00H,00H,00H,00H,00H
SUANDB 08H,04H,03H,0FAH,0AEH,0AAH,0AAH,0ACH
DB 0ABH,0AAH,0AEH,0FAH,02H,02H,00H,00H
DB 08H,08H,88H,4BH,3EH,0AH,0AH,0AH
DB 0AH,0AH,0FEH,0BH,08H,0CH,08H,00H
JI02DB 10H,10H,0D0H,0FFH,90H,10H,00H,0FCH
DB 04H,04H,04H,0FEH,04H,00H,00H,00H
DB 04H,03H,00H,0FFH,80H,41H,20H,1FH
DB 00H,00H,00H,3FH,40H,40H,70H,00H
YUANDB 00H,0FEH,22H,5AH,96H,0CH,24H,24H
DB 25H,26H,24H,34H,0A4H,14H,0CH,00H
DB 00H,0FFH,04H,08H,87H,81H,41H,31H
DB 0FH,01H,3FH,41H,41H,41H,70H,00H
LIUDB 08H,28H,49H,8AH,0EH,88H,78H,0CH
DB 08H,00H,0FCH,00H,00H,0FFH,00H,00H
DB 40H,20H,10H,09H,06H,09H,30H,60H
DB 00H,00H,0FH,40H,80H,7FH,00H,00H
RENDB 80H,40H,20H,0F8H,07H,08H,08H,08H
DB 08H,08H,08H,08H,0CH,08H,00H,00H
DB 00H,00H,00H,0FFH,10H,10H,10H,10H
DB 10H,10H,10H,10H,10H,18H,10H,00H
YANGDB 00H,0FEH,02H,22H,0DAH,06H,00H,0FEH
DB 82H,82H,82H,82H,82H,0FFH,02H,00H
DB 00H,0FFH,08H,10H,08H,07H,00H,0FFH
DB 40H,40H,40H,40H,40H,0FFH,00H,00H
C0 DB 00H,0E0H,10H,08H,08H,10H,0E0H,00H
DB 00H,0FH,10H,20H,20H,10H,0FH,00H
C1 DB 00H,10H,10H,0F8H,00H,00H,00H,00H
DB 00H,20H,20H,3FH,20H,20H,00H,00H
C2 DB 00H,70H,08H,08H,08H,88H,70H,00H
DB 00H,30H,28H,24H,22H,21H,30H,00H
C3 DB 00H,30H,08H,88H,88H,48H,30H,00H
DB 00H,18H,20H,20H,20H,11H,0EH,00H
C4 DB 00H,00H,0C0H,20H,10H,0F8H,00H,00H
DB 00H,07H,04H,24H,24H,3FH,24H,00H
C7 DB 00H,38H,08H,08H,0C8H,38H,08H,00H
DB 00H,00H,00H,3FH,00H,00H,00H,00H
TEMP DB 32 DUP(0)
TEMP1 DB 32 DUP(0)
TEMP2 DB 32 DUP(0)
TEMP3 DB 32 DUP(0)
TEMP4 DB 32 DUP(0)
TEMP5 DB 32 DUP(0)
X DB 0
Y DB 0
DATA ENDS
STACK SEGMENT STACK
STP DW 100 DUP(?)
LEN EQU $-STP
STACK ENDS
CODESEGMENT 'code' ;定义代码段
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
CALL INIT
;CALL CHN,SI<-EA,X->BL,Y->BH
MOV BL,0
MOV BH,0
LEA SI,XI
CALL DISPCHN
MOV BL,1
MOV BH,0
LEA SI,BEI
CALL DISPCHN
MOV BL,2
MOV BH,0
LEA SI,SHI
CALL DISPCHN
MOV BL,3
MOV BH,0
LEA SI,FAN
CALL DISPCHN
MOV BL,4
MOV BH,0
LEA SI,DA
CALL DISPCHN
MOV BL,5
MOV BH,0
LEA SI,XUE
CALL DISPCHN
MOV BL,0
MOV BH,1
LEA SI,JI01
CALL DISPCHN
MOV BL,1
MOV BH,1
LEA SI,SUAN
CALL DISPCHN
MOV BL,2
MOV BH,1
LEA SI,JI02
CALL DISPCHN
MOV BL,3
MOV BH,1
LEA SI,XUE
CALL DISPCHN
MOV BL,4
MOV BH,1
LEA SI,YUAN
CALL DISPCHN
MOV BL,0
MOV BH,2
LEA SI,LIU
CALL DISPCHN
MOV BL,1
MOV BH,2
LEA SI,REN
CALL DISPCHN
MOV BL,2
MOV BH,2
LEA SI,YANG
CALL DISPCHN
;准备显示半角数字2,SI<-2的字模区首地址
;列号->BL,行号->BH,因半角数字与全角汉字字模存储
; 空间数不同,故用不同的子程序来显示
MOV BL,0
MOV BH,3
LEA SI,C2
LEA DI,C0
LEA BP,TEMP
CALL FULLCHA
MOV BL,1
MOV BH,3
LEA SI,C1
LEA DI,C3
LEA BP,TEMP1
CALL FULLCHA
MOV BL,2
MOV BH,3
LEA SI,C7
LEA DI,C1
LEA BP,TEMP2
CALL FULLCHA
MOV BL,3
MOV BH,3
LEA SI,C0
LEA DI,C4
LEA BP,TEMP3
CALL FULLCHA
MOV BL,4
MOV BH,3
LEA SI,C0
LEA DI,C1
LEA BP,TEMP4
CALL FULLCHA
MOV BL,5
MOV BH,3
LEA SI,C1
LEA DI,C2
LEA BP,TEMP5
CALL FULLCHA
;显示完一个汉字和一个数字,在原地循环等待
JMP $
INIT PROC NEAR ;LCD与8255初始化子程序
MOV AL,10000000B
MOV DX,PCONT
OUT DX,AL ;INIT 8255
MOV AL,00000001B ;INIT LCD
MOV DX,PORTB
OUT DX,AL
NOP
MOV AL,RESET ;RESET
2014年06月18日 13点06分
7