7segment.s

来自「ARM 7-segment control」· S 代码 · 共 52 行

S
52
字号
/* define symbols of system */.equ	PORTA_MUX,	0x09000000.equ	PORTA_DATA,	0x09001600.equ	PORTA_DIR,	0x09001604/* define symbol of program */.set	DELAY_CNT,	0x1fffff.text.global _start.code 32_start:/* setup PORT A */start:		ldr	r0, =PORTA_DIR		mov	r1, #0		str	r1, [r0]				ldr	r0, =PORTA_MUX		ldr	r1, =0x3fff		str	r1, [r0]		/* main program */		ldr	r5, =PORTA_DATA		mov	r2, #0		mov	r3, #0main_loop:	bl	seg7		str	r3, [r5]		ldr	r0, =DELAY_CNT		bl	delay		add	r2, r2, #1		cmp	r2, #11		subeq	r2, r2, r2		b	main_loop/* delay subroutine */delay:		subs	r0, r0, #1		bne	delay		mov	pc, lr/* binary to 7segment coding subroutine */seg7:		adr	r3, seg_table		ldr	r3, [r3, +r2, lsl #2]		mov	pc, lr/* coding table */seg_table:.word		0x000000c0,0x000000f9, 0x000000a4, 0x000000b0, 0x00000099, 0x00000092, 0x00000082, 0x000000f8, 0x00000080, 0x00000090, 0x0000007f.end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?