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