📄 testuart.lis
字号:
00AC 1501 movw R2,R10
00AE 260E add R2,R22
00B0 371E adc R3,R23
00B2 F101 movw R30,R2
00B4 8181 ldd R24,z+1
00B6 9927 clr R25
00B8 9070 andi R25,0
00BA F101 movw R30,R2
00BC 2080 ldd R2,z+0
00BE 3324 clr R3
00C0 322C mov R3,R2
00C2 2224 clr R2
00C4 280E add R2,R24
00C6 391E adc R3,R25
00C8 0215 cp R16,R2
00CA 1305 cpc R17,R3
00CC 19F4 brne L13
00CE .dbline 65
00CE ; return (1);
00CE 01E0 ldi R16,1
00D0 10E0 ldi R17,0
00D2 02C0 xjmp L12
00D4 L13:
00D4 .dbline 66
00D4 ; else return (0);
00D4 0027 clr R16
00D6 1127 clr R17
00D8 .dbline -2
00D8 L12:
00D8 0E940000 xcall pop_gset3
00DC .dbline 0 ; func end
00DC 0895 ret
00DE .dbsym r crcin 20 S
00DE .dbsym r len 10 I
00DE .dbsym r s 22 pc
00DE .dbend
00DE .dbfunc e delay_nus _delay_nus fV
00DE ; i -> R20,R21
00DE ; n -> R16,R17
.even
00DE _delay_nus::
00DE 0E940000 xcall push_gset1
00E2 .dbline -1
00E2 .dbline 71
00E2 ;
00E2 ; }
00E2 ;
00E2 ; void delay_nus(unsigned int n)//n微秒延时函数
00E2 ; {
00E2 .dbline 73
00E2 ; unsigned int i;
00E2 ; for (i=0;i<n;i++)
00E2 4427 clr R20
00E4 5527 clr R21
00E6 03C0 xjmp L19
00E8 L16:
00E8 .dbline 74
00E8 .dbline 75
00E8 0000 nop
00EA .dbline 76
00EA L17:
00EA .dbline 73
00EA 4F5F subi R20,255 ; offset = 1
00EC 5F4F sbci R21,255
00EE L19:
00EE .dbline 73
00EE 4017 cp R20,R16
00F0 5107 cpc R21,R17
00F2 D0F3 brlo L16
00F4 .dbline -2
00F4 L15:
00F4 0E940000 xcall pop_gset1
00F8 .dbline 0 ; func end
00F8 0895 ret
00FA .dbsym r i 20 i
00FA .dbsym r n 16 i
00FA .dbend
00FA .dbfunc e delay_hus _delay_hus fV
00FA ; i -> R20,R21
00FA ; j -> R22,R23
00FA ; n -> R16,R17
.even
00FA _delay_hus::
00FA 0E940000 xcall push_gset2
00FE .dbline -1
00FE .dbline 80
00FE ; {
00FE ; asm("nop");
00FE ; }
00FE ; }
00FE ;
00FE ; void delay_hus(unsigned int n)//n毫秒
00FE ; {
00FE .dbline 83
00FE ; unsigned int i;
00FE ; unsigned int j;
00FE ; for (i=0;i<n;i++)
00FE 4427 clr R20
0100 5527 clr R21
0102 0CC0 xjmp L24
0104 L21:
0104 .dbline 84
0104 ; {
0104 .dbline 85
0104 ; for(j=0;j<1000;j++)
0104 6627 clr R22
0106 7727 clr R23
0108 03C0 xjmp L28
010A L25:
010A .dbline 86
010A 0000 nop
010C L26:
010C .dbline 85
010C 6F5F subi R22,255 ; offset = 1
010E 7F4F sbci R23,255
0110 L28:
0110 .dbline 85
0110 683E cpi R22,232
0112 E3E0 ldi R30,3
0114 7E07 cpc R23,R30
0116 C8F3 brlo L25
0118 .dbline 87
0118 L22:
0118 .dbline 83
0118 4F5F subi R20,255 ; offset = 1
011A 5F4F sbci R21,255
011C L24:
011C .dbline 83
011C 4017 cp R20,R16
011E 5107 cpc R21,R17
0120 88F3 brlo L21
0122 .dbline -2
0122 L20:
0122 0E940000 xcall pop_gset2
0126 .dbline 0 ; func end
0126 0895 ret
0128 .dbsym r i 20 i
0128 .dbsym r j 22 i
0128 .dbsym r n 16 i
0128 .dbend
0128 .dbfunc e USART_Transmit _USART_Transmit fV
0128 ; data -> R16
.even
0128 _USART_Transmit::
0128 .dbline -1
0128 .dbline 92
0128 ; asm("nop");
0128 ; }
0128 ; }
0128 ;
0128 ;
0128 ; void USART_Transmit(unsigned char data)
0128 ; {
0128 L30:
0128 .dbline 93
0128 L31:
0128 .dbline 93
0128 ; while(!(UCSRA&(1<<UDRE)));
0128 5D9B sbis 0xb,5
012A FECF rjmp L30
012C .dbline 95
012C ; //PORTD=0x00;
012C ; UDR=data;
012C 0CB9 out 0xc,R16
012E .dbline -2
012E L29:
012E .dbline 0 ; func end
012E 0895 ret
0130 .dbsym r data 16 c
0130 .dbend
0130 .dbfunc e port_init _port_init fV
.even
0130 _port_init::
0130 .dbline -1
0130 .dbline 99
0130 ; }
0130 ;
0130 ; void port_init(void)
0130 ; {
0130 .dbline 100
0130 ; PORTA = 0x00;
0130 2224 clr R2
0132 2BBA out 0x1b,R2
0134 .dbline 101
0134 ; DDRA = 0x00;
0134 2ABA out 0x1a,R2
0136 .dbline 102
0136 ; PORTB=0xFF; //与下一句同时起作用
0136 8FEF ldi R24,255
0138 88BB out 0x18,R24
013A .dbline 104
013A ; //SFIOR&=~BIT(2); //置SFIOR的PDU上拉电阻有效。与上一句一起生效。
013A ; SFIOR&=~BIT(2); //置SFIOR的PDU上拉电阻有效。与上一句一起生效。
013A 80B7 in R24,0x30
013C 8B7F andi R24,251
013E 80BF out 0x30,R24
0140 .dbline 105
0140 ; DDRB = 0x00;
0140 27BA out 0x17,R2
0142 .dbline 106
0142 ; PORTC = 0x00; //m103 output only
0142 25BA out 0x15,R2
0144 .dbline 107
0144 ; DDRC = 0x00;
0144 24BA out 0x14,R2
0146 .dbline 110
0146 ; //PORTD = 0x80;
0146 ; // DDRD = 0x80;
0146 ; PORTD=0xc0; //与下一句同时起作用
0146 80EC ldi R24,192
0148 82BB out 0x12,R24
014A .dbline 112
014A ; //SFIOR&=~BIT(2); //置SFIOR的PDU上拉电阻有效。与上一句一起生效。
014A ; SFIOR&=~BIT(2); //置SFIOR的PDU上拉电阻有效。与上一句一起生效
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -