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

📄 003.lst

📁 用单片机汇编写的电压表及温度显示程序,希望对大家有用!
💻 LST
📖 第 1 页 / 共 3 页
字号:
A51 MACRO ASSEMBLER  003                                                                  08/29/2008 18:26:42 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN 003.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 003.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  00A0                 1     RS EQU P2.0
  00A1                 2     RW EQU P2.1
  00A2                 3     E EQU P2.2
                       4     
                       5     ;-----------------------------------------------
  0030                 6     LCD_X EQU 30H
  0031                 7     LCD_Y EQU 31H
  0032                 8     COUNT EQU 32H
  0033                 9     COUNT1 EQU 33H
  0034                10     COUNT2 EQU 34H
  0035                11     COUNT3 EQU 35H
                      12     ;-----------------------------------------------
  0036                13     LCD_DATA EQU 36H
  0037                14     LCD_DATA1 EQU 37H
  0038                15     LCD_DATA2 EQU 38H
  0039                16     STORE EQU 39H
                      17     ;-----------------------------------------------
                      18     
                      19     ;ad输出口
  0080                20     out     equ     p0
                      21     ;-----------------------------------------------
                      22     
                      23     ;-----------------------------------------------
0000                  24     ORG 0000H
0000 020030           25     LJMP MAIN
0030                  26     ORG 0030H
                      27     ;-----------------------------------------------
0030                  28     MAIN:
0030 75815F           29     MOV SP,#5FH
                      30     
0033 120260           31     LCALL DELAY4
                      32     
                      33     ;通讯方式为8位数据并口
                      34     
                      35     ;********************初始化**********************
0036 7434             36     LGS0: MOV A,#34H ;34H--扩充指令操作
0038 120211           37     LCALL SEND_I
003B 7430             38     MOV A,#30H ;30H--基本指令操作
003D 120211           39     LCALL SEND_I
0040 7401             40     MOV A,#01H ;清除显示
0042 120211           41     LCALL SEND_I
0045 7406             42     MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
0047 120211           43     LCALL SEND_I ;DDRAM 的地址计数器(AC)加1
004A 740C             44     MOV A,#0CH ;开显示,关光标,不闪烁
004C 120211           45     LCALL SEND_I
                      46     ;===============================================
004F                  47     TU_PLAY1:
004F 90029C           48     MOV DPTR,#TU_TAB1 ;显示图形
0052 120127           49     LCALL PHO_DISP
0055                  50     han1:
0055 900276           51     mov     dptr ,#zz1        ;显示"液体"
0058 753204           52     mov     count,#04h
005B 7486             53     mov a ,#86h
005D 120211           54     lcall   send_i
0060 1201EF           55     lcall   qushu
0063                  56     han2:
0063 90027A           57     mov     dptr ,#zz2       ;显示"电压"
0066 753204           58     mov     count,#04h
A51 MACRO ASSEMBLER  003                                                                  08/29/2008 18:26:42 PAGE     2

0069 7496             59     mov a ,#96h
006B 120211           60     lcall   send_i
006E 1201EF           61     lcall   qushu
0071                  62     han3:
0071 90027E           63     mov     dptr ,#zz3       ;显示"程序"
0074 753204           64     mov     count,#04h
0077 748E             65     mov a ,#8eh
0079 120211           66     lcall   send_i
007C 1201EF           67     lcall   qushu
007F                  68     han4:
007F 900282           69     mov     dptr ,#zz4       ;显示"现在的电压是 . V"
0082 753210           70     mov     count,#10h
0085 7498             71     mov a ,#98h
0087 120211           72     lcall   send_i
008A 1201EF           73     lcall   qushu
                      74     
                      75     ;AD转换 程序
008D                  76     start:
008D 120102           77     LCALL   STARTAD ;假程序
0090 120241           78     LCALL   DELAY3  
0093 120106           79     LCALL   READAD
                      80     ;取结果乘C4约得50000(5V)
0096 75F0C4           81     MOV             B,#0C4H
0099 A4               82     MUL             AB
009A 85F050           83     MOV             50H,B      ;高位
009D F551             84     MOV             51H,A           ;低位
009F 1200C9           85     LCALL   BCDMA            ;取BCD码
                      86     ;显个位多少V
00A2 900292           87     MOV             DPTR,#BM
00A5 753201           88     MOV             COUNT,#01H
00A8 749E             89     MOV             A,#9EH
00AA 120211           90     LCALL   SEND_I
00AD E548             91     MOV             A,48H
00AF 540F             92     ANL             A,#0FH
00B1 1201F9           93     LCALL   ADSHU
                      94     ;显示小数一位,0.几V
00B4 900292           95     MOV             DPTR,#BM
00B7 753201           96     MOV             COUNT,#01H
00BA 749F             97     MOV             A,#9FH
00BC 120211           98     LCALL   SEND_I
00BF E547             99     MOV             A,47H
00C1 54F0            100     ANL             A,#0F0H
00C3 C4              101     SWAP    A
00C4 1201F9          102     LCALL   ADSHU
                     103                     
                     104     
00C7 018D            105     ajmp START
                     106     
                     107     ;-----------------------------------------------
                     108     ;BCD转换程序    IN:50,51H OUT:48,47,46H
                     109     ;-----------------------------------------------
00C9                 110     BCDMA: 
00C9 7844            111     MOV             R0,#44H
00CB E551            112     MOV     A,51H
00CD F6              113     MOV             @R0,A
00CE 08              114     INC             R0
                     115     
00CF E550            116     MOV     A,50H
00D1 F6              117     MOV             @R0,A
00D2 08              118     INC             R0
00D3 7600            119     MOV             @R0,#00H
00D5 08              120     INC             R0
00D6 7600            121     MOV             @R0,#00H
00D8 08              122     INC             R0
00D9 7600            123     MOV             @R0,#00H
00DB 08              124     INC             R0
A51 MACRO ASSEMBLER  003                                                                  08/29/2008 18:26:42 PAGE     3

00DC 7600            125     MOV             @R0,#00H
00DE 754910          126     MOV             49H,#16
00E1                 127     S1:
00E1 7844            128     MOV             R0,#44H
00E3 7A02            129     MOV             R2,#02H
00E5 C3              130     CLR             C
00E6                 131     S2:
00E6 E6              132     MOV             A,@R0
00E7 33              133     RLC             A
00E8 F6              134     MOV             @R0,A
00E9 08              135     INC             R0
00EA DAFA            136     DJNZ    R2,S2
00EC 7A03            137     MOV             R2,#03H
00EE                 138     S3:
00EE E6              139     MOV             A,@R0
00EF F5F0            140     MOV             B,A 
00F1 35F0            141     ADDC    A,B
00F3 D4              142     DA              A
00F4 F6              143     MOV             @R0,A
00F5 08              144     INC             R0
00F6 DAF6            145     DJNZ    R2,S3
00F8 D549E6          146     DJNZ    49H,S1
                     147     
00FB AA48            148     MOV             R2,48H
00FD AB47            149     MOV             R3,47H
00FF AC46            150     MOV             R4,46H
                     151     
0101 22              152     RET
                     153     
                     154     
                     155     ;-----------------------------------------------
                     156     ;开始转换AD程序 ;假程序
                     157     ;-----------------------------------------------
0102                 158     startad:
0102 00              159     nop
                     160     ;clr WRAD
0103 00              161     nop
                     162     ;setb WRAD
0104 00              163     nop
0105 22              164     ret
                     165     
                     166     ;-----------------------------------------------
                     167     ;读取AD程序
                     168     ;-----------------------------------------------
0106                 169     readad:
0106 7580FF          170     mov     out,#0ffh
0109 00              171     nop
                     172     ;clr RDAD ;假
010A 00              173     nop
010B E4              174     CLR A
010C E580            175     mov     a,out
010E 00              176     nop
                     177     ;setb RDAD       ;假
010F 22              178     ret
                     179     
                     180     ;-----------------------------------------------
                     181     ;显示点阵
                     182     ;-----------------------------------------------
0110                 183     LATPLAY1:
0110 7401            184     MOV A,#01H ;清屏
0112 120211          185     LCALL SEND_I
0115 7537CC          186     MOV LCD_DATA1,#0CCH ;显示点阵
0118 7538CC          187     MOV LCD_DATA2,#0CCH
011B 120162          188     LCALL LAT_DISP
011E 120241          189     LCALL DELAY3
0121 1201DF          190     LCALL CLEAR_P
A51 MACRO ASSEMBLER  003                                                                  08/29/2008 18:26:42 PAGE     4

                     191     
0124                 192     KU_PLAY2:
                     193     
0124 02004F          194     LJMP TU_PLAY1
                     195     
                     196     ;===============================================
                     197     ;全屏显示图形子程序
                     198     ;===============================================
0127                 199     PHO_DISP:
0127 753502          200     MOV COUNT3,#02H
012A 753080          201     MOV LCD_X,#80H
012D                 202     PHO_DISP1:
012D 753180          203     MOV LCD_Y,#80H
0130 753420          204     MOV COUNT2,#20H
0133                 205     PHO_DISP2:
0133 753310          206     MOV COUNT1,#10H
0136 1201A1          207     LCALL WR_ZB
0139                 208     PHO_DISP3:
0139 E4              209     CLR A
013A 93              210     MOVC A,@A+DPTR
013B 120201          211     LCALL SEND_D
013E A3              212     INC DPTR
013F D533F7          213     DJNZ COUNT1,PHO_DISP3
0142 0531            214     INC LCD_Y
0144 D534EC          215     DJNZ COUNT2,PHO_DISP2
0147 753088          216     MOV LCD_X,#88H
014A D535E0          217     DJNZ COUNT3,PHO_DISP1
                     218     
014D 7436            219     MOV A,#36H
014F 120211          220     LCALL SEND_I
0152 7430            221     MOV A,#30H
0154 120211          222     LCALL SEND_I
0157 22              223     RET
                     224     
                     225     
                     226      
                     227     ;----------------------------------------------
0158                 228     CLRRAM:
0158 753700          229     MOV LCD_DATA1,#00H ;GDRAM写0子程序
015B 753800          230     MOV LCD_DATA2,#00H
015E 120162          231     LCALL LAT_DISP
0161 22              232     RET
                     233     ;==============================================
                     234     ;显示点阵子程序
                     235     ;==============================================
0162                 236     LAT_DISP:
0162 753502          237     MOV COUNT3,#02H
0165 753080          238     MOV LCD_X,#80H
0168                 239     LAT_DISP1:
0168 753180          240     MOV LCD_Y,#80H
016B C2D5            241     CLR f0
016D 753420          242     MOV COUNT2,#20H
0170                 243     LAT_DISP2:
0170 753310          244     MOV COUNT1,#10H
0173 1201A1          245     LCALL WR_ZB
0176                 246     LAT_DISP3:
0176 20D505          247     JB F0,LAT_DISP32
0179 853736          248     MOV LCD_DATA,LCD_DATA1
017C 2181            249     AJMP LAT_DISP31
017E                 250     LAT_DISP32:
017E 853836          251     MOV LCD_DATA,LCD_DATA2
0181                 252     LAT_DISP31:
0181 E536            253     MOV A,LCD_DATA
0183 120201          254     LCALL SEND_D
0186 D533F8          255     DJNZ COUNT1,LAT_DISP31
0189 0531            256     INC LCD_Y
A51 MACRO ASSEMBLER  003                                                                  08/29/2008 18:26:42 PAGE     5

018B B2D5            257     CPL F0
018D D534E0          258     DJNZ COUNT2,LAT_DISP2
0190 753088          259     MOV LCD_X,#88H
0193 D535D2          260     DJNZ COUNT3,LAT_DISP1
                     261     
0196 7436            262     MOV A,#36H
0198 120211          263     LCALL SEND_I
019B 7430            264     MOV A,#30H
019D 120211          265     LCALL SEND_I
01A0 22              266     RET
                     267     ;---------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -