📄 main.lsr
字号:
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 assembler v4.52 (C)1987-2011 Tue May 31 13:55:18 2011
Page 11 Assembler
f:\stm8\stm8实验\第五次课\led ad单次\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 assembler v4.52 (C)1987-2011 Tue May 31 13:55:18 2011
Page 12 Assembler
f:\stm8\stm8实验\第五次课\led ad单次\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 segment 'ram0'
6 000000 couter ds.b 1
7 000001 vol1 ds.b 1
8 000002 vol2 ds.b 1
9 000003 vol3 ds.b 1
10
11 000004 voltage ds.b 1
12
13 000005 r00 ds.b 1
14 000006 r01 ds.b 1
15 000007 r02 ds.b 1
16 000008 r03 ds.b 1
17 000009 r04 ds.b 1
18 00000A r05 ds.b 1
19
20 00000B temp ds.b 1
21
22 segment 'rom'
23 main.l
24 ; initialize SP
25 000000 AE07FF ldw X,#stack_end
26 000003 94 ldw SP,X
27
28 000004 #ifdef 1
29 ; clear RAM0
30 000000 ram0_start.b EQU $0
31 0000FF ram0_end.b EQU $FF
32 000004 AE0000 ldw X,#ram0_start
33 clear_ram0.l
34 000007 7F clr (X)
35 000008 5C incw X
36 000009 A300FF cpw X,#ram0_end
37 00000C R 23F9 jrule clear_ram0
38 00000E #endif
39
40 00000E #ifdef 1
41 ; clear RAM1
42 000100 ram1_start.w EQU $100
43 0005FF ram1_end.w EQU $5FF
44 00000E AE0100 ldw X,#ram1_start
45 clear_ram1.l
46 000011 7F clr (X)
47 000012 5C incw X
STMicroelectronics assembler v4.52 (C)1987-2011 Tue May 31 13:55:18 2011
Page 13 Assembler
f:\stm8\stm8实验\第五次课\led ad单次\main.asm
48 000013 A305FF cpw X,#ram1_end
49 000016 R 23F9 jrule clear_ram1
50 000018 #endif
51
52 ; clear stack
53 000600 stack_start.w EQU $600
54 0007FF stack_end.w EQU $7FF
55 000018 AE0600 ldw X,#stack_start
56 clear_stack.l
57 00001B 7F clr (X)
58 00001C 5C incw X
59 00001D A307FF cpw X,#stack_end
60 000020 R 23F9 jrule clear_stack
61
62 000022 intel
63 ;初始化PB,推挽输出,用于数码管段驱动;
64 000022 X 35FF0000 mov PB_DDR,#0ffh
65 000026 X 35FF0000 mov PB_CR1,#0ffh
66 00002A X 35000000 mov PB_CR2,#0
67 ;初始化PA,推挽输出,用于数码管位驱动;
68 00002E X 35FF0000 mov PA_DDR,#0ffh
69 000032 X 35FF0000 mov PA_CR1,#0ffh
70 000036 X 35000000 mov PA_CR2,#0
71 00003A X 35FF0000 mov PA_ODR,#0ffh
72
73
74
75 00003E X 35000000 mov UART2_CR1,#0
76 000042 X 35000000 mov UART2_CR2,#0
77 000046 X 35000000 mov UART2_CR3,#0
78 00004A X 35000000 mov UART2_BRR2,#0
79 00004E X 350D0000 mov UART2_BRR1,#0dh
80 000052 X 350C0000 mov UART2_CR2,#0ch
81
82 000056 X 35000000 mov ADC_CR2,#0 ; A/D结果数据左对齐
83
84 00005A X 5500000000 mov ADC_CR1,0 ; ADC时钟=主时钟/2=1MHZ
85
86 ; ADC转换模式=单次
87
88 ; 禁止ADC转换
89
90 00005F X 35080000 mov ADC_CSR,#8 ; 选择通道8
91
92 000063 X 35010000 mov ADC_TDRH,#1
93
94
95 000067 X 72100000 bset ADC_CR1,#0
96 00006B A664 ld a,#100
97 WAIT_ADC_ON.L
98 00006D 4A dec a
99 00006E R 26FD jrne WAIT_ADC_ON ;
;延时一段时间,至少7uS,保证ADC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -