📄 display_board2.0.lis
字号:
0260 L51:
0260 .dbline 210
0260 ; else
0260 ; PORTC |= 0b10000000;
0260 AF9A sbi 0x15,7
0262 L52:
0262 .dbline 211
0262 939A sbi 0x12,3
0264 .dbline 212
0264 82B3 in R24,0x12
0266 877F andi R24,247
0268 82BB out 0x12,R24
026A .dbline 213
026A L48:
026A .dbline 205
026A 4395 inc R20
026C L50:
026C .dbline 205
026C 4830 cpi R20,8
026E 68F3 brlo L47
0270 .dbline -2
0270 L46:
0270 0E940000 xcall pop_gset2
0274 .dbline 0 ; func end
0274 0895 ret
0276 .dbsym r count 20 c
0276 .dbsym r send_data 22 c
0276 .dbend
0276 .dbfunc e Screen_send _Screen_send fV
0276 ; i -> R20
.even
0276 _Screen_send::
0276 0E940000 xcall push_gset1
027A .dbline -1
027A .dbline 216
027A ; PORTD |=0b00001000; //送SCK信号
027A ; PORTD &=0b11110111;
027A ; }
027A ; }
027A ; void Screen_send(void)
027A ; {
027A .dbline 218
027A ; char i;
027A ; PORTD &= 0b11101111; //送RCK信号,底电平
027A 82B3 in R24,0x12
027C 8F7E andi R24,239
027E 82BB out 0x12,R24
0280 .dbline 219
0280 ; for(i =0;i <8;i++)
0280 4427 clr R20
0282 09C0 xjmp L57
0284 L54:
0284 .dbline 220
0284 .dbline 221
0284 80E0 ldi R24,<_DispTemp
0286 90E0 ldi R25,>_DispTemp
0288 E42F mov R30,R20
028A FF27 clr R31
028C E80F add R30,R24
028E F91F adc R31,R25
0290 0081 ldd R16,z+0
0292 D6DF xcall _SPI_data_send
0294 .dbline 222
0294 L55:
0294 .dbline 219
0294 4395 inc R20
0296 L57:
0296 .dbline 219
0296 4830 cpi R20,8
0298 A8F3 brlo L54
029A .dbline 223
029A ; {
029A ; SPI_data_send(DispTemp[i]);
029A ; }
029A ; PORTD |= 0b00010000; //关闭RCK信号,高电平
029A 949A sbi 0x12,4
029C .dbline -2
029C L53:
029C 0E940000 xcall pop_gset1
02A0 .dbline 0 ; func end
02A0 0895 ret
02A2 .dbsym r i 20 c
02A2 .dbend
02A2 .dbfunc e RAM_Write _RAM_Write fV
02A2 ; data -> R18
02A2 ; adress -> R16,R17
.even
02A2 _RAM_Write::
02A2 .dbline -1
02A2 .dbline 231
02A2 ;
02A2 ; }
02A2 ; /**************************************************
02A2 ; 数据接受,外部RAM读写
02A2 ; ****************************************************/
02A2 ; //写外部RAM
02A2 ; void RAM_Write(int adress,char data)
02A2 ; {
02A2 .dbline 232
02A2 ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
02A2 82B3 in R24,0x12
02A4 806E ori R24,224
02A6 82BB out 0x12,R24
02A8 .dbline 233
02A8 ; DDRA =0XFF;
02A8 8FEF ldi R24,255
02AA 8ABB out 0x1a,R24
02AC .dbline 234
02AC ; PORTA =adress&0xff;
02AC C801 movw R24,R16
02AE 9070 andi R25,0
02B0 8BBB out 0x1b,R24
02B2 .dbline 235
02B2 ; PORTC =(adress >>8)&0xff;
02B2 C801 movw R24,R16
02B4 892F mov R24,R25
02B6 9927 clr R25
02B8 87FD sbrc R24,7
02BA 9095 com R25
02BC 9070 andi R25,0
02BE 85BB out 0x15,R24
02C0 .dbline 236
02C0 ; PORTD &=0b01111111;
02C0 82B3 in R24,0x12
02C2 8F77 andi R24,127
02C4 82BB out 0x12,R24
02C6 .dbline 237
02C6 ; PORTA =data;
02C6 2BBB out 0x1b,R18
02C8 .dbline 238
02C8 ; PORTD &=0b10111111;
02C8 82B3 in R24,0x12
02CA 8F7B andi R24,191
02CC 82BB out 0x12,R24
02CE .dbline -2
02CE L58:
02CE .dbline 0 ; func end
02CE 0895 ret
02D0 .dbsym r data 18 c
02D0 .dbsym r adress 16 I
02D0 .dbend
02D0 .dbfunc e RAM_Read _RAM_Read fc
02D0 ; temp -> R20
02D0 ; adress -> R16,R17
.even
02D0 _RAM_Read::
02D0 0E940000 xcall push_gset1
02D4 .dbline -1
02D4 .dbline 243
02D4 ; //PORTD |=0B01100000; //关ALE 读关闭 写关闭
02D4 ; }
02D4 ; //读外部RAM
02D4 ; char RAM_Read(int adress)
02D4 ; {
02D4 .dbline 245
02D4 ; char temp;
02D4 ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
02D4 82B3 in R24,0x12
02D6 806E ori R24,224
02D8 82BB out 0x12,R24
02DA .dbline 246
02DA ; DDRA =0XFF;
02DA 8FEF ldi R24,255
02DC 8ABB out 0x1a,R24
02DE .dbline 247
02DE ; PORTA =adress&0xff;
02DE C801 movw R24,R16
02E0 9070 andi R25,0
02E2 8BBB out 0x1b,R24
02E4 .dbline 248
02E4 ; PORTC =(adress >>8)&0xff;
02E4 C801 movw R24,R16
02E6 892F mov R24,R25
02E8 9927 clr R25
02EA 87FD sbrc R24,7
02EC 9095 com R25
02EE 9070 andi R25,0
02F0 85BB out 0x15,R24
02F2 .dbline 249
02F2 ; PORTD &=0b01111111;
02F2 82B3 in R24,0x12
02F4 8F77 andi R24,127
02F6 82BB out 0x12,R24
02F8 .dbline 250
02F8 ; PORTD &=0b11011111;
02F8 82B3 in R24,0x12
02FA 8F7D andi R24,223
02FC 82BB out 0x12,R24
02FE .dbline 251
02FE ; DDRA =0;
02FE 2224 clr R2
0300 2ABA out 0x1a,R2
0302 .dbline 252
0302 ; PORTA =0XFF;
0302 8FEF ldi R24,255
0304 8BBB out 0x1b,R24
0306 .dbline 253
0306 ; temp =PINA;
0306 49B3 in R20,0x19
0308 .dbline 254
0308 ; return temp;
0308 042F mov R16,R20
030A .dbline -2
030A L59:
030A 0E940000 xcall pop_gset1
030E .dbline 0 ; func end
030E 0895 ret
0310 .dbsym r temp 20 c
0310 .dbsym r adress 16 I
0310 .dbend
0310 .dbfunc e data_store _data_store fV
0310 ; data -> R20
.even
0310 _data_store::
0310 0E940000 xcall push_gset1
0314 402F mov R20,R16
0316 .dbline -1
0316 .dbline 259
0316 ; }
0316 ; //存储数据到外部RAM
0316 ;
0316 ; void data_store(char data)
0316 ; {
0316 .dbline 260
0316 ; if((data ==76) &&(FileEnd ==1)) //数据起始位检测
0316 4C34 cpi R20,76
0318 79F4 brne L61
031A 80912500 lds R24,_FileEnd
031E 8130 cpi R24,1
0320 59F4 brne L61
0322 .dbline 261
0322 ; {
0322 .dbline 262
0322 ; HeadEN =1; //开启头文件数据传输
0322 81E0 ldi R24,1
0324 80932700 sts _HeadEN,R24
0328 .dbline 263
0328 ; HeadLoad =0; //头文件指针清零
0328 2224 clr R2
032A 20922600 sts _HeadLoad,R2
032E .dbline 264
032E ; DataIndex =0; //存储数据指针清零
032E 3324 clr R3
0330 30922900 sts _DataIndex+1,R3
0334 20922800 sts _DataIndex,R2
0338 .dbline 265
0338 ; }
0338 L61:
0338 .dbline 266
0338 ; if((HeadEN ==0) &&(FileEnd ==0))
0338 20902700 lds R2,_HeadEN
033C 2220 tst R2
033E D9F5 brne L63
0340 20902500 lds R2,_FileEnd
0344 2220 tst R2
0346 B9F5 brne L63
0348 .dbline 267
0348 ; {
0348 .dbline 268
0348 ; RAM_Write(DataIndex,data); //数组送数
0348 242F mov R18,R20
034A 00912800 lds R16,_DataIndex
034E 10912900 lds R17,_DataIndex+1
0352 A7DF xcall _RAM_Write
0354 .dbline 269
0354 ; DataIndex++;
0354 80912800 lds R24,_DataIndex
0358 90912900 lds R25,_DataIndex+1
035C 0196 adiw R24,1
035E 90932900 sts _DataIndex+1,R25
0362 80932800 sts _DataIndex,R24
0366 .dbline 270
0366 ; if(DataIndex <2) //送文件长度数据到变量
0366 8230 cpi R24,2
0368 E0E0 ldi R30,0
036A 9E07 cpc R25,R30
036C 7CF4 brge L65
036E .dbline 271
036E ; {
036E .dbline 272
036E ; FileLength |=data <<DataIndex;
036E 9C01 movw R18,R24
0370 042F mov R16,R20
0372 1127 clr R17
0374 0E940000 xcall lsl16
0378 20902A00 lds R2,_FileLength
037C 30902B00 lds R3,_FileLength+1
0380 202A or R2,R16
0382 312A or R3,R17
0384 30922B00 sts _FileLength+1,R3
0388 20922A00 sts _FileLength,R2
038C .dbline 274
038C ; //FileLength =316;
038C ; } //数据指针
038C L65:
038C .dbline 275
038C ; if((DataIndex >=FileLength)&& (DataIndex >16))
038C 20902A00 lds R2,_FileLength
0390 30902B00 lds R3,_FileLength+1
0394 40902800 lds R4,_DataIndex
0398 50902900 lds R5,_DataIndex+1
039C 4214 cp R4,R2
039E 5304 cpc R5,R3
03A0 54F0 brlt L67
03A2 80E1 ldi R24,16
03A4 90E0 ldi R25,0
03A6 8415 cp R24,R4
03A8 9505 cpc R25,R5
03AA 2CF4 brge L67
03AC .dbline 276
03AC ; {
03AC .dbline 277
03AC ; HeadEN =1;
03AC 81E0 ldi R24,1
03AE 80932700 sts _HeadEN,R24
03B2 .dbline 278
03B2 ; FileEnd =1;
03B2 80932500 sts _FileEnd,R24
03B6 .dbline 279
03B6 ; }
03B6 L67:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -