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

📄 12864e.asm

📁 电子开发网培训用的51单片机内部培训代码
💻 ASM
字号:
;******************************************************
 ;目标板:至强51开发板
 ;开发商  :电子开发网www.dzkf.com (专业提供开发方案,
 ;          电子元器件网上订购,单片机培训服务)
 ;对开发板有什么疑问,请上我们的论坛bbs.dzkf.com探讨
 ;omen  2006/5/18
 ;适用于ST7920控制的LCM
 ;MCU:AT89S52 or STC89C5* ,晶体频率:12MHz
 ;LCM:128*64
 ;LCM型号:12864E
 ;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7--14:DB0-DB7 15:PSB 16:NC 17:RST 
 ;调节对比度电路中,电位器一端接VCC,一端接地,中间端接V0
 ;硬件已经将PSB置1,通信方式为8位数据并口

;***************接口定义********************************

        RS      EQU   P2.7
        RW      EQU   P2.6
        E       EQU   P2.5
        RST     EQU   P2.4
        COM     EQU   20H
        DAT     EQU   21H
;***************主程序入口******************************
START:
        ORG     0000H
        MOV     SP,#60H
        LJMP    DISP
        ORG     0040H
        LCALL   DELAY              ;等待电源稳定
        LCALL   DELAY

;***************显示字体初始化***************************
DISP:   MOV     COM,#30H           ;功能设置---8BIT控制界面,基本指令集
        ACALL   WRI                ;调用写指令子程序
        LCALL   DELAY              ;延迟39uS
        MOV     COM,#0CH           ;显示打开,光标关,反白显示关
        ACALL   WRI                ;调用写指令子程序
        LCALL   DELAY              ;延迟39uS
        MOV     COM,#01H           ;清除屏幕显示,将DDRAM的地址计数器归零
        ACALL   WRI                ;调用写指令子程序
        LCALL   DELAY              ;延迟39uS
        MOV     COM,#06H           ;DDRAM的地址计数器(AC)加1
        ACALL   WRI                ;调用写指令子程序
        LCALL   DELAY              ;延迟39uS
;******************写入半角字符*********************************
;DISPLAY5A:
;        MOV     R2,#64        ;DDRAM地址记数器设为最大值
;        MOV     R1,#10H
;        MOV     COM,#80H      ;DD RAM 地址-----0000000
;        ACALL   WRI
;DISP5A: MOV     DAT,R1
;        ACALL   WRD           ;写入第二字节数据
;        INC     R1
;        DJNZ    R2,DISP5A
;        LCALL   DELAY1        ;1S延时子程序
;******************写汉字**************************************
DISPLAY5:
        MOV     COM,#91H      ;第一行字的首地址DD RAM 地址
        ACALL   WRI
DISP5:
        MOV     DAT,#57H        ;W
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#57H        ;W
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#57H        ;W
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#2EH        ;.
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#44H        ;D
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#5AH        ;Z
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#4BH        ;K
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#46H        ;F
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#2EH        ;.
        ACALL   WRD           ;写入第一字节数据
        MOV     DAT,#43H        ;C
        ACALL   WRD           ;写入第二字节数据
        MOV     DAT,#4FH        ;O
        ACALL   WRD           ;写入一字节数据
        MOV     DAT,#4DH        ;M
        CALL    WRD           ;写入一字节数据

        LCALL   DELAY1        ;1S延时子程序
;********************电子开发网等字*****************************
DISPLAY5A:
        MOV     R2,#128       ;64个字写128次
        MOV     COM,#80H      ;DD RAM 地址-----0000000
        ACALL   WRI
        MOV     DPTR,#DWORD

DISP5A: CLR     A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R2,DISP5A
        LCALL   DELAY1        ;1S延时子程序
        LCALL   DELAY1        ;1S延时子程序
        LCALL   DELAY1        ;1S延时子程序
;************显示图形初始化*************************************
        MOV     COM,#01H           ;清屏
        ACALL   WRI           ;调用写指令子程序
        LCALL   DELAY
        MOV     COM,#32H           ;功能设置---8BIT控制界面,绘图显示ON
        ACALL   WRI           ;调用写指令子程序
        LCALL   DELAY              ;延迟39uS
        MOV     COM,#36H           ;功能设置---8BIT控制界面,扩充指令集
        ACALL   WRI           ;调用写指令子程序
        LCALL   DELAY              ;延迟39uS
;************显示下列图形***************************************
DISPLAY6A:
        MOV     DPTR,#DAB1      ;图形数据入口地址
        ACALL   DTU
        MOV     DPTR,#DAB1      ;图形数据入口地址
        ACALL   DTU
        LJMP    START           ;从开始处循环显示
;***********画图子程序如下*************************************
DTU:
        MOV     R2,#32          ;32行,(双屏结构中上半屏)
        MOV     R3,#80H         ;Y地址寄存器 (D7固定为1,所以该地址是00H)
DISP6A: MOV     COM,R3          ;设置绘图区的Y地址坐标
        INC     R3              ;Y地址加1
        LCALL   WRI
        MOV     COM,#80H        ;设置绘图区的X地址坐标
        LCALL   WRI
        MOV     R1,#16          ;16*8列
DISP7A: CLR     A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R1,DISP7A
        DJNZ    R2,DISP6A       ;写满全屏的16*8字节X64
        MOV     R2,#32          ;32行,(双屏结构的下半屏)
        MOV     R3,#80H         ;Y地址寄存器
DISP8A: MOV     COM,R3          ;设置绘图区的Y地址坐标
        INC     R3              ;Y地址加1
        LCALL   WRI
        MOV     COM,#88H        ;设置绘图区的X地址坐标
        LCALL   WRI
        MOV     R1,#16          ;16*8列
DISP9A: CLR  A
        MOVC    A,@A+DPTR
        MOV     DAT,A
        LCALL   WRD
        INC     DPTR
        DJNZ    R1,DISP9A
        DJNZ    R2,DISP8A       ;写满全屏的16*8字节X64
        LCALL   DELAY1          ;1S延时子程序
        RET
;*********************写指令子程序*****************************
WRI:    PUSH    ACC
        CLR     RS
        SETB    RW
WRI1:   MOV     P0,#0FFH
        SETB    E
        MOV     A,P0
        CLR     E
        JB      ACC.7,WRI1
        CLR     RW
        MOV     P0,COM
        SETB    E
        CLR     E
        POP     ACC
        RET
;********************写数据子程序**********************
WRD:    PUSH    ACC
        CLR     RS
        SETB    RW
WRD1:   MOV     P0,#0FFH
        SETB    E
        MOV     A,P0
        CLR     E
        JB      ACC.7,WRD1
        SETB    RS
        CLR     RW
        MOV     P0,DAT
        SETB    E
        CLR     E
        POP     ACC
        RET
;**************延时子程序***********************
DELAY:  MOV     R7,#0FFH
DELAY4: MOV  R6,#00FH
LOOP2:  DJNZ R6,LOOP2
        DJNZ    R7,DELAY4
        RET
DELAY1: MOV     R4,#16H  ;延时两秒
DELAY11:MOV     R7,#0FFH
DELAY41:MOV  R6,#0FFH
        DJNZ R6,$
        DJNZ    R7,DELAY41
        DJNZ    R4,DELAY11
        RET
XX:     MOV     R5,#0FFH
XX1:    MOV  R6,#0FFH
XX2:    DJNZ R6,XX2
        DJNZ    R5,XX1
        RET
;*****************图形数据区,每满屏数据占1K*************************
DWORD:
;  电子开发网站  
DB  0A1H,0A1H,0B5H,0E7H,0D7H,0D3H,0BFH,0AAH,0B7H,0A2H,0CDH,0F8H,0D5H,0BEH,0A1H,0A1H,
;专业的项目开发商
DB  0D7H,0A8H,0D2H,0B5H,0B5H,0C4H,0CFH,0EEH,0C4H,0BFH,0BFH,0AAH,0B7H,0A2H,0C9H,0CCH,
;方便的元器件采购
DB  0B7H,0BDH,0B1H,0E3H,0B5H,0C4H,0D4H,0AAH,0C6H,0F7H,0BCH,0FEH,0B2H,0C9H,0B9H,0BAH,
;  020-39709872
DB  0A1H,0A1H,030H,032H,030H,02DH,033H,039H,037H,030H,039H,038H,037H,032H,0A1H,0A1H,



