📄 main.lst
字号:
437 000000 EXTERN ADC_DB3RH.w ; Data Buffer register 3 High
438
439 000000 EXTERN ADC_DB3RL.w ; Data Buffer register 3 Low
440
441 000000 EXTERN ADC_DB4RH.w ; Data Buffer register 4 High
442
443 000000 EXTERN ADC_DB4RL.w ; Data Buffer register 4 Low
444
445 000000 EXTERN ADC_DB5RH.w ; Data Buffer register 5 High
446
447 000000 EXTERN ADC_DB5RL.w ; Data Buffer register 5 Low
448
449 000000 EXTERN ADC_DB6RH.w ; Data Buffer register 6 High
450
451 000000 EXTERN ADC_DB6RL.w ; Data Buffer register 6 Low
452
453 000000 EXTERN ADC_DB7RH.w ; Data Buffer register 7 High
454
455 000000 EXTERN ADC_DB7RL.w ; Data Buffer register 7 Low
456
457 000000 EXTERN ADC_DB8RH.w ; Data Buffer register 8 High
458
459 000000 EXTERN ADC_DB8RL.w ; Data Buffer register 8 Low
460
461 000000 EXTERN ADC_DB9RH.w ; Data Buffer register 9 High
462
STMicroelectronics list file postprocessor v1.01 (C)2009-2012 Thu May 03 10:16:14 2012
Page 11 Assembler
f:\单片机\stm\实验\stm8资料\stm8s实验 asm源程序\第一次课 更改时钟源\修改时钟源\main.asm
463 000000 EXTERN ADC_DB9RL.w ; Data Buffer register 9 Low
464
465 000000 EXTERN ADC_CSR.w ; ADC Control/Status Register
466
467 000000 EXTERN ADC_CR1.w ; ADC Configuration Register 1
468
469 000000 EXTERN ADC_CR2.w ; ADC Configuration Register 2
470
471 000000 EXTERN ADC_CR3.w ; ADC Configuration Register 3
472
473 000000 EXTERN ADC_DRH.w ; Data bits High
474
475 000000 EXTERN ADC_DRL.w ; Data bits Low
476
477 000000 EXTERN ADC_TDRH.w ; Schmitt trigger disable High
478
479 000000 EXTERN ADC_TDRL.w ; Schmitt trigger disable Low
480
481 000000 EXTERN ADC_HTRH.w ; High Threshold Register High
482
483 000000 EXTERN ADC_HTRL.w ; High Threshold Register Low
484
485 000000 EXTERN ADC_LTRH.w ; Low Threshold Register High
486
487 000000 EXTERN ADC_LTRL.w ; Low Threshold Register Low
488
489 000000 EXTERN ADC_AWSRH.w ; Analog Watchdog Status
;register High
490
491 000000 EXTERN ADC_AWSRL.w ; Analog Watchdog Status
;register Low
492
493 000000 EXTERN ADC_AWCRH.w ; Analog Watchdog Control
;register High
494
495 000000 EXTERN ADC_AWCRL.w ; Analog Watchdog Control
;register Low
496
497 ; Global configuration register (CFG)
498 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
499
500 000000 EXTERN CFG_GCR.w ; CFG Global configuration
;register
501
502 ; Interrupt Software Priority Register (ITC)
503 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
504
505 000000 EXTERN ITC_SPR1.w ; Interrupt Software priority
;register 1
506
507 000000 EXTERN ITC_SPR2.w ; Interrupt Software priority
;register 2
508
509 000000 EXTERN ITC_SPR3.w ; Interrupt Software priority
;register 3
STMicroelectronics list file postprocessor v1.01 (C)2009-2012 Thu May 03 10:16:14 2012
Page 12 Assembler
f:\单片机\stm\实验\stm8资料\stm8s实验 asm源程序\第一次课 更改时钟源\修改时钟源\main.asm
510
511 000000 EXTERN ITC_SPR4.w ; Interrupt Software priority
;register 4
512
513 000000 EXTERN ITC_SPR5.w ; Interrupt Software priority
;register 5
514
515 000000 EXTERN ITC_SPR6.w ; Interrupt Software priority
;register 6
516
517 000000 EXTERN ITC_SPR7.w ; Interrupt Software priority
;register 7
518
519 000000 #endif ; __STM8S105C_S__
<END_OF_INCLUSION>
5
6 ;/******************** stm8单片机实验 ********************
7 ;文件名 : 修改时钟源
8
9
10 ;描述 : 修改stm8的时钟源为外部时钟 ,观察LD1灯的变化情况
11 ;*********************************************************
12
13 ;***************************接线**************************
14 ;硬件:1、STM8s-discovery LED1
15 000000 .FORM 72
16 000002 lab equ 2
17 000003 lab1 equ 3
18
19 segment word 'rom'
20 main.l
21 ; initialize SP
22
23 008080 A606 ld a,#{lab mult lab1}
25 008082 AE07FF ldw X,#stack_end
26 008085 94 ldw SP,X
27
28 008086 #ifdef 1
29 ; clear RAM0
30 000000 ram0_start.b EQU $0
31 0000FF ram0_end.b EQU $FF
32 008086 AE0000 ldw X,#ram0_start
33 clear_ram0.l
34 008089 7F clr (X)
35 00808A 5C incw X
36 00808B A300FF cpw X,#ram0_end
37 00808E 23F9 jrule clear_ram0
38 008090 #endif
39
40 008090 #ifdef 1
41 ; clear RAM1
42 000100 ram1_start.w EQU $100
43 0005FF ram1_end.w EQU $5FF
44 008090 AE0100 ldw X,#ram1_start
45 clear_ram1.l
46 008093 7F clr (X)
47 008094 5C incw X
48 008095 A305FF cpw X,#ram1_end
49 008098 23F9 jrule clear_ram1
50 00809A #endif
51
52 ; clear stack
53 000600 stack_start.w EQU $600
54 0007FF stack_end.w EQU $7FF
55 00809A AE0600 ldw X,#stack_start
56 clear_stack.l
STMicroelectronics list file postprocessor v1.01 (C)2009-2012 Thu May 03 10:16:14 2012
Page 13 Assembler
f:\单片机\stm\实验\stm8资料\stm8s实验 asm源程序\第一次课 更改时钟源\修改时钟源\main.asm
57 00809D 7F clr (X)
58 00809E 5C incw X
59 00809F A307FF cpw X,#stack_end
60 0080A2 23F9 jrule clear_stack
61
62
63 0080A4 intel
64 ;系统复位后,时钟为内部RC振荡器,16Mhz,8分频,实为2Mhz.
65 ;LD1闪烁10次
66 0080A4 A60A ld a,#10 ;10次
67 0080A6 72105011 bset PD_DDR,#0
68 0080AA 72105012 bset PD_CR1,#0
69 0080AE 72115013 bres PD_CR2,#0
70
71 next1
72 0080B2 7211500F bres PD_ODR,#0
73 0080B6 CD80F4 call delay
74 0080B9 7210500F bset PD_ODR,#0
75 0080BD CD80F4 call delay
76 0080C0 4A dec a
77 0080C1 26EF jrne next1
78
79 ;修改时钟为外部16Mhz时钟.
80 ;LD1闪烁10次
81
82 0080C3 350150C1 mov CLK_ECKR,#01h ; 允许外部高速振荡器工作
83 wait_hse_ready
84 0080C7 C650C1 ld a,CLK_ECKR
85 0080CA A402 and a,#02h
86 0080CC 27F9 jreq wait_hse_ready ; 等待外部高速振荡器准备好
87 0080CE 721050C8 bset CLK_CSSR,#0 ;CSEEN<-1,时钟安全系统使能
88 0080D2 350250C5 mov CLK_SWCR,#02h ; SWEN <- 1
89 0080D6 35B450C4 mov CLK_SWR,#0b4h ;
;选择芯片外部的高速振荡器为主时
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -