?? pp.lis
字號:
03D0 .dbline 180
03D0 ; while(!((UCSRA)&(1<<UDRE)));
03D0 ; UDR=*data;data++;leng--;
03D0 ; }
03D0 ; }
03D0 ; //********************************************************發送RAM數據到串口32//
03D0 ; void TxRamUart(unsigned char *data,unsigned int leng)
03D0 ; {
03D0 09C0 rjmp L79
03D2 X12:
03D2 .dbline 182
03D2 ; while(leng)
03D2 ; {
03D2 L81:
03D2 .dbline 183
03D2 L82:
03D2 .dbline 183
03D2 5D9B sbis 0xb,5
03D4 FECF rjmp L81
03D6 .dbline 184
03D6 F801 movw R30,R16
03D8 2080 ldd R2,z+0
03DA 2CB8 out 0xc,R2
03DC .dbline 184
03DC 0F5F subi R16,255 ; offset = 1
03DE 1F4F sbci R17,255
03E0 .dbline 184
03E0 2150 subi R18,1
03E2 3040 sbci R19,0
03E4 .dbline 185
03E4 L79:
03E4 .dbline 181
03E4 2030 cpi R18,0
03E6 2307 cpc R18,R19
03E8 A1F7 brne L82
03EA X13:
03EA .dbline -2
03EA L77:
03EA .dbline 0 ; func end
03EA 0895 ret
03EC .dbsym r leng 18 i
03EC .dbsym r data 16 pc
03EC .dbend
03EC .dbfunc e CopyRom _CopyRom fc
03EC ; leng2 -> R20
03EC ; data2 -> R22,R23
03EC ; leng1 -> R18
03EC ; data1 -> R16,R17
.even
03EC _CopyRom::
03EC 00D0 rcall push_gset2
03EE 6C81 ldd R22,y+4
03F0 7D81 ldd R23,y+5
03F2 4E81 ldd R20,y+6
03F4 .dbline -1
03F4 .dbline 189
03F4 ; while(!((UCSRA)&(1<<UDRE)));
03F4 ; UDR=*data;data++;leng--;
03F4 ; }
03F4 ; }
03F4 ; //**************************************************************拷貝ROM數據33//
03F4 ; unsigned char CopyRom(const unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
03F4 ; {
03F4 0EC0 rjmp L86
03F6 L85:
03F6 .dbline 191
03F6 ; while(leng1)
03F6 ; {
03F6 .dbline 192
03F6 ; *data2=*data1;data2++;leng2--;data1++;leng1--;
03F6 F801 movw R30,R16
03F8 E491 lpm R30,Z
03FA DB01 movw R26,R22
03FC EC93 st x,R30
03FE .dbline 192
03FE 6F5F subi R22,255 ; offset = 1
0400 7F4F sbci R23,255
0402 .dbline 192
0402 4A95 dec R20
0404 .dbline 192
0404 0F5F subi R16,255 ; offset = 1
0406 1F4F sbci R17,255
0408 .dbline 192
0408 2A95 dec R18
040A .dbline 193
040A ; if(!leng2) return 1;
040A 4423 tst R20
040C 11F4 brne L88
040E .dbline 193
040E 01E0 ldi R16,1
0410 03C0 rjmp L84
0412 L88:
0412 .dbline 194
0412 L86:
0412 .dbline 190
0412 2223 tst R18
0414 81F7 brne L85
0416 .dbline 195
0416 ; }
0416 ; return 0;
0416 0027 clr R16
0418 .dbline -2
0418 L84:
0418 00D0 rcall pop_gset2
041A .dbline 0 ; func end
041A 0895 ret
041C .dbsym r leng2 20 c
041C .dbsym r data2 22 pc
041C .dbsym r leng1 18 c
041C .dbsym r data1 16 pkc
041C .dbend
041C .dbfunc e CopyRam _CopyRam fc
041C ; leng2 -> R20
041C ; data2 -> R22,R23
041C ; leng1 -> R18
041C ; data1 -> R16,R17
.even
041C _CopyRam::
041C 00D0 rcall push_gset2
041E 6C81 ldd R22,y+4
0420 7D81 ldd R23,y+5
0422 4E81 ldd R20,y+6
0424 .dbline -1
0424 .dbline 199
0424 ; }
0424 ; //**************************************************************拷貝RAM數據34//
0424 ; unsigned char CopyRam(unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
0424 ; {
0424 0EC0 rjmp L92
0426 L91:
0426 .dbline 201
0426 ; while(leng1)
0426 ; {
0426 .dbline 202
0426 ; *data2=*data1;data2++;leng2--;data1++;leng1--;
0426 F801 movw R30,R16
0428 2080 ldd R2,z+0
042A FB01 movw R30,R22
042C 2082 std z+0,R2
042E .dbline 202
042E 6F5F subi R22,255 ; offset = 1
0430 7F4F sbci R23,255
0432 .dbline 202
0432 4A95 dec R20
0434 .dbline 202
0434 0F5F subi R16,255 ; offset = 1
0436 1F4F sbci R17,255
0438 .dbline 202
0438 2A95 dec R18
043A .dbline 203
043A ; if(!leng2) return 1;
043A 4423 tst R20
043C 11F4 brne L94
043E .dbline 203
043E 01E0 ldi R16,1
0440 03C0 rjmp L90
0442 L94:
0442 .dbline 204
0442 L92:
0442 .dbline 200
0442 2223 tst R18
0444 81F7 brne L91
0446 .dbline 205
0446 ; }
0446 ; return 0;
0446 0027 clr R16
0448 .dbline -2
0448 L90:
0448 00D0 rcall pop_gset2
044A .dbline 0 ; func end
044A 0895 ret
044C .dbsym r leng2 20 c
044C .dbsym r data2 22 pc
044C .dbsym r leng1 18 c
044C .dbsym r data1 16 pc
044C .dbend
044C .dbfunc e CmpsRom _CmpsRom fc
044C ; leng2 -> R20
044C ; data2 -> R22,R23
044C ; leng1 -> R18
044C ; data1 -> R16,R17
.even
044C _CmpsRom::
044C 00D0 rcall push_gset2
044E 6C81 ldd R22,y+4
0450 7D81 ldd R23,y+5
0452 4E81 ldd R20,y+6
0454 .dbline -1
0454 .dbline 209
0454 ; }
0454 ; //**************************************************************比較ROM數據35//
0454 ; unsigned char CmpsRom(unsigned char *data1,unsigned char leng1,const unsigned char *data2,unsigned char leng2)
0454 ; {
0454 11C0 rjmp L98
0456 L97:
0456 .dbline 211
0456 ; while(leng1)
0456 ; {
0456 .dbline 212
0456 ; if(*data1!=*data2) return 1;
0456 FB01 movw R30,R22
0458 E491 lpm R30,Z
045A D801 movw R26,R16
045C 2C90 ld R2,x
045E 2E16 cp R2,R30
0460 11F0 breq L100
0462 .dbline 212
0462 01E0 ldi R16,1
0464 0CC0 rjmp L96
0466 L100:
0466 .dbline 213
0466 ; data1++;data2++;leng1--;leng2--;
0466 0F5F subi R16,255 ; offset = 1
0468 1F4F sbci R17,255
046A .dbline 213
046A 6F5F subi R22,255 ; offset = 1
046C 7F4F sbci R23,255
046E .dbline 213
046E 2A95 dec R18
0470 .dbline 213
0470 4A95 dec R20
0472 .dbline 214
0472 ; if(!leng2) return 0;
0472 11F4 brne L102
0474 .dbline 214
0474 0027 clr R16
0476 03C0 rjmp L96
0478 L102:
0478 .dbline 215
0478 L98:
0478 .dbline 210
0478 2223 tst R18
047A 69F7 brne L97
047C .dbline 216
047C ; }
047C ; return 1;
047C 01E0 ldi R16,1
047E .dbline -2
047E L96:
047E 00D0 rcall pop_gset2
0480 .dbline 0 ; func end
0480 0895 ret
0482 .dbsym r leng2 20 c
0482 .dbsym r data2 22 pkc
0482 .dbsym r leng1 18 c
0482 .dbsym r data1 16 pc
0482 .dbend
0482 .dbfunc e CmpsRam _CmpsRam fc
0482 ; leng2 -> R20
0482 ; data2 -> R22,R23
0482 ; leng1 -> R18
0482 ; data1 -> R16,R17
.even
0482 _CmpsRam::
0482 00D0 rcall push_gset2
0484 6C81 ldd R22,y+4
0486 7D81 ldd R23,y+5
0488 4E81 ldd R20,y+6
048A .dbline -1
048A .dbline 220
048A ; }
048A ; //**************************************************************比較RAM數據36//
048A ; unsigned char CmpsRam(unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
048A ; {
048A 11C0 rjmp L106
048C L105:
048C .dbline 222
048C ; while(leng1)
048C ; {
048C .dbline 223
048C ; if(*data1!=*data2) return 1;
048C FB01 movw R30,R22
048E 2080 ldd R2,z+0
0490 F801 movw R30,R16
0492 3080 ldd R3,z+0
0494 3214 cp R3,R2
0496 11F0 breq L108
0498 .dbline 223
0498 01E0 ldi R16,1
049A 0CC0 rjmp L104
049C L108:
049C .dbline 224
049C ; data1++;data2++;leng1--;leng2--;
049C 0F5F subi R16,255 ; offset = 1
049E 1F4F sbci R17,255
04A0 .dbline 224
04A0 6F5F subi R22,255 ; offset = 1
04A2 7F4F sbci R23,255
04A4 .dbline 224
04A4 2A95 dec R18
04A6 .dbline 224
04A6 4A95 dec R20
04A8 .dbline 225
04A8 ; if(!leng2) return 0;
04A8 11F4 brne L110
04AA .dbline 225
04AA 0027 clr R16
04AC 03C0 rjmp L104
04AE L110:
04AE .dbline 226
04AE L106:
04AE .dbline 221
04AE 2223 tst R18
04B0 69F7 brne L105
04B2 .dbline 227
04B2 ; }
04B2 ; return 1;
04B2 01E0 ldi R16,1
04B4 .dbline -2
04B4 L104:
04B4 00D0 rcall pop_gset2
04B6 .dbline 0 ; func end
04B6 0895 ret
04B8 .dbsym r leng2 20 c
04B8 .dbsym r data2 22 pc
04B8 .dbsym r leng1 18 c
04B8 .dbsym r data1 16 pc
04B8 .dbend
04B8 .dbfunc e delay_ms _delay_ms fV
04B8 ; time -> R16,R17
.even
04B8 _delay_ms::
04B8 00D0 rcall push_gset2
04BA .dbline -1
04BA .dbline 231
04BA ; }
04BA ; //***************************************************************毫秒級延時37//
04BA ; void delay_ms(unsigned int time)
04BA ; {
04BA 11C0 rjmp L114
04BC X14:
04BC .dbline 233
04BC ; while(time)
04BC ; {
04BC L116:
04BC .dbline 234
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -