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

📄 dianzhen.s

📁 avr单片机与flash存储器通信程序,调试通过,希望对大家有所帮助.
💻 S
字号:
	.module dianzhen.c
	.area lit(rom, con, rel)
_Tab::
	.byte 33,249
	.byte 19,'Q
	.byte 201,'E
	.byte 5,241
	.byte 1,'A
	.byte 129,13
	.byte 39,25
	.byte 7,135
	.dbfile C:\ATMega8515\点阵/ForATmega8515.h
	.dbsym e Tab _Tab A[16:16]kc
_pic1::
	.byte 24,24
	.byte 153,219
	.byte 126,60
	.byte 24,0
	.dbfile C:\ATMega8515\点阵\dianzhen.c
	.dbsym e pic1 _pic1 A[8:8]kc
_pic2::
	.byte 48,24
	.byte 12,254
	.byte 254,12
	.byte 24,48
	.dbsym e pic2 _pic2 A[8:8]kc
_pic3::
	.byte 0,24
	.byte 60,126
	.byte 219,153
	.byte 24,24
	.dbsym e pic3 _pic3 A[8:8]kc
_pic4::
	.byte 12,24
	.byte 48,127
	.byte 127,48
	.byte 24,12
	.dbsym e pic4 _pic4 A[8:8]kc
_line::
	.byte 0,2
	.byte 4,6
	.byte 8,10
	.byte 12,14
	.dbsym e line _line A[8:8]kc
	.area text(rom, con, rel)
	.dbfile C:\ATMega8515\点阵\dianzhen.c
	.dbfunc e main _main fV
;      softdelay -> R20,R21
	.even
_main::
	.dbline -1
	.dbline 19
; #include <iom8515v.h>
; #include <macros.h>
; #include"ForATmega8515.h"
; //延时(短)
; #define SomeNop   NOP();NOP();NOP();NOP();NOP();NOP();\
; 				  NOP();NOP();NOP();NOP();NOP();NOP();\
; 				  NOP();NOP();NOP();NOP();NOP();NOP();
; 
; uchar const pic1[]={0x18,0x18,0x99,0xDB,0x7E,0x3C,0x18,0x00};
; uchar const pic2[]={0x30,0x18,0x0C,0xFE,0xFE,0x0C,0x18,0x30};
; uchar const pic3[]={0x00,0x18,0x3C,0x7E,0xDB,0x99,0x18,0x18};
; uchar const pic4[]={0x0C,0x18,0x30,0x7F,0x7F,0x30,0x18,0x0C};
; uchar const line[]={0,2,4,6,8,10,12,14};
; 
; void delay(uint tick);//延时(长)
; void display(uchar const *graph);
; 
; void main()
; {
	.dbline 20
;  uint softdelay=1000;
	ldi R20,1000
	ldi R21,3
	.dbline 21
;  init_devices();
	rcall _init_devices
	rjmp L3
X0:
	.dbline 23
;  while(1)
;  {
L5:
	.dbline 24
	ldi R16,<_pic1
	ldi R17,>_pic1
	rcall _display
L6:
	.dbline 24
;   while(softdelay--)display(pic1);//显示pic1
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L5
	tst R3
	brne L5
X1:
	.dbline 25
;   softdelay=1000;
	ldi R20,1000
	ldi R21,3
	rjmp L9
L8:
	.dbline 26
	ldi R16,<_pic2
	ldi R17,>_pic2
	rcall _display
L9:
	.dbline 26
;   while(softdelay--)display(pic2);//显示pic2
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L8
	tst R3
	brne L8
X2:
	.dbline 27
;   softdelay=1000;
	ldi R20,1000
	ldi R21,3
	rjmp L12
L11:
	.dbline 28
	ldi R16,<_pic3
	ldi R17,>_pic3
	rcall _display
L12:
	.dbline 28
;   while(softdelay--)display(pic3);//显示pic3
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L11
	tst R3
	brne L11
X3:
	.dbline 29
;   softdelay=1000;
	ldi R20,1000
	ldi R21,3
	rjmp L15
L14:
	.dbline 30
	ldi R16,<_pic4
	ldi R17,>_pic4
	rcall _display
L15:
	.dbline 30
	movw R2,R20
	subi R20,1
	sbci R21,0
	tst R2
	brne L14
	tst R3
	brne L14
X4:
	.dbline 31
	ldi R20,1000
	ldi R21,3
	.dbline 32
L3:
	.dbline 22
	rjmp L6
X5:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r softdelay 20 i
	.dbend
	.dbfunc e delay _delay fV
;              i -> R20
;          ticks -> R16,R17
	.even
_delay::
	rcall push_gset1
	.dbline -1
	.dbline 36
;   while(softdelay--)display(pic4);//显示pic4
;   softdelay=1000;
;  }
; }
; 
; void delay(uint ticks)
; {
	.dbline 38
	rjmp L21
L18:
	.dbline 38
	ldi R20,200
	rjmp L25
L22:
	.dbline 38
L23:
	.dbline 38
	dec R20
L25:
	.dbline 38
	tst R20
	brne L22
L19:
	.dbline 38
	subi R16,1
	sbci R17,0
L21:
	.dbline 38
;  uchar i;
;  for(;ticks!=0;ticks--)for(i=200;i!=0;i--);
	cpi R16,0
	cpc R16,R17
	brne L18
X6:
	.dbline -2
L17:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r ticks 16 i
	.dbend
	.dbfunc e display _display fV
;              i -> R20
;          graph -> R22,R23
	.even
_display::
	rcall push_gset2
	movw R22,R16
	.dbline -1
	.dbline 42
; }
; 
; void display(uchar const *graph)
; {
	.dbline 44
;  uchar i;
;  for(i=0;i!=8;i++)
	clr R20
	rjmp L30
L27:
	.dbline 45
	.dbline 46
	sbi 0x18,0
	.dbline 47
	movw R2,R22
	subi R22,255  ; offset = 1
	sbci R23,255
	movw R30,R2
	lpm R30,Z
	out 0xf,R30
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 48
	nop
	.dbline 49
	in R24,0x18
	andi R24,241
	out 0x18,R24
	.dbline 50
	ldi R24,<_line
	ldi R25,>_line
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	in R2,0x18
	or R2,R30
	out 0x18,R2
	.dbline 51
	cbi 0x18,0
	.dbline 52
	ldi R16,1
	ldi R17,0
	rcall _delay
	.dbline 53
L28:
	.dbline 44
	inc R20
L30:
	.dbline 44
	cpi R20,8
	breq X7
	rjmp L27
X7:
	.dbline -2
L26:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r graph 22 pkc
	.dbend

⌨️ 快捷键说明

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