7135_finish.lis
来自「ad7135的avr16的源程序」· LIS 代码 · 共 786 行 · 第 1/3 页
LIS
786 行
01B4 .dbline 184
01B4 ; UCSRC=0X86;
01B4 86E8 ldi R24,134
01B6 80BD out 0x20,R24
01B8 .dbline 185
01B8 ; UCSRB=0X98;
01B8 88E9 ldi R24,152
01BA 8AB9 out 0xa,R24
01BC .dbline -2
01BC L19:
01BC .dbline 0 ; func end
01BC 0895 ret
01BE .dbend
01BE .dbfunc e USART_TX _USART_TX fV
01BE ; data -> R20
.even
01BE _USART_TX::
01BE 0E940000 xcall push_gset1
01C2 402F mov R20,R16
01C4 .dbline -1
01C4 .dbline 193
01C4 ; }
01C4 ; //*****************************************************
01C4 ; //函数名称:void USART_INIT(void)
01C4 ; //函数功能:8M,波特率9600
01C4 ; //注意事项:
01C4 ; //*****************************************************
01C4 ; void USART_TX(unsigned char data)
01C4 ; {
01C4 .dbline 194
01C4 ; UDR=data;
01C4 4CB9 out 0xc,R20
01C6 L21:
01C6 .dbline 196
01C6 L22:
01C6 .dbline 195
01C6 ; while(!(UCSRA&(1<<TXC)))
01C6 5E9B sbis 0xb,6
01C8 FECF rjmp L21
01CA .dbline 197
01CA ; ;
01CA ; DELAY_NMS(1);
01CA 01E0 ldi R16,1
01CC 10E0 ldi R17,0
01CE 21DF xcall _DELAY_NMS
01D0 .dbline -2
01D0 L20:
01D0 0E940000 xcall pop_gset1
01D4 .dbline 0 ; func end
01D4 0895 ret
01D6 .dbsym r data 20 c
01D6 .dbend
.area vector(rom, abs)
.org 44
002C 0C94EB00 jmp _usart_receive
.area text(rom, con, rel)
01D6 .dbfile 7135_finish.c
01D6 .dbfunc e usart_receive _usart_receive fV
01D6 ; d -> R16
.even
01D6 _usart_receive::
01D6 0A93 st -y,R16
01D8 0FB7 in R16,0x3f
01DA 0A93 st -y,R16
01DC .dbline -1
01DC .dbline 206
01DC ; }
01DC ; //*****************************************************
01DC ; //函数名称:void USART_INIT(void)
01DC ; //函数功能:下位机收到0x01,则进行1次ad转换
01DC ; //注意事项:
01DC ; //*****************************************************
01DC ; #pragma interrupt_handler usart_receive:12
01DC ; void usart_receive(void)
01DC ; {
01DC .dbline 208
01DC ; unsigned char d;
01DC ; d=UDR;
01DC 0CB1 in R16,0xc
01DE .dbline 209
01DE ; if(d==0x01)
01DE 0130 cpi R16,1
01E0 19F4 brne L25
01E2 .dbline 210
01E2 ; {
01E2 .dbline 211
01E2 ; PORTB|=(1<<0);
01E2 C09A sbi 0x18,0
01E4 .dbline 212
01E4 ; SEI();
01E4 7894 sei
01E6 .dbline 213
01E6 ; }
01E6 02C0 xjmp L26
01E8 L25:
01E8 .dbline 215
01E8 .dbline 216
01E8 C098 cbi 0x18,0
01EA .dbline 217
01EA F894 cli
01EC .dbline 218
01EC L26:
01EC .dbline -2
01EC L24:
01EC 0991 ld R16,y+
01EE 0FBF out 0x3f,R16
01F0 0991 ld R16,y+
01F2 .dbline 0 ; func end
01F2 1895 reti
01F4 .dbsym r d 16 c
01F4 .dbend
01F4 .dbfunc e DATA_DISPLAY _DATA_DISPLAY fV
01F4 ; temp -> y+0
01F4 ; i -> R20
01F4 ; data -> R20,R21
.even
01F4 _DATA_DISPLAY::
01F4 0E940000 xcall push_gset1
01F8 A801 movw R20,R16
01FA 2497 sbiw R28,4
01FC .dbline -1
01FC .dbline 226
01FC ; else
01FC ; {
01FC ; PORTB&=~(1<<0);
01FC ; CLI();
01FC ; }
01FC ; }
01FC ; //*****************************************************
01FC ; //函数名称:void USART_INIT(void)
01FC ; //函数功能:8M,波特率9600
01FC ; //注意事项:
01FC ; //*****************************************************
01FC ; void DATA_DISPLAY(unsigned int data)
01FC ; {
01FC .dbline 228
01FC ; unsigned char temp[4],i;
01FC ; temp[0]=data/1000;
01FC 28EE ldi R18,1000
01FE 33E0 ldi R19,3
0200 8A01 movw R16,R20
0202 0E940000 xcall div16u
0206 0883 std y+0,R16
0208 .dbline 229
0208 ; temp[1]=(data/100)%10;
0208 24E6 ldi R18,100
020A 30E0 ldi R19,0
020C 8A01 movw R16,R20
020E 0E940000 xcall div16u
0212 2AE0 ldi R18,10
0214 30E0 ldi R19,0
0216 0E940000 xcall mod16u
021A 0983 std y+1,R16
021C .dbline 230
021C ; temp[2]=(data/10)%10;
021C 2AE0 ldi R18,10
021E 30E0 ldi R19,0
0220 8A01 movw R16,R20
0222 0E940000 xcall div16u
0226 2AE0 ldi R18,10
0228 30E0 ldi R19,0
022A 0E940000 xcall mod16u
022E 0A83 std y+2,R16
0230 .dbline 231
0230 ; temp[3]=data%10;
0230 2AE0 ldi R18,10
0232 30E0 ldi R19,0
0234 8A01 movw R16,R20
0236 0E940000 xcall mod16u
023A 0B83 std y+3,R16
023C .dbline 232
023C ; for(i=0;i<4;i++)
023C 4427 clr R20
023E 0BC0 xjmp L34
0240 L31:
0240 .dbline 233
0240 .dbline 234
0240 CE01 movw R24,R28
0242 E42F mov R30,R20
0244 FF27 clr R31
0246 E80F add R30,R24
0248 F91F adc R31,R25
024A 0081 ldd R16,z+0
024C B8DF xcall _USART_TX
024E .dbline 235
024E 01E0 ldi R16,1
0250 10E0 ldi R17,0
0252 DFDE xcall _DELAY_NMS
0254 .dbline 236
0254 L32:
0254 .dbline 232
0254 4395 inc R20
0256 L34:
0256 .dbline 232
0256 4430 cpi R20,4
0258 98F3 brlo L31
025A .dbline -2
025A L27:
025A 2496 adiw R28,4
025C 0E940000 xcall pop_gset1
0260 .dbline 0 ; func end
0260 0895 ret
0262 .dbsym l temp 0 A[4:4]c
0262 .dbsym r i 20 c
0262 .dbsym r data 20 i
0262 .dbend
0262 .dbfunc e main _main fV
.even
0262 _main::
0262 .dbline -1
0262 .dbline 242
0262 ; {
0262 ; USART_TX(temp[i]);
0262 ; DELAY_NMS(1);
0262 ; }
0262 ; }
0262 ; //**********************************************************
0262 ; //主函数
0262 ; //**********************************************************
0262 ; void main(void)
0262 ; {
0262 .dbline 243
0262 ; CLI();
0262 F894 cli
0264 .dbline 244
0264 ; PORT_INIT();
0264 E3DE xcall _PORT_INIT
0266 .dbline 245
0266 ; T0_125K();
0266 EADE xcall _T0_125K
0268 .dbline 246
0268 ; INT0_INIT();
0268 F4DE xcall _INT0_INIT
026A .dbline 247
026A ; T2_INIT();
026A 86DF xcall _T2_INIT
026C .dbline 248
026C ; USART_INIT();
026C 9FDF xcall _USART_INIT
026E .dbline 249
026E ; SEI();
026E 7894 sei
0270 L36:
0270 .dbline 252
0270 L37:
0270 .dbline 251
0270 FFCF xjmp L36
0272 X2:
0272 .dbline -2
0272 L35:
0272 .dbline 0 ; func end
0272 0895 ret
0274 .dbend
.area bss(ram, con, rel)
0000 .dbfile 7135_finish.c
0000 _VIN::
0000 .blkb 2
0002 .dbsym e VIN _VIN i
0002 _T2_NUM::
0002 .blkb 4
0006 .dbsym e T2_NUM _T2_NUM l
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?