📄 display_board3.0.lis
字号:
0272 2220 tst R2
0274 99F4 brne L49
0276 3320 tst R3
0278 89F4 brne L49
027A X1:
027A .dbline 206
027A ; {
027A .dbline 207
027A ; time_out_s++;
027A 80912E00 lds R24,_time_out_s
027E 8F5F subi R24,255 ; addi 1
0280 80932E00 sts _time_out_s,R24
0284 .dbline 208
0284 ; if (time_out_s ==20) //结束标志
0284 8431 cpi R24,20
0286 51F4 brne L51
0288 .dbline 209
0288 ; {
0288 .dbline 210
0288 ; time_out_ms=1; //闲置标志
0288 81E0 ldi R24,1
028A 90E0 ldi R25,0
028C 90932D00 sts _time_out_ms+1,R25
0290 80932C00 sts _time_out_ms,R24
0294 .dbline 211
0294 ; HeadEN=1;
0294 80932700 sts _HeadEN,R24
0298 .dbline 212
0298 ; FileEnd=1;
0298 80932500 sts _FileEnd,R24
029C .dbline 214
029C ; //进行错误处理,并要跳出此结构体
029C ; {/**********/}
029C .dbline 214
029C .dbline 215
029C ; }
029C L51:
029C .dbline 216
029C ; }
029C L49:
029C .dbline 217
029C ; uart_TX(0xAA); //重复发送标志位
029C 0AEA ldi R16,170
029E CDDF xcall _uart_TX
02A0 .dbline 218
02A0 ; time_out_ms--;
02A0 80912C00 lds R24,_time_out_ms
02A4 90912D00 lds R25,_time_out_ms+1
02A8 0197 sbiw R24,1
02AA 90932D00 sts _time_out_ms+1,R25
02AE 80932C00 sts _time_out_ms,R24
02B2 .dbline 219
02B2 ; }
02B2 L47:
02B2 .dbline 220
02B2 80912C00 lds R24,_time_out_ms
02B6 90912D00 lds R25,_time_out_ms+1
02BA 883E cpi R24,232
02BC E3E0 ldi R30,3
02BE 9E07 cpc R25,R30
02C0 31F4 brne L53
02C2 .dbline 221
02C2 81E0 ldi R24,1
02C4 90E0 ldi R25,0
02C6 90932D00 sts _time_out_ms+1,R25
02CA 80932C00 sts _time_out_ms,R24
02CE L53:
02CE .dbline -2
02CE L46:
02CE .dbline 0 ; func end
02CE 0895 ret
02D0 .dbend
02D0 .dbfunc e SPI_data_send _SPI_data_send fV
02D0 ; count -> R20
02D0 ; send_data -> R22
.even
02D0 _SPI_data_send::
02D0 0E940000 xcall push_gset2
02D4 602F mov R22,R16
02D6 .dbline -1
02D6 .dbline 228
02D6 ; if (time_out_ms ==1000)
02D6 ; time_out_ms=1; //1 表示空闲状态
02D6 ; }
02D6 ; /***************************************************
02D6 ; 向显示屏送数据
02D6 ; ***************************************************/
02D6 ;
02D6 ; void SPI_data_send(unsigned char send_data) //向595送数据串
02D6 ; {
02D6 .dbline 230
02D6 ; unsigned char count;
02D6 ; for(count =0;count<8;count++)
02D6 4427 clr R20
02D8 11C0 xjmp L59
02DA L56:
02DA .dbline 231
02DA ; {
02DA .dbline 232
02DA ; if(((send_data >>count)&0x01 )==0)
02DA 062F mov R16,R22
02DC 142F mov R17,R20
02DE 0E940000 xcall lsr8
02E2 802F mov R24,R16
02E4 8170 andi R24,1
02E6 21F4 brne L60
02E8 .dbline 233
02E8 ; PORTC &= 0b01111111; //送 data
02E8 85B3 in R24,0x15
02EA 8F77 andi R24,127
02EC 85BB out 0x15,R24
02EE 01C0 xjmp L61
02F0 L60:
02F0 .dbline 235
02F0 ; else
02F0 ; PORTC |= 0b10000000;
02F0 AF9A sbi 0x15,7
02F2 L61:
02F2 .dbline 236
02F2 939A sbi 0x12,3
02F4 .dbline 237
02F4 82B3 in R24,0x12
02F6 877F andi R24,247
02F8 82BB out 0x12,R24
02FA .dbline 238
02FA L57:
02FA .dbline 230
02FA 4395 inc R20
02FC L59:
02FC .dbline 230
02FC 4830 cpi R20,8
02FE 68F3 brlo L56
0300 .dbline -2
0300 L55:
0300 0E940000 xcall pop_gset2
0304 .dbline 0 ; func end
0304 0895 ret
0306 .dbsym r count 20 c
0306 .dbsym r send_data 22 c
0306 .dbend
0306 .dbfunc e Screen_send _Screen_send fV
0306 ; i -> R20
.even
0306 _Screen_send::
0306 0E940000 xcall push_gset1
030A .dbline -1
030A .dbline 241
030A ; PORTD |=0b00001000; //送SCK信号
030A ; PORTD &=0b11110111;
030A ; }
030A ; }
030A ; void Screen_send(void)
030A ; {
030A .dbline 242
030A ; char i =8;
030A 48E0 ldi R20,8
030C .dbline 243
030C ; PORTD &= 0b11101111; //送RCK信号,底电平
030C 82B3 in R24,0x12
030E 8F7E andi R24,239
0310 82BB out 0x12,R24
0312 .dbline 244
0312 ; for(;i >0;)
0312 09C0 xjmp L66
0314 L63:
0314 .dbline 245
0314 .dbline 246
0314 4A95 dec R20
0316 .dbline 247
0316 80E0 ldi R24,<_DispTemp
0318 90E0 ldi R25,>_DispTemp
031A E42F mov R30,R20
031C FF27 clr R31
031E E80F add R30,R24
0320 F91F adc R31,R25
0322 0081 ldd R16,z+0
0324 D5DF xcall _SPI_data_send
0326 .dbline 248
0326 L64:
0326 .dbline 244
0326 L66:
0326 .dbline 244
0326 2224 clr R2
0328 2416 cp R2,R20
032A A0F3 brlo L63
032C .dbline 249
032C ; {
032C ; i--;
032C ; SPI_data_send(DispTemp[i]);
032C ; }
032C ; PORTD |= 0b00010000; //关闭RCK信号,高电平
032C 949A sbi 0x12,4
032E .dbline -2
032E L62:
032E 0E940000 xcall pop_gset1
0332 .dbline 0 ; func end
0332 0895 ret
0334 .dbsym r i 20 c
0334 .dbend
0334 .dbfunc e RAM_Write _RAM_Write fV
0334 ; data -> R18
0334 ; adress -> R16,R17
.even
0334 _RAM_Write::
0334 .dbline -1
0334 .dbline 256
0334 ; }
0334 ; /**************************************************
0334 ; 数据接受,外部RAM读写
0334 ; ****************************************************/
0334 ; //写外部RAM
0334 ; void RAM_Write(int adress,char data)
0334 ; {
0334 .dbline 257
0334 ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
0334 82B3 in R24,0x12
0336 806E ori R24,224
0338 82BB out 0x12,R24
033A .dbline 258
033A ; DDRA =0XFF;
033A 8FEF ldi R24,255
033C 8ABB out 0x1a,R24
033E .dbline 259
033E ; PORTA =adress;
033E 0BBB out 0x1b,R16
0340 .dbline 260
0340 ; PORTC =(adress >>8);
0340 1801 movw R2,R16
0342 232C mov R2,R3
0344 3324 clr R3
0346 27FC sbrc R2,7
0348 3094 com R3
034A 25BA out 0x15,R2
034C .dbline 261
034C ; PORTD &=0b01111111;
034C 82B3 in R24,0x12
034E 8F77 andi R24,127
0350 82BB out 0x12,R24
0352 .dbline 262
0352 ; PORTA =data;
0352 2BBB out 0x1b,R18
0354 .dbline 263
0354 ; PORTD &=0b10111111;
0354 82B3 in R24,0x12
0356 8F7B andi R24,191
0358 82BB out 0x12,R24
035A .dbline -2
035A L67:
035A .dbline 0 ; func end
035A 0895 ret
035C .dbsym r data 18 c
035C .dbsym r adress 16 I
035C .dbend
035C .dbfunc e RAM_Read _RAM_Read fc
035C ; adress -> R16,R17
.even
035C _RAM_Read::
035C .dbline -1
035C .dbline 268
035C ; //PORTD |=0B01100000; //关ALE 读关闭 写关闭
035C ; }
035C ; //读外部RAM
035C ; char RAM_Read(int adress)
035C ; {
035C .dbline 269
035C ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
035C 82B3 in R24,0x12
035E 806E ori R24,224
0360 82BB out 0x12,R24
0362 .dbline 270
0362 ; DDRA =0XFF;
0362 8FEF ldi R24,255
0364 8ABB out 0x1a,R24
0366 .dbline 271
0366 ; PORTA =adress;
0366 0BBB out 0x1b,R16
0368 .dbline 272
0368 ; PORTC =adress >>8;
0368 1801 movw R2,R16
036A 232C mov R2,R3
036C 3324 clr R3
036E 27FC sbrc R2,7
0370 3094 com R3
0372 25BA out 0x15,R2
0374 .dbline 273
0374 ; PORTD &=0b01111111;
0374 82B3 in R24,0x12
0376 8F77 andi R24,127
0378 82BB out 0x12,R24
037A .dbline 274
037A ; PORTD &=0b11011111;
037A 82B3 in R24,0x12
037C 8F7D andi R24,223
037E 82BB out 0x12,R24
0380 .dbline 275
0380 ; DDRA =0;
0380 2224 clr R2
0382 2ABA out 0x1a,R2
0384 .dbline 276
0384 ; PORTA =0XFF;
0384 8FEF ldi R24,255
0386 8BBB out 0x1b,R24
0388 .dbline 277
0388 ; return PINA;
0388 09B3 in R16,0x19
038A .dbline -2
038A L68:
038A .dbline 0 ; func end
038A 0895 ret
038C .dbsym r adress 16 I
038C .dbend
038C .dbfunc e data_store _data_store fV
038C ; data -> R20
.even
038C _data_store::
038C 0E940000 xcall push_gset1
0390 402F mov R20,R16
0392 .dbline -1
0392 .dbline 282
0392 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -