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

📄 main.lst

📁 周立功单片机上的源程序
💻 LST
字号:
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:22:20 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)
  0094                11     SI      BIT     P1.4    ;74HC595串行输入信号(Serial Input)
  0095                12     SCK     BIT     P1.5    ;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 020060           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 0200F9           41             LJMP    main
                      42     
                      43     
                      44     ;*************************************************************************
                      45     ;函数:void SysInit()
                      46     ;功能:系统初始化
                      47     ;*************************************************************************
0027                  48     SysInit:
0027 D293             49             SETB    STR
0029 C294             50             CLR     SI
002B C295             51             CLR     SCK
002D 53890F           52             ANL     TMOD, #0x0F
0030 438910           53             ORL     TMOD, #0x10
0033 758DFC           54             MOV     TH1, #0xFC
0036 758B66           55             MOV     TL1, #0x66      ;定时1ms
0039 D28E             56             SETB    TR1
003B D2AB             57             SETB    ET1
003D D2AF             58             SETB    EA
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:22:20 PAGE     2

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

009D E530            117             MOV     A, T1INTSVC_n
009F 93              118             MOVC    A, @A+DPTR
00A0 F6              119             MOV     @R0, A
00A1 0530            120             INC     T1INTSVC_n
00A3 53300F          121             ANL     T1INTSVC_n, #0x0F
                     122             ;向74HC595发送数据
00A6 C293            123             CLR     STR
00A8 7A00            124             MOV     R2, #0
00AA                 125     T1INTSVC_for:
00AA EC              126             MOV     A, R4
00AB 2A              127             ADD     A, R2
00AC F8              128             MOV     R0, A
00AD E6              129             MOV     A, @R0
00AE 7B08            130             MOV     R3, #8
00B0                 131     T1INTSVC_do:
00B0 A2E0            132             MOV     C, ACC.0
00B2 9294            133             MOV     SI, C
00B4 D295            134             SETB    SCK
00B6 03              135             RR      A
00B7 C295            136             CLR     SCK
00B9 DBF5            137             DJNZ    R3, T1INTSVC_do
00BB 0A              138             INC     R2
00BC BA04EB          139             CJNE    R2, #4, T1INTSVC_for
00BF D293            140             SETB    STR
                     141             ;释放数组buf[4]
00C1 E581            142             MOV     A, SP
00C3 C3              143             CLR     C
00C4 9404            144             SUBB    A, #4
00C6 F581            145             MOV     SP, A
                     146             ;恢复寄存器
00C8 D004            147             POP     0x04
00CA D003            148             POP     0x03
00CC D002            149             POP     0x02
00CE D000            150             POP     0x00
00D0 D082            151             POP     DPL
00D2 D083            152             POP     DPH
00D4 D0D0            153             POP     PSW
00D6 D0E0            154             POP     ACC
                     155             ;中断返回
00D8 32              156             RETI
00D9                 157     T1INTSVC_Tab:
                     158             ;定义扫描数据表
00D9 FFFFFFFF        159             DB      0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,
                             0xFE
00DD FFFFFFFF                
00E1 7FBFDFEF                
00E5 F7FBFDFE                
00E9 7FBFDFEF        160             DB      0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
                             0xFF
00ED F7FBFDFE                
00F1 FFFFFFFF                
00F5 FFFFFFFF                
                     161     
                     162     
                     163     ;*************************************************************************
                     164     ;函数:void main()
                     165     ;功能:主函数
                     166     ;*************************************************************************
00F9                 167     main:
00F9 120027          168             LCALL   SysInit
00FC 80FE            169             SJMP    $
                     170     
                     171     
                     172     ;*************************************************************************
                     173     ;程序结束
                     174     ;*************************************************************************
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:22:20 PAGE     4

                     175             END
                             
A51 MACRO ASSEMBLER  MAIN                                                                 07/01/2006 11:22:20 PAGE     5

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   00F9H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
PREMAIN. . . . . .  C ADDR   001EH   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
SCK. . . . . . . .  B ADDR   0090H.5 A   
SI . . . . . . . .  B ADDR   0090H.4 A   
SP . . . . . . . .  D ADDR   0081H   A   
STR. . . . . . . .  B ADDR   0090H.3 A   
SYSINIT. . . . . .  C ADDR   0027H   A   
T1INTSVC . . . . .  C ADDR   0060H   A   
T1INTSVC_DO. . . .  C ADDR   00B0H   A   
T1INTSVC_FOR . . .  C ADDR   00AAH   A   
T1INTSVC_N . . . .  D ADDR   0030H   A   
T1INTSVC_TAB . . .  C ADDR   00D9H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
ZIMO . . . . . . .  C ADDR   0040H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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