📄 main.ls1
字号:
138 PUBLIC _?InitS0
139
---- 140 RSEG ?XD?MAIN
0000 141 TestS0Stk: DS 492
01EC 142 TestTaskStk: DS 492
143 ;
144 ; #ifndef OS_MASTER_FILE
145 ; #include "includes.h"
146 ; #endif
147 ; //声明任务堆栈
148 ; OS_STK *TestTaskStk[164];
149 ;
150 ; OS_STK *TestS0Stk[164];
151 ;
152 ; void InitS0 ( unsigned int baud_rate ) TASK_REENTRANT //baud_rate,n,8,1
153
---- 154 RSEG ?PR?_?InitS0?MAIN
0000 155 _?InitS0:
156 USING 0
157 ; SOURCE LINE # 10
0000 90FFFE 158 MOV DPTR,#0FFFEH
0003 120000 F 159 LCALL ?C?ADDXBP
0006 EE 160 MOV A,R6
0007 F0 161 MOVX @DPTR,A
0008 A3 162 INC DPTR
0009 EF 163 MOV A,R7
000A F0 164 MOVX @DPTR,A
165 ; {
166 ; ES = 0;//1;
//EA=1;ET1=1;
167 ; SOURCE LINE # 12
000B C2AC 168 CLR ES
169 ; SCON = 0x50;
/* 0x52;//SCON */
170 ; SOURCE LINE # 13
000D 759850 171 MOV SCON,#050H
172 ; TMOD |= 0x20;
/*0x20;// TMOD */
173 ; SOURCE LINE # 14
0010 438920 174 ORL TMOD,#020H
175 ; TCON = 0xc0;//0x60;
/*0x60;// TCON */
176 ; SOURCE LINE # 15
0013 7588C0 177 MOV TCON,#0C0H
178 ; PCON = PCON&0x7f;
179 ; SOURCE LINE # 16
0016 53877F 180 ANL PCON,#07FH
181 ; switch(baud_rate){
//波特率设置
182 ; SOURCE LINE # 17
0019 850083 F 183 MOV DPH,?C_XBP
A51 MACRO ASSEMBLER MAIN 05/17/2005 11:20:01 PAGE 4
001C 850082 F 184 MOV DPL,?C_XBP+01H
001F E0 185 MOVX A,@DPTR
0020 FE 186 MOV R6,A
0021 A3 187 INC DPTR
0022 E0 188 MOVX A,@DPTR
0023 8EF0 189 MOV B,R6
0025 120000 F 190 LCALL ?C?ICASE
0028 0000 F 191 DW ?C0002
002A 04B0 192 DW 04B0H
002C 0000 F 193 DW ?C0003
002E 0960 194 DW 0960H
0030 0000 F 195 DW ?C0004
0032 12C0 196 DW 012C0H
0034 0000 F 197 DW ?C0005
0036 2580 198 DW 02580H
0038 0000 F 199 DW ?C0006
003A 4B00 200 DW 04B00H
003C 0000 F 201 DW ?C0007
003E 9600 202 DW 09600H
0040 0000 203 DW 00H
0042 0000 F 204 DW ?C0005
205 ; case 1200:
206 ; SOURCE LINE # 18
0044 207 ?C0002:
208 ; TL1 = 0xe8;TH1 = 0Xe8;break;
//1200
209 ; SOURCE LINE # 19
0044 758BE8 210 MOV TL1,#0E8H
0047 758DE8 211 MOV TH1,#0E8H
004A 8028 212 SJMP ?C0009
213 ; case 2400:
214 ; SOURCE LINE # 20
004C 215 ?C0003:
216 ; TL1 = 0xf4;TH1 = 0Xf4;break;
//2400
217 ; SOURCE LINE # 21
004C 758BF4 218 MOV TL1,#0F4H
004F 758DF4 219 MOV TH1,#0F4H
0052 8020 220 SJMP ?C0009
221 ; case 4800:
222 ; SOURCE LINE # 22
0054 223 ?C0004:
224 ; TL1 = 0xfa;TH1 = 0Xfa;break;
//4800
225 ; SOURCE LINE # 23
0054 758BFA 226 MOV TL1,#0FAH
0057 758DFA 227 MOV TH1,#0FAH
005A 8018 228 SJMP ?C0009
229 ; case 9600:
230 ; SOURCE LINE # 24
005C 231 ?C0005:
232 ; TL1 = 0xfd;TH1 = 0Xfd;break;
//9600
233 ; SOURCE LINE # 25
005C 8010 234 SJMP ?C0026
235 ; case 19200:
236 ; SOURCE LINE # 26
005E 237 ?C0006:
238 ; PCON = PCON|0x80;TL1 = 0xfd;TH1 = 0Xfd;break;//19200
239 ; SOURCE LINE # 27
005E 438780 240 ORL PCON,#080H
0061 800B 241 SJMP ?C0027
242 ; case 38400:
243 ; SOURCE LINE # 28
0063 244 ?C0007:
245 ; PCON = PCON|0x80;TL1 = 0xfe;TH1 = 0Xfe;break;//38400
A51 MACRO ASSEMBLER MAIN 05/17/2005 11:20:01 PAGE 5
246 ; SOURCE LINE # 29
0063 438780 247 ORL PCON,#080H
0066 758BFE 248 MOV TL1,#0FEH
0069 758DFE 249 MOV TH1,#0FEH
006C 8006 250 SJMP ?C0009
251 ; default:
252 ; SOURCE LINE # 30
006E 253 ?C0026:
006E 254 ?C0027:
006E 758BFD 255 MOV TL1,#0FDH
0071 758DFD 256 MOV TH1,#0FDH
257 ; TL1=0xfd;TH1=0Xfd;break;
//9600
258 ; }
259 ; SOURCE LINE # 32
260 ; }
261 ; SOURCE LINE # 33
0074 262 ?C0009:
0074 900002 263 MOV DPTR,#02H
0077 020000 F 264 LJMP ?C?ADDXBP
265 ; END OF _?InitS0
266
267 ; //***************************************************************************************
*****************
268 ; //
269 ; // 设置时钟节拍中断函数_?OSTickISR的tick率
270 ; // NOTE: 1: 一般tick率为10-100次/秒;
271 ; // 2: 特别注意不要在这里启动时钟节拍!!!
272 ; // 3: 最好在第一个任务(优先级最高的任务)里启动tick时钟节拍
273 ; // 4: 请尽量不要更改中断优先级寄存器IP的低2位,当INT0与T0同级时就会影
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -