?? display_board2.1.lis
字號:
0448 ; if (time_out_s ==20) //結束標志
0448 8431 cpi R24,20
044A 51F4 brne L55
044C .dbline 209
044C ; {
044C .dbline 210
044C ; time_out_ms=1; //閑置標志
044C 81E0 ldi R24,1
044E 90E0 ldi R25,0
0450 90932D00 sts _time_out_ms+1,R25
0454 80932C00 sts _time_out_ms,R24
0458 .dbline 211
0458 ; HeadEN=1;
0458 80932700 sts _HeadEN,R24
045C .dbline 212
045C ; FileEnd=1;
045C 80932500 sts _FileEnd,R24
0460 .dbline 214
0460 ; //進行錯誤處理,并要跳出此結構體
0460 ; {/**********/}
0460 .dbline 214
0460 .dbline 215
0460 ; }
0460 L55:
0460 .dbline 216
0460 ; }
0460 L53:
0460 .dbline 217
0460 ; uart_TX(0xAA); //重復發送標志位
0460 0AEA ldi R16,170
0462 CDDF xcall _uart_TX
0464 .dbline 218
0464 ; time_out_ms--;
0464 80912C00 lds R24,_time_out_ms
0468 90912D00 lds R25,_time_out_ms+1
046C 0197 sbiw R24,1
046E 90932D00 sts _time_out_ms+1,R25
0472 80932C00 sts _time_out_ms,R24
0476 .dbline 219
0476 ; }
0476 L51:
0476 .dbline 220
0476 80912C00 lds R24,_time_out_ms
047A 90912D00 lds R25,_time_out_ms+1
047E 883E cpi R24,232
0480 E3E0 ldi R30,3
0482 9E07 cpc R25,R30
0484 31F4 brne L57
0486 .dbline 221
0486 81E0 ldi R24,1
0488 90E0 ldi R25,0
048A 90932D00 sts _time_out_ms+1,R25
048E 80932C00 sts _time_out_ms,R24
0492 L57:
0492 .dbline -2
0492 L50:
0492 .dbline 0 ; func end
0492 0895 ret
0494 .dbend
0494 .dbfunc e SPI_data_send _SPI_data_send fV
0494 ; count -> R20
0494 ; send_data -> R22
.even
0494 _SPI_data_send::
0494 0E940000 xcall push_gset2
0498 602F mov R22,R16
049A .dbline -1
049A .dbline 228
049A ; if (time_out_ms ==1000)
049A ; time_out_ms=1; //1 表示空閑狀態
049A ; }
049A ; /***************************************************
049A ; 向顯示屏送數據
049A ; ***************************************************/
049A ;
049A ; void SPI_data_send(unsigned char send_data) //向595送數據串
049A ; {
049A .dbline 230
049A ; unsigned char count;
049A ; for(count =0;count<8;count++)
049A 4427 clr R20
049C 11C0 xjmp L63
049E L60:
049E .dbline 231
049E ; {
049E .dbline 232
049E ; if(((send_data<<count)&0x80 )==0)
049E 062F mov R16,R22
04A0 142F mov R17,R20
04A2 0E940000 xcall lsl8
04A6 802F mov R24,R16
04A8 8078 andi R24,128
04AA 21F4 brne L64
04AC .dbline 233
04AC ; PORTC &= 0b01111111; //送 data
04AC 85B3 in R24,0x15
04AE 8F77 andi R24,127
04B0 85BB out 0x15,R24
04B2 01C0 xjmp L65
04B4 L64:
04B4 .dbline 235
04B4 ; else
04B4 ; PORTC |= 0b10000000;
04B4 AF9A sbi 0x15,7
04B6 L65:
04B6 .dbline 236
04B6 939A sbi 0x12,3
04B8 .dbline 237
04B8 82B3 in R24,0x12
04BA 877F andi R24,247
04BC 82BB out 0x12,R24
04BE .dbline 238
04BE L61:
04BE .dbline 230
04BE 4395 inc R20
04C0 L63:
04C0 .dbline 230
04C0 4830 cpi R20,8
04C2 68F3 brlo L60
04C4 .dbline -2
04C4 L59:
04C4 0E940000 xcall pop_gset2
04C8 .dbline 0 ; func end
04C8 0895 ret
04CA .dbsym r count 20 c
04CA .dbsym r send_data 22 c
04CA .dbend
04CA .dbfunc e Screen_send _Screen_send fV
04CA ; i -> R20
.even
04CA _Screen_send::
04CA 0E940000 xcall push_gset1
04CE .dbline -1
04CE .dbline 241
04CE ; PORTD |=0b00001000; //送SCK信號
04CE ; PORTD &=0b11110111;
04CE ; }
04CE ; }
04CE ; void Screen_send(void)
04CE ; {
04CE .dbline 243
04CE ; char i;
04CE ; PORTD &= 0b11101111; //送RCK信號,底電平
04CE 82B3 in R24,0x12
04D0 8F7E andi R24,239
04D2 82BB out 0x12,R24
04D4 .dbline 244
04D4 ; for(i =0;i <8;i++)
04D4 4427 clr R20
04D6 03C0 xjmp L70
04D8 L67:
04D8 .dbline 245
04D8 .dbline 246
04D8 0FEF ldi R16,255
04DA DCDF xcall _SPI_data_send
04DC .dbline 247
04DC L68:
04DC .dbline 244
04DC 4395 inc R20
04DE L70:
04DE .dbline 244
04DE 4830 cpi R20,8
04E0 D8F3 brlo L67
04E2 .dbline 248
04E2 ; {
04E2 ; SPI_data_send(0xff);//sys_cont); //DispTemp[i]);
04E2 ; }
04E2 ; PORTD |= 0b00010000; //關閉RCK信號,高電平
04E2 949A sbi 0x12,4
04E4 .dbline -2
04E4 L66:
04E4 0E940000 xcall pop_gset1
04E8 .dbline 0 ; func end
04E8 0895 ret
04EA .dbsym r i 20 c
04EA .dbend
04EA .dbfunc e RAM_Write _RAM_Write fV
04EA ; data -> R18
04EA ; adress -> R16,R17
.even
04EA _RAM_Write::
04EA .dbline -1
04EA .dbline 256
04EA ;
04EA ; }
04EA ; /**************************************************
04EA ; 數據接受,外部RAM讀寫
04EA ; ****************************************************/
04EA ; //寫外部RAM
04EA ; void RAM_Write(int adress,char data)
04EA ; {
04EA .dbline 257
04EA ; PORTD |=0B11100000; //關ALE 讀關閉 寫關閉
04EA 82B3 in R24,0x12
04EC 806E ori R24,224
04EE 82BB out 0x12,R24
04F0 .dbline 258
04F0 ; DDRA =0XFF;
04F0 8FEF ldi R24,255
04F2 8ABB out 0x1a,R24
04F4 .dbline 259
04F4 ; PORTA =adress&0xff;
04F4 C801 movw R24,R16
04F6 9070 andi R25,0
04F8 8BBB out 0x1b,R24
04FA .dbline 260
04FA ; PORTC =(adress >>8)&0xff;
04FA C801 movw R24,R16
04FC 892F mov R24,R25
04FE 9927 clr R25
0500 87FD sbrc R24,7
0502 9095 com R25
0504 9070 andi R25,0
0506 85BB out 0x15,R24
0508 .dbline 261
0508 ; PORTD &=0b01111111;
0508 82B3 in R24,0x12
050A 8F77 andi R24,127
050C 82BB out 0x12,R24
050E .dbline 262
050E ; PORTA =data;
050E 2BBB out 0x1b,R18
0510 .dbline 263
0510 ; PORTD &=0b10111111;
0510 82B3 in R24,0x12
0512 8F7B andi R24,191
0514 82BB out 0x12,R24
0516 .dbline -2
0516 L71:
0516 .dbline 0 ; func end
0516 0895 ret
0518 .dbsym r data 18 c
0518 .dbsym r adress 16 I
0518 .dbend
0518 .dbfunc e RAM_Read _RAM_Read fc
0518 ; temp -> R20
0518 ; adress -> R16,R17
.even
0518 _RAM_Read::
0518 0E940000 xcall push_gset1
051C .dbline -1
051C .dbline 268
051C ; //PORTD |=0B01100000; //關ALE 讀關閉 寫關閉
051C ; }
051C ; //讀外部RAM
051C ; char RAM_Read(int adress)
051C ; {
051C .dbline 270
051C ; char temp;
051C ; PORTD |=0B11100000; //關ALE 讀關閉 寫關閉
051C 82B3 in R24,0x12
051E 806E ori R24,224
0520 82BB out 0x12,R24
0522 .dbline 271
0522 ; DDRA =0XFF;
0522 8FEF ldi R24,255
0524 8ABB out 0x1a,R24
0526 .dbline 272
0526 ; PORTA =adress&0xff;
0526 C801 movw R24,R16
0528 9070 andi R25,0
052A 8BBB out 0x1b,R24
052C .dbline 273
052C ; PORTC =(adress >>8)&0xff;
052C C801 movw R24,R16
052E 892F mov R24,R25
0530 9927 clr R25
0532 87FD sbrc R24,7
0534 9095 com R25
0536 9070 andi R25,0
0538 85BB out 0x15,R24
053A .dbline 274
053A ; PORTD &=0b01111111;
053A 82B3 in R24,0x12
053C 8F77 andi R24,127
053E 82BB out 0x12,R24
0540 .dbline 275
0540 ; PORTD &=0b11011111;
0540 82B3 in R24,0x12
0542 8F7D andi R24,223
0544 82BB out 0x12,R24
0546 .dbline 276
0546 ; DDRA =0;
0546 2224 clr R2
0548 2ABA out 0x1a,R2
054A .dbline 277
054A ; PORTA =0XFF;
054A 8FEF ldi R24,255
054C 8BBB out 0x1b,R24
054E .dbline 278
054E ; temp =PINA;
054E 49B3 in R20,0x19
0550 .dbline 279
0550 ; return temp;
0550 042F mov R16,R20
0552 .dbline -2
0552 L72:
0552 0E940000 xcall pop_gset1
0556 .dbline 0 ; func end
0556 0895 ret
0558 .dbsym r temp 20 c
0558 .dbsym r adress 16 I
0558 .dbend
0558 .dbfunc e data_store _data_store fV
0558 ; data -> R20
.even
0558 _data_store::
0558 0E940000 xcall push_gset1
055C 402F mov R20,R16
055E .dbline -1
055E .dbline 284
055E ; }
055E ; //存儲數據到外部RAM
055E ;
055E ; void data_store(char data)
055E ; {
055E .dbline 285
055E ; if((data ==76) &&(FileEnd ==1)) //數據起始位檢測
055E 4C34 cpi R20,76
0560 79F4 brne L74
0562 80912500 lds R24,_FileEnd
0566 8130 cpi R24,1
0568 59F4 brne L74
056A .dbline 28
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -