📄 display_board3.0.lis
字号:
0392 ; //存储数据到外部RAM
0392 ;
0392 ; void data_store(char data)
0392 ; {
0392 .dbline 283
0392 ; if((data ==76) &&(FileEnd ==1)) //数据起始位检测
0392 4C34 cpi R20,76
0394 79F4 brne L70
0396 80912500 lds R24,_FileEnd
039A 8130 cpi R24,1
039C 59F4 brne L70
039E .dbline 284
039E ; {
039E .dbline 285
039E ; HeadEN =1; //开启头文件数据传输
039E 81E0 ldi R24,1
03A0 80932700 sts _HeadEN,R24
03A4 .dbline 286
03A4 ; HeadLoad =0; //头文件指针清零
03A4 2224 clr R2
03A6 20922600 sts _HeadLoad,R2
03AA .dbline 287
03AA ; DataIndex =0; //存储数据指针清零
03AA 3324 clr R3
03AC 30922900 sts _DataIndex+1,R3
03B0 20922800 sts _DataIndex,R2
03B4 .dbline 288
03B4 ; }
03B4 L70:
03B4 .dbline 289
03B4 ; if((HeadEN ==0) &&(FileEnd ==0))
03B4 20902700 lds R2,_HeadEN
03B8 2220 tst R2
03BA 09F0 breq X2
03BC 44C0 xjmp L72
03BE X2:
03BE 20902500 lds R2,_FileEnd
03C2 2220 tst R2
03C4 09F0 breq X3
03C6 3FC0 xjmp L72
03C8 X3:
03C8 .dbline 290
03C8 ; {
03C8 .dbline 291
03C8 ; RAM_Write(DataIndex,data); //数组送数
03C8 242F mov R18,R20
03CA 00912800 lds R16,_DataIndex
03CE 10912900 lds R17,_DataIndex+1
03D2 B0DF xcall _RAM_Write
03D4 .dbline 292
03D4 ; DataIndex++;
03D4 80912800 lds R24,_DataIndex
03D8 90912900 lds R25,_DataIndex+1
03DC 0196 adiw R24,1
03DE 90932900 sts _DataIndex+1,R25
03E2 80932800 sts _DataIndex,R24
03E6 .dbline 293
03E6 ; if(DataIndex <2) //送文件长度数据到变量
03E6 8230 cpi R24,2
03E8 E0E0 ldi R30,0
03EA 9E07 cpc R25,R30
03EC 34F4 brge L74
03EE .dbline 294
03EE ; {
03EE .dbline 296
03EE ; //FileLength =data;
03EE ; FileLength =1216;
03EE 80EC ldi R24,1216
03F0 94E0 ldi R25,4
03F2 90932B00 sts _FileLength+1,R25
03F6 80932A00 sts _FileLength,R24
03FA .dbline 297
03FA ; }
03FA L74:
03FA .dbline 298
03FA ; if(DataIndex ==1) //送文件长度数据到变量
03FA 80912800 lds R24,_DataIndex
03FE 90912900 lds R25,_DataIndex+1
0402 8130 cpi R24,1
0404 E0E0 ldi R30,0
0406 9E07 cpc R25,R30
0408 01F4 brne L76
040A .dbline 299
040A ; {
040A .dbline 301
040A ; //FileLength =data |(FileLength<<8);
040A ; } //数据指针
040A L76:
040A .dbline 302
040A ; if(((DataIndex >=FileLength)||(DataIndex >=1216))&& (DataIndex >16))
040A 20902A00 lds R2,_FileLength
040E 30902B00 lds R3,_FileLength+1
0412 40902800 lds R4,_DataIndex
0416 50902900 lds R5,_DataIndex+1
041A 4214 cp R4,R2
041C 5304 cpc R5,R3
041E 2CF4 brge L80
0420 C201 movw R24,R4
0422 803C cpi R24,192
0424 E4E0 ldi R30,4
0426 9E07 cpc R25,R30
0428 74F0 brlt L78
042A L80:
042A 80E1 ldi R24,16
042C 90E0 ldi R25,0
042E 20902800 lds R2,_DataIndex
0432 30902900 lds R3,_DataIndex+1
0436 8215 cp R24,R2
0438 9305 cpc R25,R3
043A 2CF4 brge L78
043C .dbline 303
043C ; {
043C .dbline 304
043C ; HeadEN =1;
043C 81E0 ldi R24,1
043E 80932700 sts _HeadEN,R24
0442 .dbline 305
0442 ; FileEnd =1;
0442 80932500 sts _FileEnd,R24
0446 .dbline 306
0446 ; }
0446 L78:
0446 .dbline 307
0446 ; }
0446 L72:
0446 .dbline 308
0446 ; if(HeadEN ==1) //循环检测文件起始标志
0446 80912700 lds R24,_HeadEN
044A 8130 cpi R24,1
044C 01F5 brne L81
044E .dbline 309
044E ; {
044E .dbline 310
044E ; Head[HeadLoad] =data;
044E 80E0 ldi R24,<_Head
0450 90E0 ldi R25,>_Head
0452 E0912600 lds R30,_HeadLoad
0456 FF27 clr R31
0458 E80F add R30,R24
045A F91F adc R31,R25
045C 4083 std z+0,R20
045E .dbline 311
045E ; HeadLoad++;
045E 80912600 lds R24,_HeadLoad
0462 8F5F subi R24,255 ; addi 1
0464 80932600 sts _HeadLoad,R24
0468 .dbline 312
0468 ; if(HeadLoad ==3)
0468 8330 cpi R24,3
046A 89F4 brne L83
046C .dbline 313
046C ; {
046C .dbline 314
046C ; if((Head[0] ==76) && (Head[1] ==69) &&(Head[2] ==68))//文件起始表示吻合
046C 80910000 lds R24,_Head
0470 8C34 cpi R24,76
0472 69F4 brne L85
0474 80910100 lds R24,_Head+1
0478 8534 cpi R24,69
047A 49F4 brne L85
047C 80910200 lds R24,_Head+2
0480 8434 cpi R24,68
0482 29F4 brne L85
0484 .dbline 315
0484 ; {
0484 .dbline 316
0484 ; HeadEN =0;
0484 2224 clr R2
0486 20922700 sts _HeadEN,R2
048A .dbline 317
048A ; FileEnd =0;
048A 20922500 sts _FileEnd,R2
048E .dbline 318
048E ; }
048E L85:
048E .dbline 319
048E ; }
048E L83:
048E .dbline 320
048E L81:
048E .dbline -2
048E L69:
048E 0E940000 xcall pop_gset1
0492 .dbline 0 ; func end
0492 0895 ret
0494 .dbsym r data 20 c
0494 .dbend
0494 .dbfunc e Disp_Model _Disp_Model fV
0494 ; PFileMax -> R16,R17
0494 ; file_length -> R18,R19
.even
0494 _Disp_Model::
0494 .dbline -1
0494 .dbline 328
0494 ; }
0494 ; }
0494 ; /**************************************************
0494 ;
0494 ; 显示效果处理
0494 ;
0494 ; ****************************************************/
0494 ; void Disp_Model(void)
0494 ; {
0494 .dbline 329
0494 ; unsigned int file_length =0;
0494 2227 clr R18
0496 3327 clr R19
0498 .dbline 333
0498 ; int PFileMax;
0498 ; //DispModel =RAM_Read(2) & (RAM_Read(3)<<8); //model控制字节
0498 ; //PFileMax =(RAM_Read(0) & RAM_Read(1)<<8)>>3; //计算缓冲区域的最大列数
0498 ; if(ModelDelayTime ==0)
0498 20903000 lds R2,_ModelDelayTime
049C 30903100 lds R3,_ModelDelayTime+1
04A0 2220 tst R2
04A2 09F0 breq X8
04A4 84C0 xjmp L90
04A6 X8:
04A6 3320 tst R3
04A8 09F0 breq X9
04AA 81C0 xjmp L90
04AC X9:
04AC X4:
04AC .dbline 334
04AC ; {
04AC .dbline 335
04AC ; switch(DispModel)
04AC 20912F00 lds R18,_DispModel
04B0 3327 clr R19
04B2 2030 cpi R18,0
04B4 2307 cpc R18,R19
04B6 B9F0 breq L95
04B8 X5:
04B8 2130 cpi R18,1
04BA E0E0 ldi R30,0
04BC 3E07 cpc R19,R30
04BE F9F0 breq L96
04C0 2230 cpi R18,2
04C2 E0E0 ldi R30,0
04C4 3E07 cpc R19,R30
04C6 29F1 breq L97
04C8 2330 cpi R18,3
04CA E0E0 ldi R30,0
04CC 3E07 cpc R19,R30
04CE 09F4 brne X10
04D0 68C0 xjmp L93
04D2 X10:
04D2 2430 cpi R18,4
04D4 E0E0 ldi R30,0
04D6 3E07 cpc R19,R30
04D8 31F1 breq L99
04DA 2530 cpi R18,5
04DC E0E0 ldi R30,0
04DE 3E07 cpc R19,R30
04E0 09F4 brne X11
04E2 5FC0 xjmp L93
04E4 X11:
04E4 5EC0 xjmp L92
04E6 X6:
04E6 .dbline 336
04E6 ; {
04E6 L95:
04E6 .dbline 338
04E6 ; case 0:
04E6 ; { //基本显示
04E6 .dbline 339
04E6 ; PDataYMin =4;
04E6 84E0 ldi R24,4
04E8 90E0 ldi R25,0
04EA 90932400 sts _PDataYMin+1,R25
04EE 80932300 sts _PDataYMin,R24
04F2 .dbline 340
04F2 ; PDataYMax =154;
04F2 8AE9 ldi R24,154
04F4 90932200 sts _PDataYMax+1,R25
04F8 80932100 sts _PDataYMax,R24
04FC .dbline 341
04FC ; break;
04FC 52C0 xjmp L93
04FE L96:
04FE .dbline 344
04FE ; }
04FE ; case 1:
04FE ; { //滚屏
04FE .dbline 345
04FE ; PDataY++;
04FE 80911F00 lds R24,_PDataY
0502 90912000 lds R25,_PDataY+1
0506 0196 adiw R24,1
0508 90932000 sts _PDataY+1,R25
050C 80931F00 sts _PDataY,R24
0510 .dbline 346
0510 ; break;
0510 48C0 xjmp L93
0512 L97:
0512 .dbline 349
0512 ; }
0512 ; case 2:
0512 ; { //反向滚屏
0512 .dbline 350
0512 ; PDataY--;
0512 80911F00 lds R24,_PDataY
0516 90912000 lds R25,_PDataY+1
051A 0197 sbiw R24,1
051C 90932000 sts _PDataY+1,R25
0520 80931F00 sts _PDataY,R24
0524 .dbline 351
0524 ; break;
0524 3EC0 xjmp L93
0526 X7:
0526 .dbline 354
0526 ; }
0526 ; case 3:
0526 ; {
0526 .dbline 355
0526 ; break;
0526 L99:
0526 .dbline 358
0526 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -