STM8S103F3P6自带LED灯的闪烁代码,该灯GND接在STM8的PB5引脚,通过该代码将了解到如何正确的操作GPIO,部分操作寄存器地址由查询手册得来
图:STM8SF103Fx引脚定义
stm8/
#include "mapping.inc"
PB_ODR EQU $5005
PB_IDR EQU $5006
PB_DDR EQU $5007
PB_CR1 EQU $5008
PB_CR2 EQU $5009
PD_ODR EQU $500f ;EQU 相类似define,使左边等于右边
PD_IDR EQU $5010
PD_DDR EQU $5011
PD_CR1 EQU $5012
PD_CR2 EQU $5013
stack_start.w EQU $stack_segment_start
stack_end.w EQU $stack_segment_end
segment 'rom'
main.l
; initialize SP
ldw X,#stack_end ;LDW : load this address saved data to X,LD: load data to X
ldw SP,X;setting stack pointer
LD A,#40 ;0100 0000 PB5
LD PB_DDR,A
LD A,#40
LD PB_CR1,A ;set output mode
LD A,#00
LD PB_CR2,A; clear input
MAIN_LOOP.L
LD A,#40
LD PB_ODR,A ;set output register PB5
LD A,#100
CALL DELAY_MS
LD A,#00
LD PB_ODR,A
LD A,100
CALL DELAY_MS
JRA MAIN_LOOP
; NAME: DELAY_MS
; BRIEF: DELAY SOME TIME
DELAY_MS.L
PUSH A ;SAVE A TO STACK
LD A,#250
DELAY_MS_1.L
NOP
NOP
NOP
NOP
NOP
DEC A
JRNE DELAY_MS_1
;LOOP END
POP A ;READ STACK AND SAVE TO A
DEC A
JRNE DELAY_MS
RET
end