📄 jdq.lst
字号:
A51 MACRO ASSEMBLER JDQ 09/13/2007 03:15:19 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN JDQ.OBJ
ASSEMBLER INVOKED BY: C:\tools\Keil\C51\BIN\A51.EXE JDQ.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;液晶板显示当前模拟电压
2 ; 功能:数码显示0.20---2.00
3 ; 作者:http://www.mcuprog.com
4 ; 05-02-01
5 ;***********************************************************
6 ;***********************************************************
00A2 7 E BIT P2.2 ;LCD口线的定义
00A1 8 RW BIT P2.1
00A0 9 RS BIT P2.0
0080 10 LCDPORT EQU P0
00B6 11 JDQ BIT P3.6
12
13
002E 14 CMD_BYTE EQU 2EH
002F 15 DAT_BYTE EQU 2FH
16
0000 17 KEYBIT BIT 00H ;有按键按下标志
0001 18 OUTEDBIT BIT 01H ;输出开关位
19
0035 20 KEYTIME EQU 35H ;20MS扫一次按键
0000 21 ORG 0000H
0000 0130 22 AJMP MAIN
000B 23 ORG 000BH
000B 2100 24 AJMP TIME0_1
25 ;以下为主程序的开始
0030 26 ORG 0030H
0030 27 MAIN:
0030 752000 28 MOV 20H,#00H
0033 120143 29 LCALL INITLCD
0036 753504 30 MOV KEYTIME,#04H
0039 752E80 31 MOV CMD_BYTE,#80H
003C 12011F 32 LCALL WRITE_CMD
003F 12016E 33 LCALL DELAY0
0042 752F53 34 MOV DAT_BYTE,#"S"
0045 120131 35 LCALL WRITE_DAT
0048 752F54 36 MOV DAT_BYTE,#"T"
004B 120131 37 LCALL WRITE_DAT
004E 752F41 38 MOV DAT_BYTE,#"A"
0051 120131 39 LCALL WRITE_DAT
0054 752F54 40 MOV DAT_BYTE,#"T"
0057 120131 41 LCALL WRITE_DAT
005A 752F45 42 MOV DAT_BYTE,#"E"
005D 120131 43 LCALL WRITE_DAT
0060 752F3A 44 MOV DAT_BYTE,#":"
0063 120131 45 LCALL WRITE_DAT
0066 758CEE 46 MOV TH0,#0EEH ;16位的定时器,定时5MS
0069 758A00 47 MOV TL0,#00H
006C 758901 48 MOV TMOD,#01H
006F D28C 49 SETB TR0
0071 75A882 50 MOV IE,#82H ;定时器0中断
0074 80FE 51 SJMP $
52
53
54
0100 55 ORG 0100H
0100 758CEE 56 TIME0_1: MOV TH0,#0EEH
0103 758A00 57 MOV TL0,#00H
0106 D53515 58 DJNZ KEYTIME,TIME0_RE
A51 MACRO ASSEMBLER JDQ 09/13/2007 03:15:19 PAGE 2
0109 753504 59 MOV KEYTIME,#04H ;每20MS进行一次按键扫描
010C 20900B 60 JB P1.0,CLRKEYBIT
010F 20000A 61 JB KEYBIT,DPUSE
0112 D200 62 SETB KEYBIT
0114 B201 63 CPL OUTEDBIT
0116 B2B6 64 CPL JDQ
0118 211C 65 AJMP DPUSE
011A C200 66 CLRKEYBIT: CLR KEYBIT
011C 3174 67 DPUSE: ACALL DISPSTATE
011E 32 68 TIME0_RE: RETI
69
70
71
72
73 ;LCD1602要用到的一些子程序
74 ;写命令(入口参数CMD_BYTE)
011F C2A0 75 WRITE_CMD: CLR RS
0121 C2A1 76 CLR RW
0123 E52E 77 MOV A,CMD_BYTE
0125 F580 78 MOV LCDPORT,A
0127 D2A2 79 SETB E
0129 00 80 NOP
012A 00 81 NOP
012B C2A2 82 CLR E
012D 12016E 83 LCALL DELAY0
0130 22 84 RET
85
86 ;写显示数据(入口参数DAT_BYTE)
0131 D2A0 87 WRITE_DAT: SETB RS
0133 C2A1 88 CLR RW
0135 E52F 89 MOV A,DAT_BYTE
0137 F580 90 MOV LCDPORT,A
0139 D2A2 91 SETB E
013B 00 92 NOP
013C 00 93 NOP
013D C2A2 94 CLR E
013F 12016E 95 LCALL DELAY0
0142 22 96 RET
97
98 ;LCD显示初始化
0143 752E30 99 INITLCD: MOV CMD_BYTE,#30H
0146 12011F 100 LCALL WRITE_CMD
0149 752E30 101 MOV CMD_BYTE,#30H
014C 12011F 102 LCALL WRITE_CMD
014F 752E30 103 MOV CMD_BYTE,#30H
0152 12011F 104 LCALL WRITE_CMD
0155 752E38 105 MOV CMD_BYTE,#38H ;设定工作方式
0158 12011F 106 LCALL WRITE_CMD
015B 752E0C 107 MOV CMD_BYTE,#0CH ;显示状态设置
015E 12011F 108 LCALL WRITE_CMD
0161 752E01 109 MOV CMD_BYTE,#01H ;清屏
0164 12011F 110 LCALL WRITE_CMD
0167 752E06 111 MOV CMD_BYTE,#06H ;输入方式设置
016A 12011F 112 LCALL WRITE_CMD
016D 22 113 RET
114 ;延时子程序
016E 7DA0 115 DELAY0: MOV R5,#0A0H
0170 00 116 DELAY1: NOP
0171 DDFD 117 DJNZ R5,DELAY1
0173 22 118 RET
119
120 ;显示状态
0174 752E87 121 DISPSTATE: MOV CMD_BYTE,#87H
0177 12011F 122 LCALL WRITE_CMD
017A 20011F 123 JB OUTEDBIT,OPEN
017D 752F43 124 MOV DAT_BYTE,#"C"
A51 MACRO ASSEMBLER JDQ 09/13/2007 03:15:19 PAGE 3
0180 120131 125 LCALL WRITE_DAT
0183 752F4C 126 MOV DAT_BYTE,#"L"
0186 120131 127 LCALL WRITE_DAT
0189 752F4F 128 MOV DAT_BYTE,#"O"
018C 120131 129 LCALL WRITE_DAT
018F 752F53 130 MOV DAT_BYTE,#"S"
0192 120131 131 LCALL WRITE_DAT
0195 752F45 132 MOV DAT_BYTE,#"E"
0198 120131 133 LCALL WRITE_DAT
019B 22 134 RET
019C 752F4F 135 OPEN: MOV DAT_BYTE,#"O"
019F 120131 136 LCALL WRITE_DAT
01A2 752F50 137 MOV DAT_BYTE,#"P"
01A5 120131 138 LCALL WRITE_DAT
01A8 752F45 139 MOV DAT_BYTE,#"E"
01AB 120131 140 LCALL WRITE_DAT
01AE 752F4E 141 MOV DAT_BYTE,#"N"
01B1 120131 142 LCALL WRITE_DAT
01B4 752F20 143 MOV DAT_BYTE,#" "
01B7 120131 144 LCALL WRITE_DAT
01BA 22 145 RET
146
147
148 END
A51 MACRO ASSEMBLER JDQ 09/13/2007 03:15:19 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CLRKEYBIT. . . . . C ADDR 011AH A
CMD_BYTE . . . . . N NUMB 002EH A
DAT_BYTE . . . . . N NUMB 002FH A
DELAY0 . . . . . . C ADDR 016EH A
DELAY1 . . . . . . C ADDR 0170H A
DISPSTATE. . . . . C ADDR 0174H A
DPUSE. . . . . . . C ADDR 011CH A
E. . . . . . . . . B ADDR 00A0H.2 A
IE . . . . . . . . D ADDR 00A8H A
INITLCD. . . . . . C ADDR 0143H A
JDQ. . . . . . . . B ADDR 00B0H.6 A
KEYBIT . . . . . . B ADDR 0020H.0 A
KEYTIME. . . . . . N NUMB 0035H A
LCDPORT. . . . . . D ADDR 0080H A
MAIN . . . . . . . C ADDR 0030H A
OPEN . . . . . . . C ADDR 019CH A
OUTEDBIT . . . . . B ADDR 0020H.1 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
RS . . . . . . . . B ADDR 00A0H.0 A
RW . . . . . . . . B ADDR 00A0H.1 A
TH0. . . . . . . . D ADDR 008CH A
TIME0_1. . . . . . C ADDR 0100H A
TIME0_RE . . . . . C ADDR 011EH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
WRITE_CMD. . . . . C ADDR 011FH A
WRITE_DAT. . . . . C ADDR 0131H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -