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

📄 test_disp.lst

📁 51内核单片机实验程序
💻 LST
字号:
A51 MACRO ASSEMBLER  TEST_DISP                                                            09/17/2007 09:53:25 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN test_disp.OBJ
ASSEMBLER INVOKED BY: D:\Keil\C51\BIN\A51.EXE test_disp.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;----------------------------------------------
                       2     ;             用汇编编制的显示程序
                       3     ;                  2007.8.29
                       4                     
  0090                 5             spk       BIT   P1.0      ;蜂鸣器
  0091                 6             k1        BIT   P1.1      ;k1
  00A4                 7             k2        BIT   P2.4      ;k2
                       8             
  0097                 9             led_di    bit   p1.7      ;74ls164 数据输入
  00B3                10             led_clk   bit   p3.3      ;74ls164 时钟输入
                      11     
  1000                12             disp_s    EQU  1000h    ;十位地址
  2000                13             disp_g    EQU  2000h    ;个位地址
  4000                14             clr_led   equ  4000h    ;74ls164(清零)       
                      15              
                      16     
  0030                17             numb_s    equ  30h     ;个位数据
  0031                18             numb_g    equ  31h     ;十位数据
  0032                19             led       equ  32h     ;led要显示的数
                      20     
  0033                21             numb      equ  33h     ;
                      22     
0000                  23               org    0000h       ;复位入口
0000 020198           24               ljmp   main        ;跳到主程序
                      25     
0100                  26               org    0100h
                      27     
0100                  28     delay_0: ;延时子程序
0100 7E02             29               mov    r6,#02h
                      30      ;del_22:  djnz   r6,del_22
0102 22               31               ret
                      32     
0103                  33     delay_1:  ;延时子程序
0103 7D00             34               mov    r5,#00h  ;
0105 7E00             35        del_2: mov    r6,#00h
0107 DEFE             36        del_1: djnz   r6,del_1
0109 DDFA             37               djnz   r5,del_2
010B 22               38               ret
010C                  39     delay_2:;;延时子程序
010C 120103           40               lcall   delay_1    
010F 120103           41               lcall   delay_1    
0112 120103           42               lcall   delay_1    
0115 120103           43               lcall   delay_1    
0118 120103           44               lcall   delay_1    
011B 120103           45               lcall   delay_1 
011E 120103           46               lcall   delay_1    
0121 120103           47               lcall   delay_1    
0124 120103           48               lcall   delay_1    
0127 120103           49               lcall   delay_1    
012A 120103           50               lcall   delay_1    
012D 120103           51               lcall   delay_1    
0130 22               52               ret  
0131                  53     sprak_on:              ;蜂鸣器发声
0131 C290             54               clr     spk;
0133 120103           55               lcall   delay_1
0136 D290             56               setb    spk
0138 22               57               ret
0139                  58     clr_led_d:
A51 MACRO ASSEMBLER  TEST_DISP                                                            09/17/2007 09:53:25 PAGE     2

0139 904000           59               mov     dptr,#clr_led;
013C E0               60               movx    a,@dptr
013D 22               61               ret
                      62     
013E                  63     disp_led:  ;led=?
                      64               ;lcall  clr_led_d;清零
013E E532             65               mov    a,led;
0140 753308           66               mov    numb,#08h
0143 C2B3             67               clr    led_clk
                      68     
0145                  69     c_disp_led:
                      70                   
0145 33               71               rlc    a
0146 9297             72               mov    led_di,c
0148 120100           73               lcall  delay_0;
                      74        
014B D2B3             75               setb   led_clk;
014D 120100           76               lcall  delay_0;
0150 C2B3             77               clr    led_clk;
0152 120100           78               lcall  delay_0;
                      79      
0155 D533ED           80               djnz   numb,c_disp_led
0158 22               81               ret
                      82               
0159                  83     loop_led:
0159 7F80             84               mov    r7,#80h
015B                  85     loop_led1:
015B 8F32             86               mov    led,r7
015D 12013E           87               lcall  disp_led;显示
0160 120103           88               lcall  delay_1
                      89     
0163 EF               90               mov    a,r7
0164 13               91               rrc    a
0165 FF               92               mov    r7,a
0166 309105           93               jnb    k1,quit_k1
0169 30A402           94               jnb    k2,quit_k1
016C 80ED             95               sjmp   loop_led1
016E                  96     quit_k1:
016E 22               97               ret
                      98     ;         
                      99     ;----------------------------------------------
016F                 100     tab: ;数码管显示0,1,2,3,4,5,6,7,8,9代码(查表用)
016F 3F              101           db     3fh;  "0"
0170 06              102           db     06h;  "1"
0171 5B              103           db     5bh;  "2"
0172 4F              104           db     4fh;  "3"
0173 66              105           db     66h;  "4"
0174 6D              106           db     6dh;  "5"
0175 7D              107           db     7dh;  "6"
0176 07              108           db     07h;  "7"
0177 7F              109           db     7fh;  "8"
0178 67              110           db     67h;  "9"
0179 77              111           db     77h;  "a"
017A 7C              112           db     7ch;  "b"
017B 39              113           db     39h;  "c"
017C 5E              114           db     5eh;  "d"
017D 79              115           db     79h;  "e"
017E 71              116           db     71h;  "f"
017F 00              117           db     00h;  " "
                     118     
                     119     ;--------------------------------     
0180                 120     f_numb:  ;a=?
0180 90016F          121           mov    dptr,#tab  ;置表的头
0183 93              122           movc   a,@a+dptr  ;查表
0184 22              123           ret
                     124        
A51 MACRO ASSEMBLER  TEST_DISP                                                            09/17/2007 09:53:25 PAGE     3

0185                 125     display: ;numb_s=?  numb_g=?
0185 E530            126           mov    a,numb_s     
0187 120180          127           lcall  f_numb; 查表
018A 901000          128           mov    dptr,#disp_s;置十位的地址
018D F0              129           movx   @dptr,a;写数
                     130     
018E E531            131           mov    a,numb_g;
0190 120180          132           lcall  f_numb; 查表
0193 902000          133           mov    dptr,#disp_g;置个位的地址
0196 F0              134           movx   @dptr,a;写数
0197 22              135           ret
                     136     
                     137              
0198                 138     main:                    ;主程序入口
0198 758190          139           mov    sp,#90h     ;设堆栈
019B 75B800          140           mov    ip,#00h     ;关中断
                     141     
019E 120131          142           lcall  sprak_on    ;发声
01A1 12010C          143           lcall  delay_2
01A4 120131          144           lcall  sprak_on    ;发声
                     145     
01A7 753002          146           mov    numb_s,#02h ;显示2
01AA 753101          147           mov    numb_g,#01h ;显示1
01AD 120185          148           lcall  display     ;调用显示程序
                     149     
01B0 120159          150           lcall  loop_led
01B3 753255          151           mov    led,#55h; 显示55
01B6 12013E          152           lcall  disp_led; 
01B9                 153     loop:
                     154           ;jnb    k1,to_disp
                     155           ;jnb    k2,to_led
                     156           ;sjmp   loop
                     157     
01B9                 158     to_disp:
                     159     
01B9 753000          160           mov    numb_s,#00h  ;显示0
01BC 753101          161           mov    numb_g,#01h  ;显示1
                     162     
01BF                 163     loop1:
01BF 120185          164           lcall  display   ;显示
01C2 12010C          165           lcall  delay_2   ;延时
                     166     
01C5 0530            167           inc    numb_s
01C7 C3              168           clr    c
01C8 E530            169           mov    a,numb_s
01CA 9409            170           subb   a,#09h
01CC 5019            171           jnc    clr_numb_s
                     172     
