prac10_indep.lst
来自「msp430系列开发板源代码」· LST 代码 · 共 1,670 行 · 第 1/5 页
LST
1,670 行
177 dec_fun
1238 d2b30c02 178 bit.b #1,&fun_flag
123c 2024 179 jz ret_dec
123e d2930902 180 cmp.b #01h,&inc_dec_buffer
1242 0a2c 181 jhs loop_dec
1244 d2930a02 182 cmp.b #1,&fun_buffer
1248 0424 183 jeq dec_hour
124a f24060000902 184 mov.b #60h,&inc_dec_buffer
1250 033c 185 jmp loop_dec
1252 f24024000902 186 dec_hour mov.b #24h,&inc_dec_buffer
1258 f2b00f000902 187 loop_dec bit.b #0fh,&inc_dec_buffer
125e 0624 188 jz set_dec
1260 d2830902 189 unset_dec dec.b &inc_dec_buffer
1264 12c3 190 clrc
1266 c2a30902 191 dadd.b #0,&inc_dec_buffer
126a 043c 192 jmp dec_move
126c f28006000902 193 set_dec sub.b #06,&inc_dec_buffer
1272 f63f 194 jmp unset_dec
1274 5f420a02 195 dec_move mov.b &fun_buffer,R15
1278 df4209020002 196 mov.b &inc_dec_buffer,second_flag(R15)
197
127e 3041 198 ret_dec ret
199 ;------------------------------------------------------
200 ;
201 ;------------------------------------------------------
202 fun_fun
1280 d2530a02 203 inc.b &fun_buffer
1284 d2930a02 204 cmp.b #1,&fun_buffer
1288 0b24 205 jeq fun_star_hour
128a e2930a02 206 cmp.b #2,&fun_buffer
128e 0e24 207 jeq fun_min
1290 f29003000a02 208 cmp.b #3,&fun_buffer
1296 0e24 209 jeq fun_second
1298 e2920a02 210 cmp.b #4,&fun_buffer
129c 0f24 211 jeq fun_stop
212
129e 3041 213 fun_ret ret
214 ;-------------------------------------------------------
215 fun_star_hour
12a0 d2d30c02 216 bis.b #1,&fun_flag
217
12a4 d24201020902 218 mov.b &hour,&inc_dec_buffer
219
12aa f93f 220 jmp fun_ret
221 ;-------------------------------------------------------
222 fun_min
12ac d24202020902 223 mov.b &min,&inc_dec_buffer
12b2 f53f 224 jmp fun_ret
225 ;-------------------------------------------------------
226 fun_second
12b4 d24203020902 227 mov.b &second,&inc_dec_buffer
12ba f13f 228 jmp fun_ret
229 ;-------------------------------------------------------
230 fun_stop
12bc c2430c02 231 clr.b &fun_flag
12c0 c04348ef 232 clr.b fun_buffer
12c4 ec3f 233 jmp fun_ret
234
235 ;----------------------------------------------------
236 ;
237 ;----------------------------------------------------
238 led_chang
12c6 1048ca12 239 br led_take(R8)
240 EVEN
241 led_take
12ca d612 242 dw second_table_h
12cc e212 243 dw second_table_l
12ce f212 244 dw min_table_h
12d0 fe12 245 dw min_table_l
12d2 1013 246 dw hour_table_h
12d4 1c13 247 dw hour_table_l
248
249
250 second_table_h
12d6 5e420302 251 mov.b &second,R14
12da f2402f000602 252 mov.b #2fh,&led_disp_bit
12e0 263c 253 jmp take_h
254 second_table_l
12e2 5e420302 255 mov.b &second,R14
12e6 f2401f000602 256 mov.b #1fh,&led_disp_bit
12ec c2430802 257 mov.b #00h,&dip
12f0 293c 258 jmp take_l
259
260
12f2 5e420202 261 min_table_h mov.b &min,R14
12f6 f2403b000602 262 mov.b #3bh,&led_disp_bit
12fc 183c 263 jmp take_h
264
12fe 5e420202 265 min_table_l mov.b &min,R14
1302 f24037000602 266 mov.b #37h,&led_disp_bit
1308 f24020000802 267 mov.b #20h,&dip
130e 1a3c 268 jmp take_l
269
1310 5e420102 270 hour_table_h mov.b &hour,R14
1314 f2403e000602 271 mov.b #3eh,&led_disp_bit
131a 093c 272 jmp take_h
273
131c 5e420102 274 hour_table_l mov.b &hour,R14
1320 f2403d000602 275 mov.b #3dh,&led_disp_bit
1326 f24020000802 276 mov.b #20h,&dip
132c 0b3c 277 jmp take_l
278
132e 4d4e 279 take_h mov.b R14,R13
1330 4d11 280 rra.b R13
1332 4d11 281 rra.b R13
1334 4d11 282 rra.b R13
1336 4d11 283 rra.b R13
1338 7df00f00 284 and.b #0fh,R13
133c d24dfa140502 285 mov.b led_table(R13),&led_disp_data
286
1342 3041 287 ret
288 take_l
1344 4d4e 289 mov.b R14,R13
1346 7df00f00 290 and.b #0fh,R13
134a d24dfa140502 291 mov.b led_table(R13),&led_disp_data
1350 d25208020502 292 add.b &dip,&led_disp_data
1356 3041 293 ret
294 ;----------------------------------------------------
295 ;
296 ;----------------------------------------------------
297
298 led_display
1358 d24205021900 299 mov.b &led_disp_data,&P3OUT ;send data
135e e2d31d00 300 bis.b #02h,&P4OUT ;open data choose
1362 e2c31d00 301 bic.b #02h,&P4OUT ;close data choose
302
303
1366 d0420602afec 304 mov.b &led_disp_bit,P3OUT
136c d2d31d00 305 bis.b #01h,&P4OUT ;open bit choose
1370 d2c31d00 306 bic.b #01h,&P4OUT ;close data choose
1374 3041 307 ret
308 ;----------------------------------------------------
309 ;
310 ;----------------------------------------------------
311 lcd_display
1376 f24080000802 312 mov.b #80h,&dip
137c 7f409100 313 mov.b #LCDM1,R15
314 dis_second
1380 5d420302 315 mov.b &second,R13
1384 4d11 316 rra.b R13
1386 4d11 317 rra.b R13
1388 4d11 318 rra.b R13
138a 4d11 319 rra.b R13
138c 7df00f00 320 and.b #0fh,R13
1390 5e4d0615 321 mov.b lcd_table(R13),R14
1394 cf4e0100 322 mov.b R14,1(R15)
1398 5d420302 323 mov.b &second,R13
139c 7df00f00 324 and.b #0fh,R13
13a0 5e4d0615 325 mov.b lcd_table(R13),R14
13a4 cf4e0000 326 mov.b R14,0(R15)
327
328 dis_min
13a8 5d420202 329 mov.b &min,R13
13ac 4d11 330 rra.b R13
13ae 4d11 331 rra.b R13
13b0 4d11 332 rra.b R13
13b2 4d11 333 rra.b R13
13b4 7df00f00 334 and.b #0fh,R13
13b8 5e4d0615 335 mov.b lcd_table(R13),R14
13bc cf4e0300 336 mov.b R14,3(R15)
13c0 5d420202 337 mov.b &min,R13
13c4 7df00f00 338 and.b #0fh,R13
13c8 5e4d0615 339 mov.b lcd_table(R13),R14
13cc 7ed08000 340 bis.b #80h,R14
13d0 cf4e0200 341 mov.b R14,2(R15)
342
343 dis_hour
13d4 5d420102 344 mov.b &hour,R13
13d8 4d11 345 rra.b R13
13da 4d11 346 rra.b R13
13dc 4d11 347 rra.b R13
13de 4d11 348 rra.b R13
13e0 7df00f00 349 and.b #0fh,R13
13e4 5e4d0615 350 mov.b lcd_table(R13),R14
13e8 cf4e0500 351 mov.b R14,5(R15)
13ec 5d420102 352 mov.b &hour,R13
13f0 7df00f00 353 and.b #0fh,R13
13f4 5e4d0615 354 mov.b lcd_table(R13),R14
13f8 7ed08000 355 bis.b #80h,R14
13fc cf4e0400 356 mov.b R14,4(R15)
1400 3041 357 ret
358 ;--------------------------------------------------
359
360 lcd_display_ona
1402 f240fc003300 361 mov.b #0FCh,&P5SEL ;Enable R(LCD) + COM Lines
1408 f2405d009000 362 mov.b #(0x01)+((0x10)+(0x08)+(0x04))+(0x40),&LCDCTL ;STK LCD 4Mux, S0-S19
363 ;Basic Timer : SSEL=0 DIV=0 Reset=1,ACLK,32768/256 = 128Hz (7.8ms debounce time)
364 ;Basic Timer reset disabled
365 ;enable basic timer intrpt
140e b012de14 366 call #show_clr ;clear LCD
1412 0943 367 clr R9
1414 3041 368 ret
369 ;--------------------------------------------------
370 ;----------------- Timera_int ------------------
371 ;--------------------------------------------------
372 Timera_int
1416 5853 373 inc.b R8
1418 5853 374 inc.b R8
141a 78900c00 375 cmp.b #0ch,R8
141e 0120 376 jnz Timer_int_end
1420 4843 377 clr.b R8
378
1422 52120302 379 Timer_int_end push.b &second
1426 52120202 380 push.b &min
142a 52120102 381 push.b &hour
142e b0124814 382 call #led_blink
1432 b012c612 383 call #led_chang ;led disp buffer chang
1436 b0125813 384 call #led_display ;led display
143a f2410102 385 pop.b &hour
143e f2410202 386 pop.b &min
1442 f2410302 387 pop.b &second
1446 0013 388 reti
389 ;-------------------------------------------------
390 ;----------------led_blink------------------------
391 ;-------------------------------------------------
1448 f29003000a02 392 led_blink cmp.b #3,&fun_buffer
144e 0724 393 jeq second_blink
1450 e2930a02 394 cmp.b #2,&fun_buffer
1454 0b24 395 jeq min_blink
1456 d2930a02 396 cmp.b #1,&fun_buffer
145a 0f24 397 jeq hour_blink
145c 143c 398 jmp blink_ret
399 second_blink
145e d2b30002 400 bit.b #1,&second_flag
1462 0320 401 jnz s_ret
1464 f240aa000302 402 mov.b #0aah,&second
146a 0d3c 403 s_ret jmp blink_ret
404 min_blink
146c d2b30002 405 bit.b #1,&second_flag
1470 0320 406 jnz m_ret
1472 f240aa000202 407 mov.b #0aah,&min
1478 063c 408 m_ret jmp blink_ret
409 hour_blink
147a d2b30002 410 bit.b #1,&second_flag
147e 0320 411 jnz blink_ret
1480 f240aa000102 412 mov.b #0aah,&hour
413
1486 3041 414 blink_ret ret
415 ;--------------------------------------------------
416 ;----------------- BASIC TIMER int ------------
417 ;--------------------------------------------------
418 BASIC_INT
1488 d2e30002 419 xor.b #01h,&second_flag
148c d2b30002 420 bit.b #1,&second_flag
1490 1d24 421 jz clock_ret
422
1492 d2e30402 423 xor.b #01h,&flag
1496 12d3 424 setc
425 BASIC_END
1498 c2a30302 426 dadc.b &second
149c f29060000302 427 cmp.b #60h,&second
14a2 1228 428 jlo clock_end
14a4 c2430302 429 clr.b &second
14a8 c2a30202 430 dadc.b &min
14ac f29060000202 431 cmp.b #60h,&min
14b2 0a28 432 jlo clock_end
14b4 c2a30102 433 dadc.b &hour
14b8 c2430202 434 clr.b &min
14bc f29024000102 435 cmp.b #24h,&hour
14c2 0228 436 jlo clock_end
14c4 c2430102 437 clr.b &hour
438 clock_end
14c8 b0127613 439 call #lcd_display ;lcd display
440
14cc 0013 441 clock_ret reti
442 ;--------------------------------------------------
443 ;;
444 ;--------------------------------------------------
445 lcd_display_deal
14ce 0543 446 clr R5
447 next_word_display
14d0 f5439100 448 mov.b #0FFH,((0x0091))(R5)
14d4 1553 449 inc R5
14d6 55920702 450 cmp.b &counter,R5
14da fa23 451 jnz next_word_display
14dc 3041 452 ret
453 ;-------------------------------------------------------
454 ;
455 ;-------------------------------------------------------
456 show_clr
14de 4643 457 mov.b #00h,R6 ; clear display memory
458 show_clr1
14e0 c6439100 459 mov.b #00h,((0x0091))(R6)
14e4 5653 460 inc.b R6
14e6 76900a00 461 cmp.b #0ah,R6
14ea fa23 462 jnz show_clr1
14ec 3041 463 ret
464
14ee 7943 465 delay mov.b #0ffh,R9
14f0 0343 466 ttt nop
14f2 0343 467 nop
14f4 5983 468 dec.b R9
14f6 fc23 469 jnz ttt
14f8 3041 470 ret
471
472 ;----------------------------------------------------------
473 ;
474 ;----------------------------------------------------------
475 led_table
14fa d7 476 db 0d7h ;0
14fb 14 477 db 14h ;1
14fc cd 478 db 0cdh ;2
14fd 5d 479 db 5dh ;3
14fe 1e 480 db 1Eh ;4
14ff 5b 481 db 5bh ;5
1500 db 482 db 0dbh ;6
1501 15 483 db 15h ;7
1502 df 484 db 0dfh ;8
1503 5f 485 db 05fh ;9
1504 00 486 db 00h ;no
1505 00 487 db 00h ;no
488
489 ;-----------------------------------------------------------
490 ;
491 ;-----------------------------------------------------------
492 lcd_table
1506 7b 493 db 7bh ;0
1507 12 494 db 12h ;1
1508 4f 495 db 4fh ;2
1509 1f 496 db 1fh ;3
150a 36 497 db 36h ;4
150b 3d 498 db 3dh ;5
150c 7d 499 db 7dh ;6
150d 13 500 db 13h ;7
150e 7f 501 db 7fh ;8
150f 3f 502 db 3fh ;9
1510 00 503 db 00h ;no
1511 00 504 db 00h ;no
505 ;----------------------------------------------------------
506 ; Interrupt Vector Table
507 ;----------------------------------------------------------
508 .pseg INT_VECTORS,abs=0xFFE0 ; MSP430 RESET Vector
509 ;----------------------------------------------------------
ffe0 8814 510 DW
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?