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

📄 main.s

📁 avr单片机与flash存储器通信程序,调试通过,希望对大家有所帮助.
💻 S
字号:
	.module main.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
	.area data(ram, con, rel)
	.dbfile C:\ATMega8515\定时实验/ForATmega8515.h
_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\ATMega8515\定时实验/ForATmega8515.h
	.dbfile C:\ATMega8515\定时实验\main.c
	.dbsym e flag _flag c
	.area text(rom, con, rel)
	.dbfile C:\ATMega8515\定时实验\main.c
	.dbfunc e main _main fV
;          count -> R20
	.even
_main::
	.dbline -1
	.dbline 10
; #include <iom8515v.h>
; #include"ForATmega8515.h"
; 
; 
; void delay(uint ticks);
; void display(uchar left,uchar right);
; uchar flag=0;
; 
; void main()
; {
	.dbline 11
;  uchar count=0;
	clr R20
	.dbline 12
;  init_devices();
	rcall _init_devices
	rjmp L3
L2:
	.dbline 15
;  
;  while(1)
;  {
	.dbline 16
;   display(count/10,count%10);
	ldi R17,10
	mov R16,R20
	rcall mod8u
	mov R18,R16
	ldi R17,10
	mov R16,R20
	rcall div8u
	rcall _display
	.dbline 17
;   if(flag)
	lds R2,_flag
	tst R2
	breq L5
	.dbline 18
;   {
	.dbline 19
;    if(count++==99)count=0;
	mov R2,R20
	clr R3
	subi R20,255    ; addi 1
	mov R24,R2
	cpi R24,99
	brne L7
	.dbline 19
	clr R20
L7:
	.dbline 20
;    flag=0;
	clr R2
	sts _flag,R2
	.dbline 21
;   }
L5:
	.dbline 22
L3:
	.dbline 14
	rjmp L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r count 20 c
	.dbend
	.dbfunc e delay _delay fV
;              i -> R20
;          ticks -> R16,R17
	.even
_delay::
	rcall push_gset1
	.dbline -1
	.dbline 26
;  }
; }
; 
; void delay(uint ticks)
; {
	.dbline 28
	rjmp L13
L10:
	.dbline 28
	ldi R20,200
	rjmp L17
L14:
	.dbline 28
L15:
	.dbline 28
	dec R20
L17:
	.dbline 28
	tst R20
	brne L14
L11:
	.dbline 28
	subi R16,1
	sbci R17,0
L13:
	.dbline 28
;  uchar i;
;  for(;ticks!=0;ticks--)for(i=200;i!=0;i--);
	cpi R16,0
	cpc R16,R17
	brne L10
X1:
	.dbline -2
L9:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r ticks 16 i
	.dbend
	.dbfunc e display _display fV
;          right -> R20
;           left -> R22
	.even
_display::
	rcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 32
; }
; 
; void display(uchar left,uchar right)
; {
	.dbline 33
;  PORTA=Tab[left];//查表显示数码管
	ldi R24,<_Tab
	ldi R25,>_Tab
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0x1b,R30
	.dbline 34
;  PORTC&=~SEG0;  //选通左边的数码管
	cbi 0x15,7
	.dbline 35
;  delay(1);		//延时
	ldi R16,1
	ldi R17,0
	rcall _delay
	.dbline 36
;  PORTC|=SEG0;   //关左边的数码管
	sbi 0x15,7
	.dbline 37
;  PORTA=Tab[right];//查表显示数码管
	ldi R24,<_Tab
	ldi R25,>_Tab
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0x1b,R30
	.dbline 38
;  PORTC&=~SEG1;		//选通右边的数码管			  
	cbi 0x15,6
	.dbline 39
;  delay(1);
	ldi R16,1
	ldi R17,0
	rcall _delay
	.dbline 40
;  PORTC|=SEG1;    //关右边的数码管
	sbi 0x15,6
	.dbline -2
L18:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r right 20 c
	.dbsym r left 22 c
	.dbend

⌨️ 快捷键说明

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