⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digital_dispaly.s

📁 为了实现让单片机显示阿拉伯数字的功能
💻 S
字号:
	.module digital_dispaly.c
	.area text(rom, con, rel)
	.dbfile D:\实例5~1/delay.h
	.dbfunc e Delay_ms _Delay_ms fV
;              n -> R20
;           Time -> R16,R17
	.even
_Delay_ms::
	rcall push_gset1
	.dbline -1
	.dbline 6
; #include <iom48v.h>
; #include <macros.h>
; #include "delay.h"
; 
; const unsigned char DisTab[]=
; {
	rjmp L3
L2:
	.dbline 9
; 	0xFC,0x60,0xDA,0xF2,0x66,	//0,1,2,3,4
; 	0xB6,0xBE,0xE0,0xFE,0xF6,	//5,6,7,8,9
; 	0xEE,0x3E,0x9C,0x7A,0x9E,	//A,b,C,d,E
	.dbline 10
; 	0x8E,0xCE,0x1C,0x6E,0x7C,	//F,P,L,H,U
	ldi R20,1
	rjmp L8
L5:
	.dbline 11
	.dbline 12
	nop
	.dbline 13
L6:
	.dbline 10
	inc R20
L8:
	.dbline 10
	cpi R20,187
	brlo L5
	.dbline 14
	subi R16,1
	sbci R17,0
	.dbline 15
L3:
	.dbline 8
	cpi R16,0
	cpc R16,R17
	brne L2
X0:
	.dbline -2
L1:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r n 20 c
	.dbsym r Time 16 i
	.dbend
	.area lit(rom, con, rel)
_DisTab::
	.byte 252,96
	.byte 218,242
	.byte 'f,182
	.byte 190,224
	.byte 254,246
	.byte 238,62
	.byte 156,'z
	.byte 158,142
	.byte 206,28
	.byte 'n,124
	.byte 10,16
	.byte 2
	.dbfile D:\实例5~1\digital_dispaly.c
	.dbsym e DisTab _DisTab A[23:23]kc
	.area text(rom, con, rel)
	.dbfile D:\实例5~1\digital_dispaly.c
	.dbfunc e main _main fV
;        Counter -> R20
	.even
_main::
	.dbline -1
	.dbline 15
; 	0x0A,0x10,0x02				//r,_,-
; };
; 
; void main (void)
; {
	.dbline 16
; 	unsigned char Counter=0;
	clr R20
	.dbline 18
; 
;     DDRC=0xFF;
	ldi R24,255
	out 0x7,R24
	.dbline 19
;     DDRB=0xFF;
	out 0x4,R24
	.dbline 20
;     DDRD=0xFF;
	out 0xa,R24
	.dbline 21
;     PORTC=0xFF;
	out 0x8,R24
	.dbline 22
;     PORTB=0xFF;
	out 0x5,R24
	.dbline 23
;     PORTD=0xFF;
	out 0xb,R24
	rjmp L11
L10:
	.dbline 26
; 
;     while(1)
;     {
	.dbline 27
;         PORTD=DisTab[Counter];
	ldi R24,<_DisTab
	ldi R25,>_DisTab
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0xb,R30
	.dbline 28
;         Counter++;
	inc R20
	.dbline 29
;         if (Counter>22)
	ldi R24,22
	cp R24,R20
	brsh L13
	.dbline 30
;         	Counter=0;
	clr R20
L13:
	.dbline 31
	ldi R16,500
	ldi R17,1
	rcall _Delay_ms
	.dbline 32
L11:
	.dbline 25
	rjmp L10
X1:
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbsym r Counter 20 c
	.dbend

⌨️ 快捷键说明

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