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

📄 t0_leddrv.lst

📁 关于温度传感器和电机测速的单片机程序
💻 LST
字号:
A51 MACRO ASSEMBLER  T0_LEDDRV                                                            11/15/2005 13:59:28 PAGE     1


MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN T0_LEDdrv.OBJ
ASSEMBLER INVOKED BY: D:\Program Files\Keil\C51\BIN\A51.EXE T0_LEDdrv.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1             PUBLIC  InitT0
                       2             PUBLIC  DispBuf
                       3             PUBLIC  KeyCode
                       4     
                       5     
                       6     T0Data  SEGMENT DATA
----                   7             RSEG    T0Data
0000                   8     pBuf:   DS      1
0001                   9     DispBuf:DS      6
0007                  10     KeyLast:DS      4
000B                  11     KeyTmp: DS      1
000C                  12     KeyCode:DS      1
                      13     
----                  14     CSEG    AT      1*8+3
000B 020000   F       15             LJMP    T0_ISR
                      16     
                      17     T0Code  SEGMENT CODE
----                  18             RSEG    T0Code
                      19     ;--------------------------------------------------------
                      20     ;       T0 Initial 
                      21     ;--------------------------------------------------------
0000                  22     InitT0: 
0000 750000   F       23             MOV     pBuf,#0
0003 7800     F       24             MOV     R0,#KeyLast
0005 75F004           25             MOV     B,#4
0008                  26     KeyLastValue:
0008 760F             27             MOV     @R0,#0Fh
000A D5F0FB           28             DJNZ    B,KeyLastValue
000D 850000   F       29             MOV     KeyCode,0
                      30             
0010 E589             31             MOV     A,TMOD
0012 54F0             32             ANL     A,#0F0h
0014 4401             33             ORL     A,#00000001B
0016 F589             34             MOV     TMOD,A
0018 758CFE           35             MOV     TH0,#0FEh
001B 758A00           36             MOV     TL0,#0
001E D28C             37             SETB    TR0
0020 D2A9             38             SETB    ET0
0022 D2AF             39             SETB    EA
0024 22               40             RET
                      41     ;--------------------------------------------------------
                      42     ;       T0 ISR
                      43     ;--------------------------------------------------------
0025 758CFE           44     T0_ISR: MOV     TH0,#0FEh
0028 758A00           45             MOV     TL0,#0
002B 7580FF           46             MOV     P0,#0FFh        ; Close all seg
002E 75A00F           47             MOV     P2,#0Fh
0031 C0E0             48             PUSH    ACC
0033 C0D0             49             PUSH    PSW
0035 C082             50             PUSH    DPL
0037 C083             51             PUSH    DPH
0039 C0F0             52             PUSH    B
003B                  53     DispLay:
003B 88F0             54             MOV     B,R0
003D E500     F       55             MOV     A,pBuf          ; Fetch pointer 
003F 2400     F       56             ADD     A,#DispBuf      ; Add Buffer Base Addr
0041 F8               57             MOV     R0,A
0042 E6               58             MOV     A,@R0           ; Fetch Data to be displayed
A51 MACRO ASSEMBLER  T0_LEDDRV                                                            11/15/2005 13:59:28 PAGE     2

0043 900000   F       59             MOV     DPTR,#CharTab   ; Char. Table address
0046 93               60             MOVC    A,@A+DPTR       ; Get Char Segs of the data     
0047 F580             61             MOV     P0,A            ; to display
0049 E500     F       62             MOV     A,pBuf          ; Fetch pointer again
004B 900000   F       63             MOV     DPTR,#LedSel    ; Select. Table address
004E 93               64             MOVC    A,@A+DPTR
004F F5A0             65             MOV     P2,A
0051                  66     Key_Check:
0051 E500     F       67             MOV     A,pBuf
0053 54FC             68             ANL     A,#0FCh
0055 704A             69             JNZ     Pointer_Adapt   ; if pBuf >= 4 No Keys
0057 E500     F       70             MOV     A,pBuf
0059 2400     F       71             ADD     A,#KeyLast
005B F8               72             MOV     R0,A
005C E6               73             MOV     A,@R0           ; fetch Last Key
005D 85A000   F       74             MOV     KeyTmp,P2
0060 53000F   F       75             ANL     KeyTmp,#0Fh     ; fetch current key state
0063 6500     F       76             XRL     A,KeyTmp
0065 603A             77             JZ      Pointer_Adapt
0067 A600     F       78             MOV     @R0,KeyTmp      ; newer state saved for next fetch
0069 B40105           79     Try1:   CJNE    A,#01,Try2
006C 750000   F       80             MOV     KeyTmp,#0
006F 8018             81             SJMP    LineCode
0071 B40205           82     Try2:   CJNE    A,#02,Try4
0074 750001   F       83             MOV     KeyTmp,#1
0077 8010             84             SJMP    LineCode
0079 B40405           85     Try4:   CJNE    A,#04,Try8
007C 750002   F       86             MOV     KeyTmp,#2
007F 8008             87             SJMP    LineCode
0081 B4081D           88     Try8:   CJNE    A,#08,Pointer_Adapt
0084 750003   F       89             MOV     KeyTmp,#3
0087 8000             90             SJMP    LineCode
0089                  91     LineCode:
0089 E500     F       92             MOV     A,pBuf
008B 23               93             RL      A
008C 23               94             RL      A
008D 2500     F       95             ADD     A,KeyTmp
008F D2E7             96             SETB    ACC.7
0091 F500     F       97             MOV     KeyTmp,A
0093 E5A0             98             MOV     A,P2
0095 540F             99             ANL     A,#0Fh
0097 640F            100             XRL     A,#0Fh
0099 6002            101             JZ      ReleaseKey      
009B 7440            102             MOV     A,#40h
009D                 103     ReleaseKey:
009D 2500     F      104             ADD     A,KeyTmp
009F F500     F      105             MOV     KeyCode,A
00A1                 106     Pointer_Adapt:  
00A1 0500     F      107             INC     pBuf
00A3 C3              108             CLR     C
00A4 7405            109             MOV     A,#5
00A6 9500     F      110             SUBB    A,pBuf
00A8 5003            111             JNC     Exit_T0
00AA E4              112             CLR     A
00AB F500     F      113             MOV     pBuf,A
00AD                 114     Exit_T0:
00AD A8F0            115             MOV     R0,B
00AF D0F0            116             POP     B
00B1 D083            117             POP     DPH
00B3 D082            118             POP     DPL             
00B5 D0D0            119             POP     PSW
00B7 D0E0            120             POP     ACC
00B9 32              121             RETI
                     122     ;CharTab:DB 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h,080h,090h,088h,083h,0C6h,0A1h,086h,08Eh
                             ,0FFh
00BA 039F250D        123     CharTab:DB 003h,09fh,025h,00dh,099h,049h,041h,01fh,001h,009h,011h,0c1h,063h,085h,061h,071h,
A51 MACRO ASSEMBLER  T0_LEDDRV                                                            11/15/2005 13:59:28 PAGE     3

                             0FFh         
00BE 9949411F                
00C2 010911C1                
00C6 63856171                
00CA FF                      
00CB 1F3F5F7F        124     LedSel: DB 1Fh,3Fh,5Fh,7Fh,9Fh,0BFh
00CF 9FBF                    
                     125             END
A51 MACRO ASSEMBLER  T0_LEDDRV                                                            11/15/2005 13:59:28 PAGE     4

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
CHARTAB. . . . . .  C ADDR   00BAH   R   SEG=T0CODE
DISPBUF. . . . . .  D ADDR   0001H   R   SEG=T0DATA
DISPLAY. . . . . .  C ADDR   003BH   R   SEG=T0CODE
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET0. . . . . . . .  B ADDR   00A8H.1 A   
EXIT_T0. . . . . .  C ADDR   00ADH   R   SEG=T0CODE
INITT0 . . . . . .  C ADDR   0000H   R   SEG=T0CODE
KEYCODE. . . . . .  D ADDR   000CH   R   SEG=T0DATA
KEYLAST. . . . . .  D ADDR   0007H   R   SEG=T0DATA
KEYLASTVALUE . . .  C ADDR   0008H   R   SEG=T0CODE
KEYTMP . . . . . .  D ADDR   000BH   R   SEG=T0DATA
KEY_CHECK. . . . .  C ADDR   0051H   R   SEG=T0CODE
LEDSEL . . . . . .  C ADDR   00CBH   R   SEG=T0CODE
LINECODE . . . . .  C ADDR   0089H   R   SEG=T0CODE
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
PBUF . . . . . . .  D ADDR   0000H   R   SEG=T0DATA
POINTER_ADAPT. . .  C ADDR   00A1H   R   SEG=T0CODE
PSW. . . . . . . .  D ADDR   00D0H   A   
RELEASEKEY . . . .  C ADDR   009DH   R   SEG=T0CODE
T0CODE . . . . . .  C SEG    00D1H       REL=UNIT
T0DATA . . . . . .  D SEG    000DH       REL=UNIT
T0_ISR . . . . . .  C ADDR   0025H   R   SEG=T0CODE
TH0. . . . . . . .  D ADDR   008CH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TRY1 . . . . . . .  C ADDR   0069H   R   SEG=T0CODE
TRY2 . . . . . . .  C ADDR   0071H   R   SEG=T0CODE
TRY4 . . . . . . .  C ADDR   0079H   R   SEG=T0CODE
TRY8 . . . . . . .  C ADDR   0081H   R   SEG=T0CODE


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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