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

📄 jdq.lst

📁 单片机开发板源程序适合初学者 第六部分 继电器输出控制
💻 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 + -