📄 exa.lst
字号:
A51 MACRO ASSEMBLER EXA 04/30/2008 23:47:58 PAGE 1
MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN .\obj\exa.obj
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE asm\exa.asm SET(SMALL) DEBUG PRINT(.\exa.lst) OBJECT(.\obj\exa.obj) EP
LOC OBJ LINE SOURCE
1 ;功能简介
2 ;Mini51板数码管计数器0到9998
3 ;作者:田开坤
4 ;时间:2008.04.30
5
6 ;/******LCD1602接口定义*******/
FCEB 7 LCD_CW EQU 0FCEBH ;该地址由Mini51板硬件确定
FDEB 8 LCD_DW EQU 0FDEBH ;该地址由Mini51板硬件确定
FEEB 9 LCD_CR EQU 0FEEBH ;该地址由Mini51板硬件确定
FFEB 10 LCD_DR EQU 0FFEBH ;该地址由Mini51板硬件确定
0000 11 LINE1 EQU 00H ;LCD1602第一行地址
0040 12 LINE2 EQU 40H ;LCD1602第二行地址
13
0000 14 ORG 0000H
0000 0130 15 AJMP START
16
0030 17 ORG 0030H ;30H以前的空间被中断占用,主程序一般从30H开始
0030 758160 18 START: MOV SP,#60H ;设置堆栈指针
19
0033 90FCEB 20 MOV DPTR,#LCD_CW
0036 740C 21 MOV A,#0CH
0038 F0 22 MOVX @DPTR,A ;LCD初始化
23
0039 1177 24 ACALL BUSY
003B 90FCEB 25 MOV DPTR,#LCD_CW
003E 7438 26 MOV A,#38H
0040 F0 27 MOVX @DPTR,A ;LCD显示
28
29 ;写LCD第一行
30 ;****************************************
0041 1177 31 ACALL BUSY
0043 90FCEB 32 MOV DPTR,#LCD_CW
0046 7480 33 MOV A,#(80H+LINE1)
0048 F0 34 MOVX @DPTR,A
0049 7E10 35 MOV R6,#16
004B 7F00 36 MOV R7,#0
004D 1177 37 LOOP: ACALL BUSY
004F EF 38 MOV A,R7
0050 900080 39 MOV DPTR,#CHAR_STR
0053 93 40 MOVC A,@A+DPTR
0054 90FDEB 41 MOV DPTR,#LCD_DW
0057 F0 42 MOVX @DPTR,A
0058 0F 43 INC R7
0059 DEF2 44 DJNZ R6,LOOP
45 ;****************************************
46
47 ;写LCD第二行
48 ;****************************************
005B 1177 49 ACALL BUSY
005D 90FCEB 50 MOV DPTR,#LCD_CW
0060 74C0 51 MOV A,#(80H+LINE2)
0062 F0 52 MOVX @DPTR,A
0063 7E10 53 MOV R6,#16
0065 7F00 54 MOV R7,#0
0067 1177 55 LOOP0: ACALL BUSY
0069 EF 56 MOV A,R7
006A 900090 57 MOV DPTR,#CHAR_STR+16
006D 93 58 MOVC A,@A+DPTR
A51 MACRO ASSEMBLER EXA 04/30/2008 23:47:58 PAGE 2
006E 90FDEB 59 MOV DPTR,#LCD_DW
0071 F0 60 MOVX @DPTR,A
0072 0F 61 INC R7
0073 DEF2 62 DJNZ R6,LOOP0
63 ;**************************************
64
0075 80FE 65 SJMP $ ;结束,原地踏步
66
67 ;LCD忙检测
68 ;*************************************
0077 90FEEB 69 BUSY: MOV DPTR,#LCD_CR
007A E0 70 BUSY?: MOVX A,@DPTR
007B 5480 71 ANL A,#80H
007D 70FB 72 JNZ BUSY?
007F 22 73 RET
74 ;*************************************
75
0080 76 CHAR_STR:
0080 77656C63 77 DB "welcometostuelab"
0084 6F6D6574
0088 6F737475
008C 656C6162
0090 30313233 78 DB "0123456789ABCDEF"
0094 34353637
0098 38394142
009C 43444546
79 END
A51 MACRO ASSEMBLER EXA 04/30/2008 23:47:58 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
BUSY . . . . . . . C ADDR 0077H A
BUSY?. . . . . . . C ADDR 007AH A
CHAR_STR . . . . . C ADDR 0080H A
LCD_CR . . . . . . N NUMB FEEBH A
LCD_CW . . . . . . N NUMB FCEBH A
LCD_DR . . . . . . N NUMB FFEBH A
LCD_DW . . . . . . N NUMB FDEBH A
LINE1. . . . . . . N NUMB 0000H A
LINE2. . . . . . . N NUMB 0040H A
LOOP . . . . . . . C ADDR 004DH A
LOOP0. . . . . . . C ADDR 0067H A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 0030H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -