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

📄 main.s

📁 atmega128单片机串口调试程序
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile F:\全物理仿真\mega128\uart_0\main.c
	.dbfunc e main _main fV
;           out2 -> R22
;           out1 -> R10
;             rc -> R12
;              i -> R14
	.even
_main::
	.dbline -1
	.dbline 6
; #include "includes.h"
; 
; 
; /*main function of USART communication */
; void main()
; {
	.dbline 9
; 	U8 i,rc,out1,out2;
; 	
; 	port_init();
	xcall _port_init
	.dbline 10
; 	uart0_init();
	xcall _uart0_init
	.dbline 12
; 	
; 	printf("Main running  ...");
	ldi R16,<L2
	ldi R17,>L2
	xcall _printf
	xjmp L4
L3:
	.dbline 15
; 		
; 	while(1)
; 	{
	.dbline 16
; 	    uart0_putchar('a');
	ldi R16,97
	xcall _uart0_putchar
	.dbline 17
; 	    uart0_putchar(0xd);uart0_putchar(0xa);
	ldi R16,13
	xcall _uart0_putchar
	.dbline 17
	ldi R16,10
	xcall _uart0_putchar
	.dbline 18
; 	    rc=uart0_waitchar();
	xcall _uart0_waitchar
	mov R12,R16
	.dbline 20
; 	    
; 		switch(rc)
	mov R20,R12
	clr R21
	cpi R20,48
	ldi R30,0
	cpc R21,R30
	breq L13
	cpi R20,49
	ldi R30,0
	cpc R21,R30
	breq L18
	cpi R20,50
	ldi R30,0
	cpc R21,R30
	brne X3
	xjmp L23
X3:
	cpi R20,48
	ldi R30,0
	cpc R21,R30
	brge X4
	xjmp L6
X4:
L28:
	cpi R20,120
	ldi R30,0
	cpc R21,R30
	breq L9
	xjmp L6
X0:
	.dbline 21
;         {
L9:
	.dbline 23
;             case 'x':
; 		        WDR();
	wdr
	.dbline 24
; 			    WDTCR = 0x0E;
	ldi R24,14
	out 0x21,R24
L10:
	.dbline 25
L11:
	.dbline 25
; 			    while(1);
	xjmp L10
X1:
	.dbline 26
; 				break;
	xjmp L7
L13:
	.dbline 29
;            
; 		    case '0':
; 			    for(i=0;i<5;i++)
	clr R14
	xjmp L17
L14:
	.dbline 30
	.dbline 31
	mov R16,R14
	subi R16,208    ; addi 48
	xcall _uart0_putchar
	.dbline 32
L15:
	.dbline 29
	inc R14
L17:
	.dbline 29
	mov R24,R14
	cpi R24,5
	brlo L14
	.dbline 33
; 	            {
;                     uart0_putchar('0'+i);
; 	            }
; 			    delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 34
; 				port_init0();
	xcall _port_init0
	.dbline 35
; 			    out1 = PINA;
	in R10,0x19
	.dbline 36
; 			    out2 = PINC;
	in R22,0x13
	.dbline 37
; 				break;
	xjmp L7
L18:
	.dbline 40
; 				
; 		    case '1':
; 		        for(i=5;i<10;i++)
	ldi R24,5
	mov R14,R24
	xjmp L22
L19:
	.dbline 41
	.dbline 42
	mov R16,R14
	subi R16,208    ; addi 48
	xcall _uart0_putchar
	.dbline 43
L20:
	.dbline 40
	inc R14
L22:
	.dbline 40
	mov R24,R14
	cpi R24,10
	brlo L19
	.dbline 44
; 	            {
; 	            uart0_putchar('0'+i);  
; 	            }
; 			    delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 45
; 				port_init1();
	xcall _port_init1
	.dbline 46
; 			    out1 = PINA;
	in R10,0x19
	.dbline 47
; 		        out2 = PINC;
	in R22,0x13
	.dbline 48
; 				break;
	xjmp L7
L23:
	.dbline 51
; 		 
; 		    case '2':
; 		        for(i='a';i<='z';i++)
	ldi R24,97
	mov R14,R24
	xjmp L27
L24:
	.dbline 52
	.dbline 53
	mov R16,R14
	subi R16,159    ; addi 97
	xcall _uart0_putchar
	.dbline 54
L25:
	.dbline 51
	inc R14
L27:
	.dbline 51
	ldi R24,122
	cp R24,R14
	brsh L24
	.dbline 55
; 	            {
; 	            uart0_putchar('a'+i);  
; 	            }
; 				delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 56
; 				port_init2();
	xcall _port_init2
	.dbline 57
; 			    out1 = PINA;
	in R10,0x19
	.dbline 58
; 		        out2 = PINC;
	in R22,0x13
	.dbline 59
; 				break;
L6:
L7:
	.dbline 62
L4:
	.dbline 14
	xjmp L3
X2:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r out2 22 c
	.dbsym r out1 10 c
	.dbsym r rc 12 c
	.dbsym r i 14 c
	.dbend
	.area data(ram, con, rel)
	.dbfile F:\全物理仿真\mega128\uart_0\main.c
L2:
	.blkb 18
	.area idata
	.byte 'M,'a,'i,'n,32,'r,'u,'n,'n,'i,'n,'g,32,32,46,46
	.byte 46,0
	.area data(ram, con, rel)
	.dbfile F:\全物理仿真\mega128\uart_0\main.c

⌨️ 快捷键说明

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