01CE                 173     tnumb_g:     
01CE 0531            174           inc    numb_g
01D0 C3              175           clr    c
01D1 E531            176           mov    a,numb_g
01D3 9409            177           subb   a,#09h
01D5 5015            178           jnc    clr_numb_g
01D7                 179      tnumb_gg:
01D7 E532            180           mov    a,led
01D9 F4              181           cpl    a
01DA F532            182           mov    led,a
01DC 12013E          183           lcall  disp_led
01DF 3091B6          184           jnb    k1,main   ;查键
01E2 30A4B3          185           jnb    k2,main   ;查键
01E5 80D8            186           sjmp   loop1
                     187     
01E7                 188     clr_numb_s:
01E7 753000          189           mov    numb_s,#00h
01EA 80E2            190           sjmp   tnumb_g
A51 MACRO ASSEMBLER  TEST_DISP                                                            09/17/2007 09:53:25 PAGE     4

                     191     
01EC                 192     clr_numb_g:
01EC 753100          193           mov    numb_g,#00h
01EF 80E6            194           sjmp   tnumb_gg
                     195     
                     196           
01F1                 197     to_led:
01F1 80FE            198           sjmp   $
                     199     
                     200           end  
                             
                             
                             
                             
                              
                                     
A51 MACRO ASSEMBLER  TEST_DISP                                                            09/17/2007 09:53:25 PAGE     5

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

CLR_LED. . . . . .  N NUMB   4000H   A   
CLR_LED_D. . . . .  C ADDR   0139H   A   
CLR_NUMB_G . . . .  C ADDR   01ECH   A   
CLR_NUMB_S . . . .  C ADDR   01E7H   A   
C_DISP_LED . . . .  C ADDR   0145H   A   
DELAY_0. . . . . .  C ADDR   0100H   A   
DELAY_1. . . . . .  C ADDR   0103H   A   
DELAY_2. . . . . .  C ADDR   010CH   A   
DEL_1. . . . . . .  C ADDR   0107H   A   
DEL_2. . . . . . .  C ADDR   0105H   A   
DISPLAY. . . . . .  C ADDR   0185H   A   
DISP_G . . . . . .  N NUMB   2000H   A   
DISP_LED . . . . .  C ADDR   013EH   A   
DISP_S . . . . . .  N NUMB   1000H   A   
F_NUMB . . . . . .  C ADDR   0180H   A   
IP . . . . . . . .  D ADDR   00B8H   A   
K1 . . . . . . . .  B ADDR   0090H.1 A   
K2 . . . . . . . .  B ADDR   00A0H.4 A   
LED. . . . . . . .  N NUMB   0032H   A   
LED_CLK. . . . . .  B ADDR   00B0H.3 A   
LED_DI . . . . . .  B ADDR   0090H.7 A   
LOOP . . . . . . .  C ADDR   01B9H   A   
LOOP1. . . . . . .  C ADDR   01BFH   A   
LOOP_LED . . . . .  C ADDR   0159H   A   
LOOP_LED1. . . . .  C ADDR   015BH   A   
MAIN . . . . . . .  C ADDR   0198H   A   
NUMB . . . . . . .  N NUMB   0033H   A   
NUMB_G . . . . . .  N NUMB   0031H   A   
NUMB_S . . . . . .  N NUMB   0030H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
QUIT_K1. . . . . .  C ADDR   016EH   A   
SP . . . . . . . .  D ADDR   0081H   A   
SPK. . . . . . . .  B ADDR   0090H.0 A   
SPRAK_ON . . . . .  C ADDR   0131H   A   
TAB. . . . . . . .  C ADDR   016FH   A   
TNUMB_G. . . . . .  C ADDR   01CEH   A   
TNUMB_GG . . . . .  C ADDR   01D7H   A   
TO_DISP. . . . . .  C ADDR   01B9H   A   
TO_LED . . . . . .  C ADDR   01F1H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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