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

📄 io口.s

📁 基于AVR实验平台下ATMega128芯片实习作业
💻 S
字号:
	.module IO口.c
	.area text(rom, con, rel)
;              i -> R16,R17
	.even
_delay_1ms::
; #include <iom128v.h>
; void delay_1ms(void)         
;  {
	clr R16
	clr R17
	xjmp L5
L2:
L3:
	subi R16,255  ; offset = 1
	sbci R17,255
L5:
;    unsigned int i;
;    for (i=0;i<2286;i++);
	cpi R16,238
	ldi R30,8
	cpc R17,R30
	brlo L2
L1:
	.dbline 0 ; func end
	ret
;              i -> R20,R21
;              n -> R22,R23
	.even
_delay_nms::
	xcall push_gset2
	movw R22,R16
;   }
; void delay_nms(unsigned int n)  
; {     unsigned int i=0;
	clr R20
	clr R21
;    for (i=0;i<n;i++)
	xjmp L10
L7:
	xcall _delay_1ms
L8:
	subi R20,255  ; offset = 1
	sbci R21,255
L10:
	cp R20,R22
	cpc R21,R23
	brlo L7
L6:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
;              a -> <dead>
	.even
_main::
;    delay_1ms();
;   }
; void main()  
; {unsigned char a;
;  DDRA=0x00;
	clr R2
	out 0x1a,R2
;  DDRC=0X00;
	out 0x14,R2
;  DDRE=0X00;
	out 0x2,R2
;  DDRB=0x01;
	ldi R24,1
	out 0x17,R24
;  DDRD=0X01;
	out 0x11,R24
;  DDRF=0X01;
	sts 97,R24
	xjmp L13
L12:
;  while(1)
;  {
; if((PINA & 0x01)==0)
	in R24,0x19
	andi R24,1
	brne L15
; {  PORTB=~PORTB;
	in R2,0x18
	com R2
	out 0x18,R2
; 
;   delay_nms(10);
	ldi R16,10
	ldi R17,0
	xcall _delay_nms
;   }
	xjmp L16
L15:
; else PORTB=0XFF;
	ldi R24,255
	out 0x18,R24
L16:
; 
; if((PINC& 0x02)==0)
	in R24,0x13
	andi R24,2
	brne L17
; {
;   PORTD=~PORTD;
	in R2,0x12
	com R2
	out 0x12,R2
;   delay_nms(10);
	ldi R16,10
	ldi R17,0
	xcall _delay_nms
;   }
	xjmp L18
L17:
; else PORTD=0XFF;
	ldi R24,255
	out 0x12,R24
L18:
; if((PINE & 0x04)==0)
	in R24,0x1
	andi R24,4
	brne L19
; {
;   PORTF=~PORTF;
	lds R2,98
	com R2
	sts 98,R2
;   delay_nms(10);
	ldi R16,10
	ldi R17,0
	xcall _delay_nms
;   }
	xjmp L20
L19:
; else PORTF=0XFF;
	ldi R24,255
	sts 98,R24
L20:
L13:
	xjmp L12
X0:
L11:
	.dbline 0 ; func end
	ret

⌨️ 快捷键说明

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