📄 display_board2.1.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)&0x80 )==0)
02DA 062F mov R16,R22
02DC 142F mov R17,R20
02DE 0E940000 xcall lsl8
02E2 802F mov R24,R16
02E4 8078 andi R24,128
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 243
030A ; char i;
030A ; PORTD &= 0b11101111; //送RCK信号,底电平
030A 82B3 in R24,0x12
030C 8F7E andi R24,239
030E 82BB out 0x12,R24
0310 .dbline 244
0310 ; for(i =0;i <8;i++)
0310 4427 clr R20
0312 03C0 xjmp L66
0314 L63:
0314 .dbline 245
0314 .dbline 246
0314 0FEF ldi R16,255
0316 DCDF xcall _SPI_data_send
0318 .dbline 247
0318 L64:
0318 .dbline 244
0318 4395 inc R20
031A L66:
031A .dbline 244
031A 4830 cpi R20,8
031C D8F3 brlo L63
031E .dbline 248
031E ; {
031E ; SPI_data_send(0xff);//sys_cont); //DispTemp[i]);
031E ; }
031E ; PORTD |= 0b00010000; //关闭RCK信号,高电平
031E 949A sbi 0x12,4
0320 .dbline -2
0320 L62:
0320 0E940000 xcall pop_gset1
0324 .dbline 0 ; func end
0324 0895 ret
0326 .dbsym r i 20 c
0326 .dbend
0326 .dbfunc e RAM_Write _RAM_Write fV
0326 ; data -> R18
0326 ; adress -> R16,R17
.even
0326 _RAM_Write::
0326 .dbline -1
0326 .dbline 256
0326 ;
0326 ; }
0326 ; /**************************************************
0326 ; 数据接受,外部RAM读写
0326 ; ****************************************************/
0326 ; //写外部RAM
0326 ; void RAM_Write(int adress,char data)
0326 ; {
0326 .dbline 257
0326 ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
0326 82B3 in R24,0x12
0328 806E ori R24,224
032A 82BB out 0x12,R24
032C .dbline 258
032C ; DDRA =0XFF;
032C 8FEF ldi R24,255
032E 8ABB out 0x1a,R24
0330 .dbline 259
0330 ; PORTA =adress&0xff;
0330 C801 movw R24,R16
0332 9070 andi R25,0
0334 8BBB out 0x1b,R24
0336 .dbline 260
0336 ; PORTC =(adress >>8)&0xff;
0336 C801 movw R24,R16
0338 892F mov R24,R25
033A 9927 clr R25
033C 87FD sbrc R24,7
033E 9095 com R25
0340 9070 andi R25,0
0342 85BB out 0x15,R24
0344 .dbline 261
0344 ; PORTD &=0b01111111;
0344 82B3 in R24,0x12
0346 8F77 andi R24,127
0348 82BB out 0x12,R24
034A .dbline 262
034A ; PORTA =data;
034A 2BBB out 0x1b,R18
034C .dbline 263
034C ; PORTD &=0b10111111;
034C 82B3 in R24,0x12
034E 8F7B andi R24,191
0350 82BB out 0x12,R24
0352 .dbline -2
0352 L67:
0352 .dbline 0 ; func end
0352 0895 ret
0354 .dbsym r data 18 c
0354 .dbsym r adress 16 I
0354 .dbend
0354 .dbfunc e RAM_Read _RAM_Read fc
0354 ; temp -> R20
0354 ; adress -> R16,R17
.even
0354 _RAM_Read::
0354 0E940000 xcall push_gset1
0358 .dbline -1
0358 .dbline 268
0358 ; //PORTD |=0B01100000; //关ALE 读关闭 写关闭
0358 ; }
0358 ; //读外部RAM
0358 ; char RAM_Read(int adress)
0358 ; {
0358 .dbline 270
0358 ; char temp;
0358 ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
0358 82B3 in R24,0x12
035A 806E ori R24,224
035C 82BB out 0x12,R24
035E .dbline 271
035E ; DDRA =0XFF;
035E 8FEF ldi R24,255
0360 8ABB out 0x1a,R24
0362 .dbline 272
0362 ; PORTA =adress&0xff;
0362 C801 movw R24,R16
0364 9070 andi R25,0
0366 8BBB out 0x1b,R24
0368 .dbline 273
0368 ; PORTC =(adress >>8)&0xff;
0368 C801 movw R24,R16
036A 892F mov R24,R25
036C 9927 clr R25
036E 87FD sbrc R24,7
0370 9095 com R25
0372 9070 andi R25,0
0374 85BB out 0x15,R24
0376 .dbline 274
0376 ; PORTD &=0b01111111;
0376 82B3 in R24,0x12
0378 8F77 andi R24,127
037A 82BB out 0x12,R24
037C .dbline 275
037C ; PORTD &=0b11011111;
037C 82B3 in R24,0x12
037E 8F7D andi R24,223
0380 82BB out 0x12,R24
0382 .dbline 276
0382 ; DDRA =0;
0382 2224 clr R2
0384 2ABA out 0x1a,R2
0386 .dbline 277
0386 ; PORTA =0XFF;
0386 8FEF ldi R24,255
0388 8BBB out 0x1b,R24
038A .dbline 278
038A ; temp =PINA;
038A 49B3 in R20,0x19
038C .dbline 279
038C ; return temp;
038C 042F mov R16,R20
038E .dbline -2
038E L68:
038E 0E940000 xcall pop_gset1
0392 .dbline 0 ; func end
0392 0895 ret
0394 .dbsym r temp 20 c
0394 .dbsym r adress 16 I
0394 .dbend
0394 .dbfunc e data_store _data_store fV
0394 ; data -> R20
.even
0394 _data_store::
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -