📄 1602logo.lst
字号:
A51 MACRO ASSEMBLER 1602LOGO 08/27/2008 23:20:58 PAGE 1
MACRO ASSEMBLER A51 V8.00d
OBJECT MODULE PLACED IN 1602logo.OBJ
ASSEMBLER INVOKED BY: D:\电子程序\C51\BIN\A51.EXE 1602logo.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;///////////////////////////////////////////
2 ;....本程序实现液晶循环显示信息功能.
3 ;///////////////////////////////////////////
4
00A0 5 RS EQU P2.0
00A1 6 RW EQU P2.1
00A2 7 E EQU P2.2
0080 8 SJ EQU P0
0000 9 org 00h
0000 0130 10 ajmp main
0030 11 org 030h
0030 12 main:
0030 C2A6 13 CLR P2.6
0032 758160 14 mov sp,#60h
0035 15 main1:
0035 120099 16 lcall delay ;延时一段时间
0038 758038 17 MOV SJ,#38H ;
003B 1176 18 ACALL ENABLE ;写指令38H
003D 758038 19 MOV SJ,#38H ;
0040 1176 20 ACALL ENABLE ;写指令38H
0042 758038 21 MOV SJ,#38H ;
0045 1176 22 ACALL ENABLE ;写指令38H
0047 758038 23 MOV SJ,#38H ;
004A 1176 24 ACALL ENABLE ;写指令38H
004C 758008 25 MOV SJ,#08H ;
004F 1176 26 ACALL ENABLE ;写指令08H
0051 758001 27 MOV SJ,#01H ;
0054 1176 28 ACALL ENABLE ;写指令01H
0056 758006 29 MOV SJ,#06H ;
0059 1176 30 ACALL ENABLE ;写指令06H
005B 75800C 31 MOV SJ,#0cH ;
005E 1176 32 ACALL ENABLE ;写指令0CH
33
0060 758080 34 MOV SJ,#80H ;第一行显示第一个字符的位置
0063 1176 35 ACALL ENABLE ;调用写指令
0065 9000A2 36 mov dptr,#table3 ;第一行表头位置
0068 1181 37 call write1 ;调用第一行写子程序
006A 7580C0 38 mov SJ,#0c0h ;第二行位置
006D 1176 39 call enable ;调用写指令
006F 9000B2 40 mov dptr,#table2 ;第二行表头位置
0072 1181 41 call write1 ;调用第二行写子程序
0074 80BF 42 jmp main1 ;返回主程序不断的循环
43
0076 44 ENABLE: ;写命令时序(参照1602LCD使用说明书)
0076 C2A0 45 CLR RS
0078 C2A1 46 CLR RW
007A C2A2 47 CLR E
007C 1199 48 ACALL DELAY
007E D2A2 49 SETB E
0080 22 50 RET
51
0081 52 write1: ;写字符串
0081 7900 53 mov r1,#00h ;将R1清0
0083 E9 54 a1:mov a,r1 ;把R1的值送到ACC
0084 93 55 movc a,@a+dptr ;查表取将显示的数据并把要显示的数送入ACC
0085 118C 56 call write2 ;调用写程序写入单个字节
0087 09 57 inc r1 ;将工作寄存器指针加一
0088 B910F8 58 cjne r1,#10h,a1 ;R1的内容加到16后就返回到a1处
A51 MACRO ASSEMBLER 1602LOGO 08/27/2008 23:20:58 PAGE 2
008B 22 59 ret ;
60
008C 61 write2: ;写单个字符
008C F580 62 mov SJ,a ;写数据到显示端口
008E D2A0 63 setb rs ;写数据时序(请参照1602LCD使用说明书)
0090 C2A1 64 clr rw
0092 C2A2 65 clr e
0094 1199 66 call delay
0096 D2A2 67 setb e
0098 22 68 ret
69
70
0099 71 delay:
0099 7FFF 72 mov r7,#255
009B 7EFF 73 d1:mov r6,#255
009D DEFE 74 d2:djnz r6,d2
009F DFFA 75 djnz r7,d1
00A1 22 76 ret
77
78
00A2 20202020 79 table3: db " www.ttnu.com"
00A6 7777772E
00AA 74746E75
00AE 2E636F6D
00B2 20202030 80 table2: db " 0512-58112811"
00B6 3531322D
00BA 35383131
00BE 32383131
81 end
A51 MACRO ASSEMBLER 1602LOGO 08/27/2008 23:20:58 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
A1 . . . . . . . . C ADDR 0083H A
D1 . . . . . . . . C ADDR 009BH A
D2 . . . . . . . . C ADDR 009DH A
DELAY. . . . . . . C ADDR 0099H A
E. . . . . . . . . B ADDR 00A0H.2 A
ENABLE . . . . . . C ADDR 0076H A
MAIN . . . . . . . C ADDR 0030H A
MAIN1. . . . . . . C ADDR 0035H A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
RS . . . . . . . . B ADDR 00A0H.0 A
RW . . . . . . . . B ADDR 00A0H.1 A
SJ . . . . . . . . D ADDR 0080H A
SP . . . . . . . . D ADDR 0081H A
TABLE2 . . . . . . C ADDR 00B2H A
TABLE3 . . . . . . C ADDR 00A2H A
WRITE1 . . . . . . C ADDR 0081H A
WRITE2 . . . . . . C ADDR 008CH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -