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

📄 main.lst

📁 周立功单片机上的源程序
💻 LST
字号:
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:25:27 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;*************************************************************************
                       2     ;       main.asm
                       3     ;       16×16 LED点阵的扫描显示:显示一个汉字
                       4     ;*************************************************************************
                       5     
                       6     
                       7     ;*************************************************************************
                       8     ;定义I/O端口
                       9     ;*************************************************************************
  0093                10     STR     BIT     P1.3    ;74HC595存储寄存器时钟(Stroage register clock)
                      11     ;SI     BIT     P3.0    ;74HC595串行输入信号(Serial Input)
                      12     ;SCK    BIT     P3.1    ;74HC595移位寄存器时钟(Shift register clock)
                      13     
                      14     
                      15     ;*************************************************************************
                      16     ;定义变量
                      17     ;*************************************************************************
  0030                18     T1INTSVC_n      DATA    0x30    ;用于函数T1INTSVC()
                      19     
                      20     
                      21     ;*************************************************************************
                      22     ;复位入口
                      23     ;*************************************************************************
0000                  24             ORG     0x0000
0000 02001E           25             LJMP    PreMain
                      26     
                      27     
                      28     ;*************************************************************************
                      29     ;定时器T1中断入口
                      30     ;*************************************************************************
001B                  31             ORG     0x001B
001B 02005F           32             LJMP    T1INTSVC
                      33     
                      34     
                      35     ;*************************************************************************
                      36     ;进入主程序之前的初始化
                      37     ;*************************************************************************
001E                  38     PreMain:
001E 758130           39             MOV     SP, #0x30
0021 753000           40             MOV     T1INTSVC_n, #0x00
0024 0200F2           41             LJMP    main
                      42     
                      43     
                      44     ;*************************************************************************
                      45     ;函数:void SysInit()
                      46     ;功能:系统初始化
                      47     ;*************************************************************************
0027                  48     SysInit:
0027 D293             49             SETB    STR
0029 759800           50             MOV     SCON, #0x00     ;设置串行口工作在方式0(同步移位寄存器)
002C 53890F           51             ANL     TMOD, #0x0F
002F 438910           52             ORL     TMOD, #0x10
0032 758DFC           53             MOV     TH1, #0xFC
0035 758B66           54             MOV     TL1, #0x66      ;定时1ms
0038 D28E             55             SETB    TR1
003A D2AB             56             SETB    ET1
003C D2AF             57             SETB    EA
003E 22               58             RET
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:25:27 PAGE     2

                      59     
                      60     
                      61     ;*************************************************************************
                      62     ;定义汉字点阵数据表
                      63     ;*************************************************************************
003F                  64     Zimo:
                      65             ;文字:汉,字体:Fixedsys12,大小:16×16,取模方式:纵向取模、字节正序
003F 08068061         66             DB      0x08,0x06,0x80,0x61,0x06,0x20,0x38,0x27,0x20,0x20,0x20,0x27,0x38,0x20,0x00,
                             0x00
0043 06203827                
0047 20202027                
004B 38200000                
004F 20207E80         67             DB      0x20,0x20,0x7E,0x80,0x02,0x04,0x04,0x08,0xD0,0x20,0xD0,0x08,0x0C,0x06,0x04,
                             0x00
0053 02040408                
0057 D020D008                
005B 0C060400                
                      68     
                      69     
                      70     ;*************************************************************************
                      71     ;函数:void T1INTSVC() interrupt 3
                      72     ;*************************************************************************
005F                  73     T1INTSVC:
                      74             ;unsigned char i;
                      75             ;unsigned char buf[4];
                      76             ;处理定时器T1
005F C28E             77             CLR     TR1
0061 758DFC           78             MOV     TH1, #0xFC
0064 758B66           79             MOV     TL1, #0x66
0067 D28E             80             SETB    TR1
                      81             ;保护寄存器
0069 C0E0             82             PUSH    ACC
006B C0D0             83             PUSH    PSW
006D C083             84             PUSH    DPH
006F C082             85             PUSH    DPL
0071 C000             86             PUSH    0x00
0073 C002             87             PUSH    0x02
0075 C003             88             PUSH    0x03
0077 C004             89             PUSH    0x04
                      90             ;分配数组buf[4]
0079 E581             91             MOV     A, SP
007B 04               92             INC     A
007C FC               93             MOV     R4, A
007D 2403             94             ADD     A, #3
007F F581             95             MOV     SP, A
                      96             ;查表,取得要发送的数据
0081 A804             97             MOV     R0, 0x04
0083 9000D2           98             MOV     DPTR, #T1INTSVC_Tab
0086 E530             99             MOV     A, T1INTSVC_n
0088 93              100             MOVC    A, @A+DPTR
0089 F6              101             MOV     @R0, A
008A 08              102             INC     R0
008B E530            103             MOV     A, T1INTSVC_n
008D 2410            104             ADD     A, #16
008F 93              105             MOVC    A, @A+DPTR
0090 F6              106             MOV     @R0, A
0091 08              107             INC     R0
0092 90003F          108             MOV     DPTR, #Zimo
0095 E530            109             MOV     A, T1INTSVC_n
0097 2410            110             ADD     A, #16
0099 93              111             MOVC    A, @A+DPTR
009A F6              112             MOV     @R0, A
009B 08              113             INC     R0
009C E530            114             MOV     A, T1INTSVC_n
009E 93              115             MOVC    A, @A+DPTR
009F F6              116             MOV     @R0, A
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:25:27 PAGE     3

00A0 0530            117             INC     T1INTSVC_n
00A2 53300F          118             ANL     T1INTSVC_n, #0x0F
                     119             ;向74HC595发送数据
00A5 C293            120             CLR     STR
00A7 7A00            121             MOV     R2, #0
00A9                 122     T1INTSVC_for:
00A9 EC              123             MOV     A, R4
00AA 2A              124             ADD     A, R2
00AB F8              125             MOV     R0, A
00AC E6              126             MOV     A, @R0
00AD F599            127             MOV     SBUF, A
00AF 3099FD          128             JNB     TI, $
00B2 C299            129             CLR     TI
00B4 0A              130             INC     R2
00B5 BA04F1          131             CJNE    R2, #4, T1INTSVC_for
00B8 D293            132             SETB    STR
                     133             ;释放数组buf[4]
00BA E581            134             MOV     A, SP
00BC C3              135             CLR     C
00BD 9404            136             SUBB    A, #4
00BF F581            137             MOV     SP, A
                     138             ;恢复寄存器
00C1 D004            139             POP     0x04
00C3 D003            140             POP     0x03
00C5 D002            141             POP     0x02
00C7 D000            142             POP     0x00
00C9 D082            143             POP     DPL
00CB D083            144             POP     DPH
00CD D0D0            145             POP     PSW
00CF D0E0            146             POP     ACC
                     147             ;中断返回
00D1 32              148             RETI
00D2                 149     T1INTSVC_Tab:
                     150             ;定义扫描数据表
00D2 FFFFFFFF        151             DB      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,
                             0xFE
00D6 FFFFFFFF                
00DA 7FBFDFEF                
00DE F7FBFDFE                
00E2 7FBFDFEF        152             DB      0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
                             0xFF
00E6 F7FBFDFE                
00EA FFFFFFFF                
00EE FFFFFFFF                
                     153     
                     154     
                     155     ;*************************************************************************
                     156     ;函数:void main()
                     157     ;功能:主函数
                     158     ;*************************************************************************
00F2                 159     main:
00F2 120027          160             LCALL   SysInit
00F5 80FE            161             SJMP    $
                     162     
                     163     
                     164     ;*************************************************************************
                     165     ;程序结束
                     166     ;*************************************************************************
                     167             END
                             
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:25:27 PAGE     4

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET1. . . . . . . .  B ADDR   00A8H.3 A   
MAIN . . . . . . .  C ADDR   00F2H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
PREMAIN. . . . . .  C ADDR   001EH   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
SBUF . . . . . . .  D ADDR   0099H   A   
SCON . . . . . . .  D ADDR   0098H   A   
SP . . . . . . . .  D ADDR   0081H   A   
STR. . . . . . . .  B ADDR   0090H.3 A   
SYSINIT. . . . . .  C ADDR   0027H   A   
T1INTSVC . . . . .  C ADDR   005FH   A   
T1INTSVC_FOR . . .  C ADDR   00A9H   A   
T1INTSVC_N . . . .  D ADDR   0030H   A   
T1INTSVC_TAB . . .  C ADDR   00D2H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TI . . . . . . . .  B ADDR   0098H.1 A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
ZIMO . . . . . . .  C ADDR   003FH   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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