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

📄 g d f s.lst

📁 AT89S52的一个红外发射程序
💻 LST
字号:
A51 MACRO ASSEMBLER  G_D_F_S                                                              04/28/2007 20:38:09 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN G D F S.OBJ
ASSEMBLER INVOKED BY: D:\Program Files\keil\C51\BIN\A51.EXE G D F S.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;****************************************
                       2     ;编码 发射程序
0000 758130            3             MOV SP,#30H
0003 758900            4     ZXY:    MOV TMOD,#00H
0006 758A19            5             MOV TL0,#19H    ;8ms   p2.0 38K载波
0009 758C19            6             MOV TH0,#19H
000C D2A0              7             SETB P2.0
000E D28C              8             SETB TR0    ;启动定时器0 
0010 758920            9     NEXT_01:MOV TMOD,#20H
0013 758BF4           10             MOV TL1,#0F4H     ;38K载波
0016 758DF4           11             MOV TH1,#0F4H
0019 D28E             12             SETB TR1      ;启动定时器1
001B 108F02           13     HERE_03:JBC TF1,NEXT_03
001E 80FB             14            SJMP HERE_03
0020 758BF4           15     NEXT_03:MOV TL1,#0F4H
0023 758DF4           16            MOV TH1,#0F4H
0026 B2A0             17            CPL P2.0
0028 308DE5           18     HERE_01:JNB TF0,NEXT_01  ;if T0 count  time not over,   next
002B C28E             19            CLR TR1         ;TR1 -- T1 运行控制 1---则终止定时
                      20     
002D 020032           21            LJMP KAISHI
                      22                            ;if T0  count time over,then off 38k载波
0030 80E9             23            SJMP HERE_03
                      24         
                      25     
                      26     ;****************************************
                      27     ;****************************************
                      28          
  0009                29            COUNT DATA  09H ; 计数^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                             ^^^^^^^^^^^^^^^^^^^^^
0032 750A1E           30     KAISHI: MOV   0AH,#30;发送数据最大个数
                      31           ; MOV SP,#30H
0035 E4               32     ZHXY:  CLR A
0036 F509             33            MOV COUNT,A
0038 7850             34            MOV R0,  #50H
                      35     
                      36      
003A 755055           37     START:       MOV 50H,#01010101B
                      38     ;**********************************************
                      39     
                      40     
                      41     
                      42     
003D 7A02             43           MOV R2,#2   ;计数反码正码一共 发射2次
003F E6               44     MAIN: MOV A,@R0
                      45                ; INC R0
0040 FE               46           MOV R6,A    ;暂存数据---------在R7中
                      47          
0041 7D08             48     LOOP:MOV R5,#8     ; 一个数据有8为
0043 C3               49           CLR C
0044 13               50     LOOP1: RRC A
0045 500A             51           JNC  BM_0     ;判断是0还是1,为编码准备
0047 020058           52           LJMP BM_1
004A EE               53     LOOP2:MOV A,R6   ;发射数据 反码
004B F4               54           CPL A
                      55     
004C DAF3             56           DJNZ R2, LOOP
004E 02005F           57           LJMP SPEAK
A51 MACRO ASSEMBLER  G_D_F_S                                                              04/28/2007 20:38:09 PAGE     2

                      58     ;*******************************
0051 1200A1           59     BM_0:LCALL BM_bitO   ;编码0
0054 DDEE             60          DJNZ R5,LOOP1
0056 80F2             61          JMP LOOP2
                      62     
0058 1200E1           63     BM_1:LCALL BM_bit1   ;编码1
005B DDE7             64          DJNZ R5,LOOP1
005D 80EB             65          JMP LOOP2
                      66     ;********************************
                      67     
                      68     
                      69     ;**********发射提示OK ***********
005F 00               70     SPEAK: NOP
                      71     
                      72     ;*********************************
                      73     
                      74     
                      75     
0060 D0F0             76     ZHXY0: POP B
0062 A8F0             77            MOV R0,B
0064 08               78            INC R0
0065 D50AD2           79            DJNZ 0AH,START
                      80            ;LJMP  START
                      81     ;**************************
                      82     ;**************************************************************
                      83     ;如果一直为低电平就认为发射结束
                      84     ;**************************************************************
0068 7B03             85           MOV R3,#3
006A 758900           86     ZHXY_216:   MOV TMOD,#00H
006D 758A19           87             MOV TL0,#19H    ;8ms   p2.0 38K载波
0070 758C19           88             MOV TH0,#19H
0073 D2A0             89             SETB P2.0
0075 D28C             90             SETB TR0    ;启动定时器
0077 758920           91     NEXT_010:MOV TMOD,#20H
007A 758BF4           92             MOV TL1,#0F4H     ;38K载波
007D 758DF4           93             MOV TH1,#0F4H
0080 D28E             94             SETB TR1      ;启动定时器1
0082 108F02           95     HERE_030:JBC TF1,NEXT_030
0085 80FB             96            SJMP HERE_030
0087 758BF4           97     NEXT_030:MOV TL1,#0F4H
008A 758DF4           98            MOV TH1,#0F4H
008D B2A0             99            CPL P2.0
008F 308DE5          100     HERE_010:JNB TF0,NEXT_010  ;if T0 count  time not over,   next
0092 C28E            101            CLR TR1         ;TR1 -- T1 运行控制 1---则终止定时
                     102     
0094 020099          103            LJMP BBB
                     104                         ;if T0  count time over,then off 38k载波
0097 80E9            105            SJMP HERE_030
                     106     ;*******************************************************************       
0099 DBCF            107     BBB: DJNZ R3,ZHXY_216
009B 02009E          108          LJMP OVER
009E 020003          109     OVER:LJMP ZXY
                     110     ;**************************************
                     111     ;**************************************        
                     112      
                     113     
                     114     
                     115     
                     116     
                     117     
                     118     
                     119     
                     120     
                     121     
                     122     
                     123     
A51 MACRO ASSEMBLER  G_D_F_S                                                              04/28/2007 20:38:09 PAGE     3

                     124     
                     125     
                     126     
                     127     
                     128     
                     129     
                     130     
                     131     
                     132     
                     133     
                     134     ;  子程序......
                     135     ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                     136     
00A1 D2A0            137     BM_bitO:SETB P2.0
00A3 758900          138             MOV TMOD,#00H   ;bian ma 0
00A6 758A1C          139             MOV TL0,#1CH    ;0.56ms  p2.0 高电平
00A9 758CEF          140             MOV TH0,#0EFH
00AC D28C            141             SETB TR0   ;启动定时器0
                     142     
00AE 108D02          143     HERE00: JBC TF0,NEXT_00      ; if TF0 is 1,then next,else wait!!!
00B1 80FB            144             SJMP HERE00
                     145     
00B3 758900          146     NEXT_00:MOV TMOD,#00H
00B6 758A17          147             MOV TL0,#17H    ;0.565ms   p2.0 38K载波
00B9 758CEF          148             MOV TH0,#0EFH
00BC C2A0            149             CLR P2.0
00BE D28C            150             SETB TR0    ;启动定时器0
                     151     
00C0 758920          152     NEXT01:MOV TMOD,#20H
00C3 758BF4          153            MOV TL1,#0F4H     ;38K载波
00C6 758DF4          154            MOV TH1,#0F4H
00C9 D28E            155            SETB TR1      ;启动定时器1
00CB 108F02          156     HERE03:JBC TF1,NEXT03
00CE 80FB            157            SJMP HERE03
00D0 758BF4          158     NEXT03:MOV TL1,#0F4H
00D3 758DF4          159            MOV TH1,#0F4H
00D6 B2A0            160            CPL P2.0
00D8 308DE5          161     HERE01:JNB TF0,NEXT01  ;if T0 count  time not over,   next
00DB C28E            162            CLR TR1      ;TR1 -- T1 运行控制 1---则终止定时
                     163     
00DD 22              164            RET           ;if T0  count time over,then off 38k载波
00DE 80EB            165            SJMP HERE03
                     166     
00E0 22              167            RET
                     168     ;************************************
00E1 758900          169     BM_bit1:MOV TMOD,#00H      ;编码 1
00E4 758A1C          170             MOV TL0,#1CH       ;0.56ms high lever
00E7 758CEF          171             MOV TH0,#0EFH
00EA D28C            172             SETB TR0
00EC D2A0            173             SETB P2.0
                     174     
                     175     
00EE 108D02          176     HERE10:JBC TF0,NEXT1
00F1 80FB            177            SJMP HERE10
                     178     
00F3 758900          179     NEXT1:MOV TMOD,#00H  ;tipe 00 of T0   1.685ms-----6639
00F6 758A0F          180           MOV TL0,#0FH
00F9 758CCF          181           MOV TH0,#0CFH
00FC D28C            182           SETB TR0
00FE C2A0            183           CLR P2.0
                     184     
                     185     
0100 758920          186     NEXT2:MOV TMOD,#20H
0103 758BF4          187           MOV TL1,#0F4H
0106 758DF4          188           MOV TH1,#0F4H
0109 D28E            189           SETB TR1
A51 MACRO ASSEMBLER  G_D_F_S                                                              04/28/2007 20:38:09 PAGE     4

010B 108F02          190     HERE3:JBC TF1,NEXT3
010E 80FB            191           SJMP HERE3
0110 758BF4          192     NEXT3:MOV TL1,#0F4H
0113 758DF4          193           MOV TH1,#0F4H
0116 B2A0            194           CPL P2.0
                     195     
0118 308DE5          196     HERE02:JNB TF0,NEXT2
011B C28E            197            CLR TR1
011D 22              198             RET
011E 80EB            199           SJMP HERE3
                     200     
                     201     
                     202     ;************************************
                     203     ;延时程序
0120                 204     DELAY2400: ;1.085x ((245x9)+5)=2397.85
0120 7FF5            205          MOV R7,#245
0122                 206         DELAY2400_A:
0122 00              207         NOP
0123 00              208         NOP
0124 00              209         NOP
0125 00              210         NOP
0126 00              211         NOP
0127 00              212         NOP
0128 00              213         NOP
0129 DFF7            214         DJNZ   R7,DELAY2400_A
                     215     
012B 22              216         RET
                     217     ;*************************************
                     218     END
A51 MACRO ASSEMBLER  G_D_F_S                                                              04/28/2007 20:38:09 PAGE     5

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


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

B. . . . . . . . .  D ADDR   00F0H   A   
BBB. . . . . . . .  C ADDR   0099H   A   
BM_0 . . . . . . .  C ADDR   0051H   A   
BM_1 . . . . . . .  C ADDR   0058H   A   
BM_BIT1. . . . . .  C ADDR   00E1H   A   
BM_BITO. . . . . .  C ADDR   00A1H   A   
COUNT. . . . . . .  D ADDR   0009H   A   
DELAY2400. . . . .  C ADDR   0120H   A   
DELAY2400_A. . . .  C ADDR   0122H   A   
HERE00 . . . . . .  C ADDR   00AEH   A   
HERE01 . . . . . .  C ADDR   00D8H   A   
HERE02 . . . . . .  C ADDR   0118H   A   
HERE03 . . . . . .  C ADDR   00CBH   A   
HERE10 . . . . . .  C ADDR   00EEH   A   
HERE3. . . . . . .  C ADDR   010BH   A   
HERE_01. . . . . .  C ADDR   0028H   A   
HERE_010 . . . . .  C ADDR   008FH   A   
HERE_03. . . . . .  C ADDR   001BH   A   
HERE_030 . . . . .  C ADDR   0082H   A   
KAISHI . . . . . .  C ADDR   0032H   A   
LOOP . . . . . . .  C ADDR   0041H   A   
LOOP1. . . . . . .  C ADDR   0044H   A   
LOOP2. . . . . . .  C ADDR   004AH   A   
MAIN . . . . . . .  C ADDR   003FH   A   
NEXT01 . . . . . .  C ADDR   00C0H   A   
NEXT03 . . . . . .  C ADDR   00D0H   A   
NEXT1. . . . . . .  C ADDR   00F3H   A   
NEXT2. . . . . . .  C ADDR   0100H   A   
NEXT3. . . . . . .  C ADDR   0110H   A   
NEXT_00. . . . . .  C ADDR   00B3H   A   
NEXT_01. . . . . .  C ADDR   0010H   A   
NEXT_010 . . . . .  C ADDR   0077H   A   
NEXT_03. . . . . .  C ADDR   0020H   A   
NEXT_030 . . . . .  C ADDR   0087H   A   
OVER . . . . . . .  C ADDR   009EH   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
SP . . . . . . . .  D ADDR   0081H   A   
SPEAK. . . . . . .  C ADDR   005FH   A   
START. . . . . . .  C ADDR   003AH   A   
TF0. . . . . . . .  B ADDR   0088H.5 A   
TF1. . . . . . . .  B ADDR   0088H.7 A   
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
ZHXY . . . . . . .  C ADDR   0035H   A   
ZHXY0. . . . . . .  C ADDR   0060H   A   
ZHXY_216 . . . . .  C ADDR   006AH   A   
ZXY. . . . . . . .  C ADDR   0003H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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