DAB1:       ;小女生
DB  000H,000H,000H,000H,0FFH,0E0H,01FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FCH,000H,000H,000H,
DB  000H,000H,000H,001H,0FFH,0C0H,003H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H,
DB  000H,000H,000H,001H,0FFH,080H,007H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C0H,000H,000H,
DB  000H,000H,000H,003H,0FFH,080H,00FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F0H,000H,000H,
DB  000H,000H,000H,003H,0FFH,000H,000H,03FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FCH,000H,000H,
DB  000H,000H,000H,003H,0FEH,0C0H,000H,07FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,
DB  000H,000H,000H,003H,0FDH,080H,000H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,
DB  000H,000H,000H,007H,0FFH,080H,000H,0FBH,0FFH,0DFH,0FFH,0FFH,0FFH,0DFH,000H,000H,
DB  000H,000H,000H,007H,0FFH,040H,000H,007H,0FFH,0BBH,0FFH,0FDH,0FFH,0E1H,000H,000H,
DB  000H,000H,000H,007H,0FEH,0A0H,000H,00FH,0FFH,07BH,0FFH,0FCH,0FBH,070H,000H,000H,
DB  000H,000H,000H,007H,0FFH,079H,000H,00FH,03EH,0FBH,0FFH,0BCH,0FDH,0B0H,000H,000H,
DB  000H,000H,000H,007H,0FFH,0F3H,0C0H,00CH,02CH,099H,0FFH,03EH,07CH,090H,000H,000H,
DB  000H,000H,000H,007H,0FFH,0E7H,0B0H,000H,019H,038H,0FFH,03EH,07CH,000H,000H,000H,
DB  000H,000H,0E0H,007H,0FFH,0EFH,068H,000H,0B3H,020H,0C2H,03FH,03CH,000H,000H,000H,
DB  000H,000H,018H,007H,0FFH,0FEH,0D8H,001H,036H,06AH,092H,017H,038H,000H,000H,000H,
DB  000H,000H,006H,007H,0FFH,0FFH,0B8H,032H,05EH,0CAH,092H,007H,018H,000H,000H,000H,
DB  000H,000H,001H,007H,0FFH,0FFH,0F4H,076H,0ACH,0DAH,012H,003H,098H,040H,000H,000H,
DB  000H,000H,0C1H,007H,0FFH,0FFH,0ECH,0EDH,029H,0DAH,092H,000H,088H,044H,000H,000H,
DB  000H,000H,031H,007H,0FFH,0FFH,0DDH,0DFH,05FH,0FBH,0B2H,080H,080H,064H,000H,000H,
DB  000H,000H,008H,087H,0FFH,0FFH,0B9H,0BEH,07FH,0FFH,0B2H,080H,080H,066H,000H,000H,
DB  000H,000H,008H,087H,0FFH,0FFH,0F3H,07FH,0E0H,007H,0B2H,080H,080H,066H,000H,000H,
DB  000H,000H,004H,047H,0FFH,0FFH,0F7H,0FCH,080H,000H,0B2H,080H,081H,076H,000H,000H,
DB  000H,000H,004H,047H,0FFH,0FFH,0EFH,0F8H,080H,000H,0D6H,0FCH,081H,0F6H,000H,000H,
DB  000H,000H,0C2H,067H,0FFH,0FFH,0FFH,0F1H,007H,0C0H,0D6H,0FFH,081H,0F6H,000H,000H,
DB  000H,000H,0C2H,023H,0FFH,0FFH,0FFH,0F1H,03FH,0E0H,0D7H,0FFH,099H,0FEH,000H,000H,
DB  000H,000H,0E3H,011H,0FFH,0EFH,07FH,033H,0FFH,0F0H,0DFH,0FFH,099H,0FFH,000H,000H,
DB  000H,000H,0E1H,00BH,0FFH,0E9H,07FH,01FH,0FDH,038H,09BH,0FFH,099H,0FFH,000H,000H,
DB  000H,000H,0E0H,083H,0FFH,0C8H,0FEH,03FH,0FFH,018H,09BH,0FFH,099H,0FFH,000H,000H,
DB  000H,000H,0F0H,047H,0BFH,0C8H,0FEH,03FH,03FH,000H,09BH,0FBH,0BBH,0FFH,000H,000H,
DB  000H,000H,0F0H,03FH,01FH,0E1H,0FCH,07CH,03FH,001H,03BH,0DBH,0BBH,0FFH,000H,000H,
DB  000H,000H,0F8H,00FH,007H,0E1H,0FDH,0F8H,03BH,001H,033H,0B7H,0BBH,0FFH,000H,000H,
DB  000H,000H,0F8H,01EH,003H,0F1H,0CCH,0F0H,07AH,000H,033H,0B7H,0FFH,0FFH,000H,000H,
DB  000H,000H,0FCH,03EH,001H,0F9H,0C8H,030H,07EH,000H,031H,0E7H,0FFH,0FFH,000H,000H,
DB  000H,000H,0FCH,03CH,03FH,0FBH,0C8H,009H,0ECH,000H,061H,0E7H,0FFH,0FFH,000H,000H,
DB  000H,000H,0FFH,0FCH,040H,0E3H,0C0H,007H,0F8H,000H,041H,0CFH,0FFH,0FFH,000H,000H,
DB  000H,000H,0FFH,0F9H,080H,083H,0C0H,003H,0F0H,000H,043H,0DFH,0FFH,0FFH,000H,000H,
DB  000H,000H,0FFH,0FAH,01FH,003H,080H,000H,000H,000H,0C3H,09FH,0FFH,0FFH,000H,000H,
DB  000H,000H,0FFH,0FCH,016H,003H,080H,000H,000H,000H,080H,03FH,0FFH,0FFH,000H,000H,
DB  000H,000H,0FFH,0F0H,018H,003H,080H,000H,000H,001H,008H,07FH,0FFH,0FFH,000H,000H,
DB  000H,000H,0FFH,0C0H,010H,007H,080H,000H,000H,000H,008H,07FH,0FFH,0FEH,000H,000H,
DB  000H,000H,0FFH,000H,010H,007H,080H,000H,000H,000H,004H,07FH,0FFH,0FEH,000H,000H,
DB  000H,000H,0FCH,000H,008H,007H,080H,000H,000H,000H,00CH,07FH,0FFH,0FEH,000H,000H,
DB  000H,000H,07CH,000H,008H,00BH,0C0H,000H,000H,000H,000H,07FH,0FFH,0FEH,000H,000H,
DB  000H,000H,07CH,000H,004H,00BH,020H,000H,000H,000H,000H,07FH,0FFH,0FEH,000H,000H,
DB  000H,000H,03CH,000H,004H,00BH,010H,000H,001H,0F8H,000H,0FFH,0FFH,0FEH,000H,000H,
DB  000H,000H,002H,000H,002H,00BH,008H,000H,003H,0FEH,001H,0FFH,0FFH,0FEH,000H,000H,
DB  000H,000H,001H,000H,002H,00BH,004H,000H,004H,07EH,003H,0FFH,0FFH,0FFH,000H,000H,
DB  000H,000H,000H,080H,001H,01BH,002H,000H,004H,03CH,007H,09FH,0FFH,0FFH,000H,000H,
DB  000H,000H,000H,080H,001H,013H,001H,000H,004H,038H,03FH,090H,003H,0FFH,000H,000H,
DB  000H,000H,000H,040H,000H,093H,000H,080H,004H,030H,04FH,020H,000H,000H,000H,000H,
DB  000H,000H,000H,020H,000H,053H,000H,040H,004H,041H,08EH,040H,000H,000H,000H,000H,
DB  000H,000H,000H,020H,000H,033H,000H,030H,004H,082H,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,010H,000H,013H,000H,048H,003H,004H,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,008H,000H,00BH,000H,044H,000H,01CH,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,004H,000H,007H,000H,042H,000H,062H,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,004H,000H,003H,000H,0A1H,087H,082H,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,002H,000H,003H,000H,0A0H,078H,001H,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,002H,000H,003H,080H,0A0H,000H,001H,00CH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,002H,000H,002H,041H,020H,000H,001H,00EH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,001H,000H,002H,03FH,020H,000H,001H,00EH,000H,000H,000H,000H,000H,
DB  000H,000H,000H,001H,000H,004H,011H,020H,000H,001H,006H,000H,000H,000H,000H,000H,
DB  000H,000H,000H,001H,080H,004H,01FH,020H,000H,002H,006H,000H,000H,000H,000H,000H,
DB  000H,000H,080H,001H,0C0H,004H,010H,090H,000H,00CH,006H,000H,000H,000H,000H,000H,
DB  000H,000H,040H,001H,020H,008H,020H,050H,000H,010H,006H,000H,000H,000H,000H,000H,



    END

⌨️ 快捷键说明

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