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

📄 temperasm.lst

📁 DSP开发的DS18B20汇编程序
💻 LST
字号:
TMS320C3x/4x COFF AssemblerVersion 5.12     Mon Nov 15 15:34:24 2004
Copyright (c) 1987-1999 Texas Instruments Incorporatedasm30 temperasm.asm temperasm.obj -ls -v30 

temperasm.asm                                                        PAGE    1

        1                                .global _xx
        2          0000000a date_size    .set     0ah
        3 00000000          _xx           .usect   ".out", date_size
        4 00000000                       .text 
        5 00000000          PARMS: 
        6 00000000 00c00000 dsadd0      .word 0c00000h
        7 00000001 00c00001 dsaddr1     .word 0c00001h 
        8 00000002 00000000-destaddr2   .word _xx
        9                        
       10 00000003                       .text
       11                                .global _temper
       12                   ;测温程序
       13 00000003          _temper:
       14                           ;ldp   PARMS
       15                           ;ldi   @dsaddr1,  ar1 ;定时入口
       16                           ;call  set
       17 00000003 6200001d'        call  rsreset;   复位传感器
       18 00000004 0863000f         ldi   0fh,     r3
       19 00000005 18030002         subi  r2,      r3;检测有无传感器
       20 00000006 6a060001         bnz   tss2       ;有传感器
       21 00000007 6000001c'        br    tss20      ;无传感器
       22 00000008 086700cc tss2:   ldi   0cch,    r7;跳过rom匹配
       23 00000009 62000033'        call  tswrite
       24 0000000a 08670044         ldi   044h,    r7;转换命令
       25 0000000b 62000033'        call  tswrite
       26 0000000c 08618235         ldi   8235h,   r1;延时1s 
       27 0000000d 02e1ffff         and   0ffffh,   r1
       28 0000000e 62000061'        call  delay15
       29 0000000f 08618235         ldi   8235h,   r1;延时1s
       30 00000010 02e1ffff         and   0ffffh,   r1
       31 00000011 62000061'        call  delay15
       32 00000012 6200001d'        call  rsreset
       33 00000013 0863000f         ldi   0fh,     r3
       34 00000014 18030002         subi  r2,      r3;检测有无传感器
       35 00000015 6a060001         bnz   tss1       ;有传感器
       36 00000016 6000001c'        br    tss20      ;无传感器
       37 00000017 086700cc tss1:   ldi   0cch,    r7;跳过rom匹配
       38 00000018 62000033'        call  tswrite
       39 00000019 086700be         ldi   0beh,    r7;读命令
       40 0000001a 62000033'        call  tswrite
       41 0000001b 62000044'        call  tsread     ;读温度值
       42                           
       43 0000001c          tss20:
       44 0000001c 78800000         rets             ;定时返回
       45                   ;复位         
       46 0000001d          rsreset:
       47 0000001d 08290001'        ldi   @dsaddr1,  ar1
       48 0000001e 62000071'        call  logic1        ;write
       49 0000001f 62000079'        call  set
       50 00000020 6200007d'        call  clear      ;发复位脉冲
       51 00000021 08610028         ldi   28h,     r1;延时600us
       52 00000022 62000061'        call  delay15
       53                          
       54 00000023 62000075'        call   logic2; 释放总线
TMS320C3x/4x COFF AssemblerVersion 5.12     Mon Nov 15 15:34:24 2004
Copyright (c) 1987-1999 Texas Instruments Incorporatedasm30 temperasm.asm temperasm.obj -ls -v30 

temperasm.asm                                                        PAGE    2

       55 00000024 08610003             ldi   3h,       r1 ;延时45us等待
       56 00000025 62000061'        call  delay15
       57                           
       58 00000026 0848c100                 ldi   *ar1,    ar0
       59 00000027 02e80001         and   1,       ar0
       60 00000028 08630001         ldi   1,       r3
       61 00000029 04830008         cmpi  ar0,     r3
       62 0000002a 6a060001         bnz   tsr2     
       63 0000002b 6000002e'        br    tsr3
       64                           
       65 0000002c 08620000 tsr2:   ldi   00h,     r2;有传感器
       66 0000002d 60000030'        br    tsr4
       67 0000002e 0862000f tsr3:   ldi   0fh,     r2;无传感器       r2为标志    
       68 0000002f 60000032'        br    tsr5
       69 00000030 08610028 tsr4:   ldi   28h,     r1;延时600us 
       70                           ;ldi   1dh,     r1;延时435us
       71 00000031 62000061'        call  delay15
       72 00000032          tsr5:   ;call  set
       73 00000032 78800000         rets
       74                   
       75                   
       76                   ;写入子程序
       77 00000033 08290001'tswrite:ldi   @dsaddr1,  ar1
       78 00000034 08030007         ldi   r7,      r3                  ;  R7?
       79 00000035 08660008         ldi   08h,     r6;循环8次,写1个字节
       80 00000036 62000079'tsw1:   call  set
       81 00000037 6200006b'        call  delay2     ;高电平延时2us
       82                   
       83                   
       84 00000038 6200007d'        call  clear     ;产生写信?
       85                           ;ldi   1,      r1
       86                           ;call  delay15     
       87 00000039 6200006b'        call  delay2    ;  延时2us
       88                           
       89 0000003a 08040003         ldi   r3,      r4
       90 0000003b 02e40001         and   1,       r4;取最低位数
       91 0000003c 1544c100         sti   r4,      *ar1;命令字按位依次送给ds18b20  
       92                           ;ldi   1,       r1;延时15us,  ds18b20read 
       93                           
       94 0000003d 08610003         ldi   3,       r1;延时45us,  ds18b20read
       95 0000003e 62000061'        call  delay15
       96                           
       97                           ;call  set
       98                           ;ldi   3,       r1;延时约45us保证持续写>60us     ???
       99                           ;call  delay15
      100 0000003f 12e3ffff         ror   r3         ;rotate right
      101 00000040 18660001         subi  1,       r6;判断是否传完1个字节
      102 00000041 6a06fff4         bnz   tsw1  
      103 00000042 62000079'        call  set        ;发送完毕,置1
      104 00000043 78800000         rets
      105                   
      106                   
      107                   ;读出子程序
      108 00000044          tsread:;ldp    PARMS
TMS320C3x/4x COFF AssemblerVersion 5.12     Mon Nov 15 15:34:24 2004
Copyright (c) 1987-1999 Texas Instruments Incorporatedasm30 temperasm.asm temperasm.obj -ls -v30 

temperasm.asm                                                        PAGE    3

      109 00000044 082a0002'       ldi    @destaddr2,  ar2;存储从ds18b20收到的9个字节到806000h开始的单元
      110 00000045 08650009        ldi    09h,     r5;读9个寄存器 
      111                          
      112 00000046 08660008 tsrd1: ldi    08h,     r6;循环8次,读1个字节 
      113 00000047 08630000        ldi    0,       r3
      114 00000048 08290001'tsrd2: ldi    @dsaddr1,  ar1
      115 00000049 62000079'       call   set
      116 0000004a 6200006b'       call   delay2     ;高电平延时2us
      117                          
      118 0000004b 6200007d'       call   clear       ;产生读信号
      119 0000004c 6200006b'       call   delay2      ;低电平延时2us
      120                          
      121 0000004d 62000075'       call   logic2      ;释放总线               
      122                          
      123                          ;ldi    1,       r1;延时15us  ,(maybe too long)
      124                          ;call   delay15
      125 0000004e 6200006b'       call   delay2
      126 0000004f 6200006b'       call   delay2
      127                          ;call   delay2  
      128                          ;call   delay2
      129 00000050 0844c100        ldi    *ar1,    r4
      130 00000051 02e40001        and    1,       r4    
      131 00000052 10030004        or     r4,      r3
      132 00000053 12e3ffff        ror    r3   
      133                          
      134 00000054 08610004        ldi    4,       r1;延时约45ns保证持续读>60ns,delay60 seconds
      135 00000055 62000061'       call   delay15
      136 00000056 18660001        subi   1,       r6;判断是否读完1个字节
      137 00000057 6a06fff0        bnz    tsrd2  
      138 00000058 62000079'       call  set        ;发送完毕,置1
      139 00000059 08620018         ldi             24,             r2
      140 0000005a 12e3ffff tsrd3:  ror             r3
      141 0000005b 18620001                 subi    1,              r2
      142 0000005c 6a06fffd             bnz         tsrd3
      143                                   
      144                         ; ldi    -24,     r4;放在r3低8位  
      145                         ; ash    r4,      r3
      146 0000005d 15432201         sti    r3,      *ar2++(1)
      147                             
      148 0000005e 18650001        subi   1,       r5;判断是否读完9个寄存器
      149 0000005f 6a06ffe6        bnz    tsrd1
      150 00000060 78800000        rets
      151                   
      152                   
      153                   
      154                   ;延时子程序(15us)
      155 00000061 0f200000 delay15:  push   r0
      156 00000062 0f210000           push   r1
      157 00000063 086001b9 delay151: ldi   1b9h,    r0 ;15us
      158 00000064 18600001 del15:   subi  1,       r0
      159 00000065 6a06fffe          bnz   del15
      160 00000066 18610001          subi  1,       r1  ;delay R1*15us
      161 00000067 6a06fffb          bnz   delay151  
      162                            
TMS320C3x/4x COFF AssemblerVersion 5.12     Mon Nov 15 15:34:24 2004
Copyright (c) 1987-1999 Texas Instruments Incorporatedasm30 temperasm.asm temperasm.obj -ls -v30 

temperasm.asm                                                        PAGE    4

      163 00000068 0e210000           pop    r1
      164 00000069 0e200000           pop    r0   
      165 0000006a 78800000          rets
      166                   
      167                   
      168                   ;延时2us
      169 0000006b 0f200000 delay2:  push   r0
      170 0000006c 0860003a          ldi   3Ah,    r0 ;延时2us
      171 0000006d 18600001 del2:    subi  1,    r0
      172 0000006e 6a06fffe          bnz   del2   
      173 0000006f 0e200000          pop   r0          
      174 00000070 78800000          rets
      175                   
      176                   
      177                   
      178                   
      179                   ; logical control
      180 00000071 082b0000'logic1: ldi    @dsadd0,  ar3;select74l244,write data
      181 00000072 08600000         ldi    0h,        r0
      182 00000073 1540c300         sti    r0,       *ar3
      183 00000074 78800000         rets                        
      184                                                   
      185 00000075 082b0000'logic2: ldi    @dsadd0,  ar3;close74l244,read data
      186 00000076 08600007         ldi    7h,        r0
      187 00000077 1540c300         sti    r0,       *ar3
      188 00000078 78800000         rets
      189                   
      190                   
      191                   ;set/clear dsadd1   
      192 00000079 62000071'set:    call  logic1
      193 0000007a 08600001         ldi   1,       r0
      194 0000007b 1540c100         sti   r0,      *ar1
      195 0000007c 78800000         rets
      196                           
      197 0000007d 62000071'clear:  call  logic1
      198 0000007e 08600000         ldi   0,       r0
      199 0000007f 1540c100         sti   r0,      *ar1
      200 00000080 78800000         rets
      201                   
      202                   
      203                   
      204                   
      205                   
      206                   
      207                   
      208                   
      209                   
      210                   

 No Errors,  No Warnings

⌨️ 快捷键说明

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