📄 temperasm.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 + -