📄 1602logo.lst
字号:
A51 MACRO ASSEMBLER 1602LOGO 04/16/2006 06:51:34 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\1602logo.OBJ
ASSEMBLER INVOKED BY: C:\Keil\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 758160 13 mov sp,#60h
0033 14 main1:
0033 120097 15 lcall delay ;延时一段时间
0036 758038 16 MOV SJ,#38H ;
0039 1174 17 ACALL ENABLE ;写指令38H
003B 758038 18 MOV SJ,#38H ;
003E 1174 19 ACALL ENABLE ;写指令38H
0040 758038 20 MOV SJ,#38H ;
0043 1174 21 ACALL ENABLE ;写指令38H
0045 758038 22 MOV SJ,#38H ;
0048 1174 23 ACALL ENABLE ;写指令38H
004A 758008 24 MOV SJ,#08H ;
004D 1174 25 ACALL ENABLE ;写指令08H
004F 758001 26 MOV SJ,#01H ;
0052 1174 27 ACALL ENABLE ;写指令01H
0054 758006 28 MOV SJ,#06H ;
0057 1174 29 ACALL ENABLE ;写指令06H
0059 75800C 30 MOV SJ,#0cH ;
005C 1174 31 ACALL ENABLE ;写指令0CH
32
005E 758080 33 MOV SJ,#80H ;第一行显示第一个字符的位置
0061 1174 34 ACALL ENABLE ;调用写指令
0063 9000A0 35 mov dptr,#table3 ;第一行表头位置
0066 117F 36 call write1 ;调用第一行写子程序
0068 7580C0 37 mov SJ,#0c0h ;第二行位置
006B 1174 38 call enable ;调用写指令
006D 9000B1 39 mov dptr,#table2 ;第二行表头位置
0070 117F 40 call write1 ;调用第二行写子程序
0072 80BF 41 jmp main1 ;返回主程序不断的循环
42
0074 43 ENABLE: ;写命令时序(参照1602LCD使用说明书)
0074 C2A0 44 CLR RS
0076 C2A1 45 CLR RW
0078 C2A2 46 CLR E
007A 1197 47 ACALL DELAY
007C D2A2 48 SETB E
007E 22 49 RET
50
007F 51 write1: ;写字符串
007F 7900 52 mov r1,#00h ;将R1清0
0081 E9 53 a1:mov a,r1 ;把R1的值送到ACC
0082 93 54 movc a,@a+dptr ;查表取将显示的示莶
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -