📄 test_7135.lis
字号:
01C0 .dbline -2
01C0 L19:
01C0 .dbline 0 ; func end
01C0 0895 ret
01C2 .dbend
01C2 .dbfunc e USART_TX _USART_TX fV
01C2 ; data -> R20
.even
01C2 _USART_TX::
01C2 0E940000 xcall push_gset1
01C6 402F mov R20,R16
01C8 .dbline -1
01C8 .dbline 171
01C8 ; }
01C8 ; //*****************************************************
01C8 ; //函数名称:void USART_INIT(void)
01C8 ; //函数功能:8M,波特率9600
01C8 ; //注意事项:
01C8 ; //*****************************************************
01C8 ; void USART_TX(unsigned char data)
01C8 ; {
01C8 .dbline 172
01C8 ; UDR=data;
01C8 4CB9 out 0xc,R20
01CA L21:
01CA .dbline 174
01CA L22:
01CA .dbline 173
01CA ; while(!(UCSRA&(1<<TXC)))
01CA 5E9B sbis 0xb,6
01CC FECF rjmp L21
01CE .dbline 175
01CE ; ;
01CE ; DELAY_NMS(1);
01CE 01E0 ldi R16,1
01D0 10E0 ldi R17,0
01D2 1FDF xcall _DELAY_NMS
01D4 .dbline -2
01D4 L20:
01D4 0E940000 xcall pop_gset1
01D8 .dbline 0 ; func end
01D8 0895 ret
01DA .dbsym r data 20 c
01DA .dbend
.area vector(rom, abs)
.org 44
002C 0C94ED00 jmp _usart_receive
.area text(rom, con, rel)
01DA .dbfile test_7135.c
01DA .dbfunc e usart_receive _usart_receive fV
01DA ; d -> R16
.even
01DA _usart_receive::
01DA 0A93 st -y,R16
01DC 0FB7 in R16,0x3f
01DE 0A93 st -y,R16
01E0 .dbline -1
01E0 .dbline 184
01E0 ; }
01E0 ; //*****************************************************
01E0 ; //函数名称:void USART_INIT(void)
01E0 ; //函数功能:下位机收到0x01,则进行1次ad转换
01E0 ; //注意事项:
01E0 ; //*****************************************************
01E0 ; #pragma interrupt_handler usart_receive:12
01E0 ; void usart_receive(void)
01E0 ; {
01E0 .dbline 186
01E0 ; unsigned char d;
01E0 ; d=UDR;
01E0 0CB1 in R16,0xc
01E2 .dbline 187
01E2 ; if(d==0x01)
01E2 0130 cpi R16,1
01E4 19F4 brne L25
01E6 .dbline 188
01E6 ; {
01E6 .dbline 189
01E6 ; PORTB|=(1<<0);
01E6 C09A sbi 0x18,0
01E8 .dbline 190
01E8 ; SEI();
01E8 7894 sei
01EA .dbline 191
01EA ; }
01EA 02C0 xjmp L26
01EC L25:
01EC .dbline 193
01EC .dbline 194
01EC C098 cbi 0x18,0
01EE .dbline 195
01EE F894 cli
01F0 .dbline 196
01F0 L26:
01F0 .dbline -2
01F0 L24:
01F0 0991 ld R16,y+
01F2 0FBF out 0x3f,R16
01F4 0991 ld R16,y+
01F6 .dbline 0 ; func end
01F6 1895 reti
01F8 .dbsym r d 16 c
01F8 .dbend
01F8 .dbfunc e DATA_DISPLAY _DATA_DISPLAY fV
01F8 ; temp -> y+0
01F8 ; i -> R20
01F8 ; data -> R20,R21
.even
01F8 _DATA_DISPLAY::
01F8 0E940000 xcall push_gset1
01FC A801 movw R20,R16
01FE 2497 sbiw R28,4
0200 .dbline -1
0200 .dbline 204
0200 ; else
0200 ; {
0200 ; PORTB&=~(1<<0);
0200 ; CLI();
0200 ; }
0200 ; }
0200 ; //*****************************************************
0200 ; //函数名称:void USART_INIT(void)
0200 ; //函数功能:8M,波特率9600
0200 ; //注意事项:
0200 ; //*****************************************************
0200 ; void DATA_DISPLAY(unsigned int data)
0200 ; {
0200 .dbline 206
0200 ; unsigned char temp[4],i;
0200 ; temp[0]=data/1000;
0200 28EE ldi R18,1000
0202 33E0 ldi R19,3
0204 8A01 movw R16,R20
0206 0E940000 xcall div16u
020A 0883 std y+0,R16
020C .dbline 207
020C ; temp[1]=(data/100)%10;
020C 24E6 ldi R18,100
020E 30E0 ldi R19,0
0210 8A01 movw R16,R20
0212 0E940000 xcall div16u
0216 2AE0 ldi R18,10
0218 30E0 ldi R19,0
021A 0E940000 xcall mod16u
021E 0983 std y+1,R16
0220 .dbline 208
0220 ; temp[2]=(data/10)%10;
0220 2AE0 ldi R18,10
0222 30E0 ldi R19,0
0224 8A01 movw R16,R20
0226 0E940000 xcall div16u
022A 2AE0 ldi R18,10
022C 30E0 ldi R19,0
022E 0E940000 xcall mod16u
0232 0A83 std y+2,R16
0234 .dbline 209
0234 ; temp[3]=data%10;
0234 2AE0 ldi R18,10
0236 30E0 ldi R19,0
0238 8A01 movw R16,R20
023A 0E940000 xcall mod16u
023E 0B83 std y+3,R16
0240 .dbline 210
0240 ; for(i=0;i<4;i++)
0240 4427 clr R20
0242 0BC0 xjmp L34
0244 L31:
0244 .dbline 211
0244 .dbline 212
0244 CE01 movw R24,R28
0246 E42F mov R30,R20
0248 FF27 clr R31
024A E80F add R30,R24
024C F91F adc R31,R25
024E 0081 ldd R16,z+0
0250 B8DF xcall _USART_TX
0252 .dbline 213
0252 01E0 ldi R16,1
0254 10E0 ldi R17,0
0256 DDDE xcall _DELAY_NMS
0258 .dbline 214
0258 L32:
0258 .dbline 210
0258 4395 inc R20
025A L34:
025A .dbline 210
025A 4430 cpi R20,4
025C 98F3 brlo L31
025E .dbline -2
025E L27:
025E 2496 adiw R28,4
0260 0E940000 xcall pop_gset1
0264 .dbline 0 ; func end
0264 0895 ret
0266 .dbsym l temp 0 A[4:4]c
0266 .dbsym r i 20 c
0266 .dbsym r data 20 i
0266 .dbend
0266 .dbfunc e main _main fV
.even
0266 _main::
0266 .dbline -1
0266 .dbline 220
0266 ; {
0266 ; USART_TX(temp[i]);
0266 ; DELAY_NMS(1);
0266 ; }
0266 ; }
0266 ; //**********************************************************
0266 ; //主函数
0266 ; //**********************************************************
0266 ; void main(void)
0266 ; {
0266 .dbline 221
0266 ; CLI();
0266 F894 cli
0268 .dbline 222
0268 ; PORT_INIT();
0268 E1DE xcall _PORT_INIT
026A .dbline 223
026A ; T0_125K();
026A E8DE xcall _T0_125K
026C .dbline 224
026C ; INT0_INIT();
026C F2DE xcall _INT0_INIT
026E .dbline 225
026E ; T1_INIT();
026E 85DF xcall _T1_INIT
0270 .dbline 226
0270 ; USART_INIT();
0270 9FDF xcall _USART_INIT
0272 .dbline 227
0272 ; SEI();
0272 7894 sei
0274 L36:
0274 .dbline 230
0274 L37:
0274 .dbline 229
0274 FFCF xjmp L36
0276 X2:
0276 .dbline -2
0276 L35:
0276 .dbline 0 ; func end
0276 0895 ret
0278 .dbend
.area bss(ram, con, rel)
0000 .dbfile test_7135.c
0000 _VIN::
0000 .blkb 2
0002 .dbsym e VIN _VIN i
0002 _T1_NUM::
0002 .blkb 4
0006 .dbsym e T1_NUM _T1_NUM l
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -