📄 main.lis
字号:
00C8 E1F3 breq L11
00CA .dbline 122
00CA ; //LENGTH=(TIMEH*16*16+(TIMEL>>4)*16+(TIMEL&0x0F));
00CA ; LENGTH=((TIMEH<<8)|TIMEL);
00CA 20900600 lds R2,_TIMEL
00CE 30900700 lds R3,_TIMEL+1
00D2 40900400 lds R4,_TIMEH
00D6 50900500 lds R5,_TIMEH+1
00DA 542C mov R5,R4
00DC 4424 clr R4
00DE 4228 or R4,R2
00E0 5328 or R5,R3
00E2 1201 movw R2,R4
00E4 4424 clr R4
00E6 5524 clr R5
00E8 30920100 sts _LENGTH+1,R3
00EC 20920000 sts _LENGTH,R2
00F0 50920300 sts _LENGTH+2+1,R5
00F4 40920200 sts _LENGTH+2,R4
00F8 .dbline 123
00F8 ; JS=0x00;
00F8 2224 clr R2
00FA 20920000 sts _JS,R2
00FE .dbline 124
00FE ; PORTA|=0x20;
00FE DD9A sbi 0x1b,5
0100 .dbline 125
0100 ; return(LENGTH);
0100 20910200 lds R18,_LENGTH+2
0104 30910300 lds R19,_LENGTH+2+1
0108 00910000 lds R16,_LENGTH
010C 10910100 lds R17,_LENGTH+1
0110 .dbline -2
0110 L6:
0110 0E940000 xcall pop_gset2
0114 .dbline 0 ; func end
0114 0895 ret
0116 .dbsym r i 16 c
0116 .dbend
0116 .dbfunc e EN_init _EN_init fV
.even
0116 _EN_init::
0116 .dbline -1
0116 .dbline 128
0116 ; }
0116 ; void EN_init(void)
0116 ; {
0116 .dbline 130
0116 ;
0116 ; _asm("sei");
0116 7894 sei
0118 .dbline -2
0118 .dbline 132
0118 ;
0118 ; }
0118 L14:
0118 .dbline 0 ; func end
0118 0895 ret
011A .dbend
011A .dbfunc e main _main fV
011A ; t -> y+6
011A ; l -> R20
011A ; h -> y+2
011A ; i -> R20
.even
011A _main::
011A 2A97 sbiw R28,10
011C .dbline -1
011C .dbline 147
011C ; /**************************************
011C ; **芯片类型:ATmega16
011C ; **时钟频率:8M
011C ; **硬件接口说明:无
011C ; **函数功能说明:主函数,首先等待接收命令,接收到23H则进行数据检测,数据处理,
011C ; **函数输入参数及说明:jydata,JSM
011C ; **函数返回值:无
011C ; **在本函数以外定义的变量:无
011C ; **调用的函数说明:SHUJU();DATATEND()
011C ; **修改人:
011C ; **修改日期:
011C ; **修改说明:
011C ; **************************************/
011C ; void main(void)
011C ; {
011C .dbline 148
011C ; unsigned char l=0,i;
011C 4427 clr R20
011E .dbline 154
011E ; float t;
011E ; long int h;
011E ;
011E ; //a.k=0;
011E ;
011E ; init_devices();
011E 0E940000 xcall _init_devices
0122 .dbline 155
0122 ; ext_init();
0122 0E940000 xcall _ext_init
0126 .dbline 156
0126 ; CLI();//读温度时关闭中断
0126 F894 cli
0128 .dbline 157
0128 ; Uart_PutChar(0x01);
0128 01E0 ldi R16,1
012A 0E940000 xcall _Uart_PutChar
012E .dbline 158
012E ; Uart_PutChar(0x02);
012E 02E0 ldi R16,2
0130 0E940000 xcall _Uart_PutChar
0134 .dbline 160
0134 ;
0134 ; l=Read_Temperature();
0134 0E940000 xcall _Read_Temperature
0138 .dbline 161
0138 ; t=temperature;
0138 40900200 lds R4,_temperature+2
013C 50900300 lds R5,_temperature+2+1
0140 20900000 lds R2,_temperature
0144 30900100 lds R3,_temperature+1
0148 FE01 movw R30,R28
014A 2682 std z+6,R2
014C 3782 std z+7,R3
014E 4086 std z+8,R4
0150 5186 std z+9,R5
0152 .dbline 163
0152 ;
0152 ; Read_EEPROM(EEBuffer,10,10);
0152 8AE0 ldi R24,10
0154 90E0 ldi R25,0
0156 9983 std y+1,R25
0158 8883 std y+0,R24
015A 2AE0 ldi R18,10
015C 00E0 ldi R16,<_EEBuffer
015E 10E0 ldi R17,>_EEBuffer
0160 0E940000 xcall _Read_EEPROM
0164 .dbline 164
0164 ; Uart_PutChar(EEBuffer[0]);
0164 00910800 lds R16,_EEBuffer
0168 0E940000 xcall _Uart_PutChar
016C .dbline 165
016C ; Uart_PutChar(EEBuffer[1]);
016C 00910900 lds R16,_EEBuffer+1
0170 0E940000 xcall _Uart_PutChar
0174 .dbline 166
0174 ; for(i=0;i<10;i++)
0174 09C0 xjmp L20
0176 L17:
0176 .dbline 167
0176 .dbline 168
0176 80E0 ldi R24,<_EEBuffer
0178 90E0 ldi R25,>_EEBuffer
017A E42F mov R30,R20
017C FF27 clr R31
017E E80F add R30,R24
0180 F91F adc R31,R25
0182 8AE0 ldi R24,10
0184 8083 std z+0,R24
0186 .dbline 169
0186 L18:
0186 .dbline 166
0186 4395 inc R20
0188 L20:
0188 .dbline 166
0188 4A30 cpi R20,10
018A A8F3 brlo L17
018C .dbline 170
018C ; {
018C ; EEBuffer[i]=0x0a;
018C ; }
018C ; EEBuffer[1]=0x0b;
018C 8BE0 ldi R24,11
018E 80930900 sts _EEBuffer+1,R24
0192 .dbline 171
0192 ; Write_EEPROM(EEBuffer,10,10);
0192 8AE0 ldi R24,10
0194 90E0 ldi R25,0
0196 9983 std y+1,R25
0198 8883 std y+0,R24
019A 2AE0 ldi R18,10
019C 00E0 ldi R16,<_EEBuffer
019E 10E0 ldi R17,>_EEBuffer
01A0 0E940000 xcall _Write_EEPROM
01A4 .dbline 173
01A4 ;
01A4 ; for(i=0;i<10;i++)
01A4 4427 clr R20
01A6 09C0 xjmp L25
01A8 L22:
01A8 .dbline 174
01A8 80E0 ldi R24,<_EEBuffer
01AA 90E0 ldi R25,>_EEBuffer
01AC E42F mov R30,R20
01AE FF27 clr R31
01B0 E80F add R30,R24
01B2 F91F adc R31,R25
01B4 2224 clr R2
01B6 2082 std z+0,R2
01B8 L23:
01B8 .dbline 173
01B8 4395 inc R20
01BA L25:
01BA .dbline 173
01BA 4A30 cpi R20,10
01BC A8F3 brlo L22
01BE .dbline 175
01BE ; EEBuffer[i]=0;
01BE ; Read_EEPROM(EEBuffer,10,10);
01BE 8AE0 ldi R24,10
01C0 90E0 ldi R25,0
01C2 9983 std y+1,R25
01C4 8883 std y+0,R24
01C6 2AE0 ldi R18,10
01C8 00E0 ldi R16,<_EEBuffer
01CA 10E0 ldi R17,>_EEBuffer
01CC 0E940000 xcall _Read_EEPROM
01D0 .dbline 176
01D0 ; SEI(); //开中断
01D0 7894 sei
01D2 .dbline 177
01D2 ; PORTA=0x00;
01D2 2224 clr R2
01D4 2BBA out 0x1b,R2
01D6 .dbline 178
01D6 ; DDRA=0x20;
01D6 80E2 ldi R24,32
01D8 8ABB out 0x1a,R24
01DA .dbline 179
01DA ; i=0;
01DA 4427 clr R20
01DC .dbline 180
01DC ; PORTD=0x00;
01DC 22BA out 0x12,R2
01DE .dbline 181
01DE ; DDRD=0x80;
01DE 80E8 ldi R24,128
01E0 81BB out 0x11,R24
01E2 .dbline 182
01E2 ; i=0;
01E2 .dbline 183
01E2 ; i=0;
01E2 .dbline 184
01E2 ; i=0;
01E2 .dbline 185
01E2 ; i=0;
01E2 .dbline 186
01E2 ; PORTD=0x00;
01E2 22BA out 0x12,R2
01E4 .dbline 187
01E4 ; i=0;
01E4 .dbline 188
01E4 ; PORTA=0x20;
01E4 80E2 ldi R24,32
01E6 8BBB out 0x1b,R24
01E8 06C0 xjmp L27
01EA L26:
01EA .dbline 195
01EA 4ADF xcall _measure
01EC FE01 movw R30,R28
01EE 0283 std z+2,R16
01F0 1383 std z+3,R17
01F2 2483 std z+4,R18
01F4 3583 std z+5,R19
01F6 L27:
01F6 .dbline 194
01F6 ;
01F6 ;
01F6 ; //Uart_PutChar(EEBuffer[0]);
01F6 ; //Uart_PutChar(EEBuffer[1]);
01F6 ; //SEI();
01F6 ; while(1)
01F6 F9CF xjmp L26
01F8 X0:
01F8 .dbline 197
01F8 ; h=measure();
01F8 ;
01F8 ; Uart_PutChar(0x03);
01F8 03E0 ldi R16,3
01FA 0E940000 xcall _Uart_PutChar
01FE .dbline 198
01FE ; Uart_PutChar(0x04);
01FE 04E0 ldi R16,4
0200 0E940000 xcall _Uart_PutChar
0204 L29:
0204 .dbline 199
0204 L30:
0204 .dbline 199
0204 FFCF xjmp L29
0206 X1:
0206 .dbline -2
0206 .dbline 201
0206 ; while(1);
0206 ;
0206 ; }
0206 L15:
0206 2A96 adiw R28,10
0208 .dbline 0 ; func end
0208 0895 ret
020A .dbsym l t 6 D
020A .dbsym r l 20 c
020A .dbsym l h 2 L
020A .dbsym r i 20 c
020A .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\MY_COMPUTER\d\avr16\atmegal16\main.c
0000 _LENGTH::
0000 .blkb 4
0004 .dbsym e LENGTH _LENGTH L
0004 _TIMEH::
0004 .blkb 2
0006 .dbsym e TIMEH _TIMEH i
0006 _TIMEL::
0006 .blkb 2
0008 .dbsym e TIMEL _TIMEL i
0008 _EEBuffer::
0008 .blkb 100
006C .dbsym e EEBuffer _EEBuffer A[100:100]c
006C _ReceiveBuf::
006C .blkb 150
0102 .dbsym e ReceiveBuf _ReceiveBuf A[150:150]c
0102 _SendBuf::
0102 .blkb 100
0166 .dbsym e SendBuf _SendBuf A[100:100]c
0166 _SendData::
0166 .blkb 100
01CA .dbsym e SendData _SendData A[100:100]c
01CA _b::
01CA .blkb 10
01D4 .dbstruct 0 10 _AT91S_PMC
01D4 .dbfield 0 k i
01D4 .dbfield 2 Reserved1 A[4:2]i
01D4 .dbfield 6 Reserved2 A[4:2]i
01D4 .dbend
01D4 .dbsym e b _b S[_AT91S_PMC]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -