⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sukong.asm

📁 行列式键盘控制,实现液晶(UM12864B)驱动显示程序.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;                 CSA  EQU  P3.4    ;液晶片选在(左,前)显示
;                 CSB  EQU  P3.5    ;在(右、后)显示
;                 E    EQU  P3.3    ;使能信号
;                 DI   EQU  P3.2    ;选择存指令还是数据单元
;             COMSTART EQU  70H     ;液晶的启动
;             COMONOFF EQU  71H     ;液晶开显示
;             TABADDR  EQU  72H     ;要显示字符的表首地此
;             COMDATA  EQU  73H     ;字符数据
;             COMSAME  EQU  74H     ;液晶数据与指令的传送
;             JCS1CS2  EQU  7FH     ;片选
;           COMXSTART  EQU  76H     ;起始页地址存放单元
;           COMXEND    EQU  77H     ;终止页地址存放单元
;           COMYSTART  EQU  78H     ;起始列地址存放单元
;           COMYEND    EQU  79H     ;终止列地址存放单元

DISP:      PUSH    A
           PUSH    PSW
           SETB    RS0
           CLR     RS1
           MOV     R0,#COMXSTART
           MOV     R1,#COMYSTART
           INC     COMXEND
           INC     COMYEND
PUT1:      MOV     A,           @R0
           MOV     COMSAME,     A              ;Set PAGE
           LCALL   PRL00
           MOV     A,           @R1            ;Set LINE
           MOV     COMSAME,     A
           LCALL   PRL00
PUT2:      LCALL   WORD
           LCALL   PRL11
           MOV     A,           @R1
           INC     A
           MOV     @R1,         A
           CJNE    A,           COMYEND,   PUT2
           MOV     A,           COMSAME
           MOV     @R1,         A
           MOV     A,           @R0
           INC     A
           MOV     @R0,         A
           CJNE    A ,          COMXEND,   PUT1
           POP     PSW
           POP     A
           RET

;写命令子程序
PRL00:     SETB    CSA               ;Write ins
           SETB    CSB                ;CLR CSB
           CLR     DI
PRL001:    NOP
           NOP
           NOP
           NOP
           MOV     P0,          COMSAME
           SETB    E
           CLR     E
           RET

;写数据子程序
PRL11:     MOV     A,           JCS1CS2
           CJNE    A,           #00H,       PRL1111
           SETB    CSA                     ;选择左片
           CLR     CSB
           LJMP    PRL111
PRL1111:   CLR     CSA                     ;选择右片
           SETB    CSB
PRL111:    NOP
           NOP
           NOP
           NOP
           MOV     P0,          COMDATA
           SETB    DI
           SETB    E
           CLR     E
           RET

;查表程序
WORD:      MOV     A,          #00H
           MOVC    A,          @A+DPTR
           MOV     COMDATA,    A
           INC     DPTR
           RET


;延时程序
DELAY:     MOV      R4,         #5
D1:        MOV      R5,         #5
D2:        MOV      R6,         #100
           DJNZ     R6,         $
           DJNZ     R5,         D2
           DJNZ     R4,         D1
           RET

DELAY1:    MOV      R4,         #50
D11:       MOV      R5,         #50
D22:       MOV      R6,         #100
           DJNZ     R6,         $
           DJNZ     R5,         D22
           DJNZ     R4,         D11
           RET
DELAY2:    MOV      R4,         #100
D111:      MOV      R5,        #100
D222:      MOV      R6,        #100
           DJNZ     R6,         $
           DJNZ     R5,         D222
           DJNZ     R4,         D111
           RET

TT0:
;--  调入了一幅图像:这是您新建的图像  --
;--  宽度x高度=16x16  --
DB  000,000,000,000,080h,040h,0A0h,038h,0A4h,046h,086h,000,000,000,000,000
DB  000,000,000,000,003h,004h,008h,00Ah,008h,004h,003h,000,000,000,000,000
TT1:
;--  调入了一幅图像:这是您新建的图像  --
;--  宽度x高度=16x16  --
DB  000,0C0H,020H,0D0H,010H,010H,0F6H,0AAH,0F6H,030H,010H,0D0H,020H,0C0H,000,000
DB  000,000,001H,030H,028H,034H,00BH,006H,00BH,034H,028H,030H,001H,000,000,000
TT2:
;--  调入了一幅图像:这是您新建的图像  --
;--  宽度x高度=16x16  --
DB  000,000,000,060H,010H,040H,008H,008H,040H,010H,060H,000,000,000,000,000
DB  000,000,000,000,021H,012H,00DH,00DH,012H,021H,000,000,000,000,000,000




TT5 :DB 040h,080h,07Fh,000h,000h,000h,000h,000h
TAB:
;--  文字:  0  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,00FH,010H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H
ONE:
;--  文字:  1  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,010H,010H,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,020H,020H,03FH,020H,020H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
TWO:
;--  文字:  2  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,070H,008H,008H,008H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,030H,028H,024H,022H,021H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H
THREE:
;--  文字:  3  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,030H,008H,088H,088H,048H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,018H,020H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  4  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,0C0H,020H,010H,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,007H,004H,024H,024H,03FH,024H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  5  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0F8H,008H,088H,088H,008H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,019H,021H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  6  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0E0H,010H,088H,088H,018H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,00FH,011H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  7  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,038H,008H,008H,0C8H,038H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,03FH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  8  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,070H,088H,008H,008H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,01CH,022H,021H,021H,022H,01CH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  9  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,031H,022H,022H,011H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  A  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,0C0H,038H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03CH,023H,002H,002H,027H,038H,020H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  B  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,088H,088H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  C  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  0C0H,030H,008H,008H,008H,008H,038H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  007H,018H,020H,020H,020H,010H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  D  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,008H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  E  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,088H,088H,0E8H,008H,010H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,020H,023H,020H,018H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  F  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,088H,088H,0E8H,008H,010H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,000H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
t1:
;--  调入了一幅图像:这是您新建的图像  --
;--  宽度x高度=16x16  --
DB  000,000,000,008h,008h,0FCh,000,000,000,000,000,000,000,000,000,000
DB  000,000,000,020h,020h,03Fh,020h,020h,000,008h,018h,030h,000,000,000,000
t2:
;--  调入了一幅图像:这是您新建的图像  --
;--  宽度x高度=16x16  --
DB  000,000,000,038h,004h,004h,004h,0C4h,038h,000,000,000,000,000,000,000
DB  000,000,000,018h,014h,012h,011h,010h,018h,000,004h,00Ch,018h,000,000,000
t3:
;--  调入了一幅图像:这是您新建的图像  --
;--  宽度x高度=16x16  --
DB  000,000,000,018h,004h,044h,044h,0A4h,018h,000,000,000,000,000,000,000
DB  000,000,000,00Ch,010h,010h,010h,008h,007h,000,004h,00Ch,018h,000,000,000

JM0:
;--  文字:  欢  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  014H,024H,044H,084H,064H,01CH,020H,018H,00FH,0E8H,008H,008H,028H,018H,008H,000
DB  020H,010H,04CH,043H,043H,02CH,020H,010H,00CH,003H,006H,018H,030H,060H,020H,000
JM1:
;--  文字:  迎  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,041H,0CEH,004H,000,0FCH,004H,002H,002H,0FCH,004H,004H,004H,0FCH,000,000
DB  040H,020H,01FH,020H,040H,047H,042H,041H,040H,05FH,040H,042H,044H,043H,040H,000
JM2:
;--  文字:  使  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,020H,0F0H,01CH,007H,0F2H,094H,094H,094H,0FFH,094H,094H,094H,0F4H,004H,000
DB  000,000,07FH,000,040H,041H,022H,014H,00CH,013H,010H,030H,020H,061H,020H,000
JM3:
;--  文字:  用  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,000,000,0FEH,022H,022H,022H,022H,0FEH,022H,022H,022H,022H,0FEH,000,000
DB  080H,040H,030H,00FH,002H,002H,002H,002H,0FFH,002H,002H,042H,082H,07FH,000,000
JM4:
;--  文字:  数  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  010H,092H,054H,038H,0FFH,038H,054H,052H,080H,0F0H,01FH,012H,010H,0F0H,010H,000
DB  042H,042H,02AH,02EH,013H,01AH,026H,002H,040H,020H,013H,00CH,033H,060H,020H,000
JM5:
;--  文字:  控  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,008H,008H,0FFH,088H,048H,000,098H,048H,028H,00AH,02CH,048H,0D8H,008H,000
DB  002H,042H,081H,07FH,000,000,040H,042H,042H,042H,07EH,042H,042H,042H,040H,000
JM6:
;--  文字:  直  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,004H,004H,0F4H,094H,094H,09CH,097H,094H,094H,094H,0F4H,004H,004H,000,000
DB  040H,040H,040H,07FH,04AH,04AH,04AH,04AH,04AH,04AH,04AH,07FH,040H,040H,040H,000
JM71:
;--  文字:  流  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
   DB  010H,060H,001H,086H,060H,004H,044H,064H

JM72:DB  055H,04EH,044H,064H,0C4H,004H,004H,000

JM73:DB  004H,004H,0FCH,003H,040H,030H,00FH,000
JM74:DB  000,07FH,000,03FH,040H,040H,070H,000
JM8:
;--  文字:  电  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,000,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000,000,000
DB  000,000,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000
JM9:
;--  文字:  流  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  010H,060H,001H,086H,060H,004H,044H,064H,055H,04EH,044H,064H,0C4H,004H,004H,000
DB  004H,004H,0FCH,003H,040H,030H,00FH,000,000,07FH,000,03FH,040H,040H,070H,000
JM10:
;--  文字:  源  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --

DB  010H,021H,006H,0E0H,000,0FEH,002H,0F2H,05AH,056H,052H,052H,052H,0F2H,002H,000
DB  004H,0FCH,003H,040H,030H,00FH,020H,011H,04DH,081H,07FH,001H,005H,009H,030H,000

ZU0:
;--  文字:  给  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  020H,030H,0ACH,063H,010H,040H,020H,050H,04CH,043H,044H,048H,030H,060H,020H,000
DB  022H,023H,022H,012H,012H,000,000,07EH,042H,042H,042H,042H,07EH,000,000,000
ZU1:
;--  文字:  定  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,010H,00CH,0A4H,024H,024H,025H,0E6H,024H,024H,024H,024H,014H,00CH,004H,000
DB  040H,020H,018H,007H,008H,010H,020H,07FH,042H,042H,042H,042H,040H,040H,000,000
ZU2:
;--  文字:  实  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,010H,00CH,004H,04CH,0B4H,094H,005H,0F6H,004H,004H,004H,014H,00CH,004H,000
DB  000,082H,082H,042H,042H,023H,012H,00AH,007H,00AH,012H,0E2H,042H,002H,002H,000
ZU3:
;--  文字:  测  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,031H,086H,060H,000,0FEH,002H,0F2H,002H,0FEH,000,0F8H,000,000,0FFH,000
DB  004H,0FCH,003H,000,080H,047H,030H,00FH,010H,067H,000,007H,040H,080H,07FH,000
M:
;--  文字:  :  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,000,000,0C0H,0C0H,000,000,000,000,000,000,000,000,000,000,000
DB  000,000,000,030H,030H,000,000,000,000,000,000,000,000,000,000,000
ZU4:
;--  文字:  步  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,020H,020H,020H,0BCH,020H,020H,020H,0FFH,024H,024H,024H,024H,020H,020H,000
DB  000,044H,044H,042H,041H,020H,020H,020H,017H,010H,008H,004H,003H,002H,000,000
ZU5:
;--  文字:  进  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  080H,082H,09CH,088H,000,088H,088H,0FFH,088H,088H,088H,0FFH,088H,088H,080H,000
DB  000,040H,020H,01FH,020H,050H,04CH,043H,040H,040H,040H,05FH,040H,040H,040H,000
GG:
;--  调入了一幅图像:C:\Documents and Settings\Administrator\My Documents\MA.bmp  --
;--  宽度x高度=16x16  --
;--  调入了一幅图像:C:\Documents and Settings\Administrator\My Documents\MA.bmp  --
;--  宽度x高度=16x16  --
DB  0C0H,040H,040H,0C0H,040H,040H,0C0H,000,000,000,0E0H,01CH,070H,080H,000,000
DB  01FH,000,000,01FH,000,000,01FH,000,010H,01EH,011H,001H,001H,013H,01CH,010H

 FF1:
;--  文字:  幅  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  0F8H,008H,0FFH,008H,0F8H,000,002H,07AH,04AH,04AH,04AH,04AH,04AH,07AH,002H,000
DB  00FH,000,0FFH,008H,00FH,000,07FH,025H,025H,025H,03FH,025H,025H,025H,07FH,000
FF2:
;--  文字:  度  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000,000,0FCH,004H,024H,024H,0FCH,0A5H,0A6H,0A4H,0FCH,024H,024H,024H,004H,000
DB  080H,060H,01FH,080H,080H,042H,046H,02AH,012H,012H,02AH,026H,042H,0C0H,040H,000
;2mS延时子程序YANSHI
 YANSHI:  MOV    R4,    #0FFH
 WW:      NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          DJNZ   R4,    WW
          RET

;键扫描子程序KEY(无键按下,键值00H;0至9键键值01H至0AH,A至F键键值0BH至10H)
 KEY:
          PUSH   DPH
          PUSH   DPL
          PUSH   PSW
          CLR    RS0
          SETB   RS1
          LCALL  CSH8155
          LCALL  KEY1
          JZ     EXIT
          LCALL  YANSHI
          LCALL  YANSHI
          LCALL  KEY1
          JZ     EXIT

     K2:  MOV    R2,    #0FEH
          MOV    R4,    #00H
    K3:   MOV    P2,    #BG8155
          MOV    R1,    #BD8155
          MOV    P0,    R1
          MOV    A,     R2
          MOVX   @R1,   A
          MOV    P2,    #CG8155
          MOV    R1,    #CD8155
          MOV    P0,    R1
          MOVX   A,     @R1
          JB     ACC.0, LONE
          MOV    A,     #01H
          LJMP   LKP
  LONE:   JB     ACC.1, NEXT
          MOV    A,     #09H
   LKP:   ADD    A,     R4
          PUSH   ACC
    K4:   LCALL  YANSHI
          LCALL  KEY1
          JNZ    K4
          POP    ACC
          LJMP   EXIT
  NEXT:   INC     R4
          MOV     A,    R2
          JNB     ACC.7,EXIT
          RL      A
          MOV     R2,   A
          LJMP    K3
 EXIT:    POP    PSW
          POP    DPL
          POP    DPH
          RET

;键处理子程序KEY1
KEY1:     MOV    P2,    #BG8155
          MOV    R1,    #BD8155
          MOV    P0,    R1
          MOV    A,     #00H
          MOVX   @R1,   A
          INC    R1
          MOVX   A,     @R1
          CPL    A
          ANL    A,     #03H
          RET

 ;计算tab的值
 ;/*入口参数keyzhi 2FH  出口参数:DPTR*/16:14 2006-3-12
FINDTAB:  MOV    A,KEYZHI
          MOV    B,#32

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -