📄 display_board3.0.lis
字号:
038A .dbline 295
038A ; TWCR = (1<<TWINT) | (1<<TWEN);
038A 84E8 ldi R24,132
038C 86BF out 0x36,R24
038E 0CC0 xjmp L76
0390 L75:
0390 .dbline 297
0390 ; while (!(TWCR & (1<<TWINT)))
0390 ; {
0390 .dbline 298
0390 ; if(I2C_TIME_OUT >1000)
0390 88EE ldi R24,1000
0392 93E0 ldi R25,3
0394 20902F00 lds R2,_I2C_TIME_OUT
0398 30903000 lds R3,_I2C_TIME_OUT+1
039C 8215 cp R24,R2
039E 9305 cpc R25,R3
03A0 18F4 brsh L78
03A2 .dbline 299
03A2 ; {
03A2 .dbline 300
03A2 ; TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN);
03A2 84E9 ldi R24,148
03A4 86BF out 0x36,R24
03A6 .dbline 301
03A6 ; goto start;
03A6 ABCF xjmp L58
03A8 L78:
03A8 .dbline 303
03A8 L76:
03A8 .dbline 296
03A8 26B6 in R2,0x36
03AA 27FE sbrs R2,7
03AC F1CF rjmp L75
03AE .dbline 304
03AE ; }
03AE ; }
03AE ; Disp_Buff[7] =3;
03AE 83E0 ldi R24,3
03B0 80930700 sts _Disp_Buff+7,R24
03B4 .dbline 305
03B4 ; if ((TWSR & 0xF8) != MT_DATA_ACK)
03B4 81B1 in R24,0x1
03B6 887F andi R24,248
03B8 8832 cpi R24,40
03BA 01F0 breq L81
03BC .dbline 306
03BC ; {
03BC .dbline 308
03BC ; //goto start;
03BC ; }
03BC L81:
03BC .dbline 309
03BC ; TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
03BC 84E9 ldi R24,148
03BE 86BF out 0x36,R24
03C0 .dbline -2
03C0 .dbline 310
03C0 ; }
03C0 L57:
03C0 0E940000 xcall pop_gset1
03C4 .dbline 0 ; func end
03C4 0895 ret
03C6 .dbsym r data 20 c
03C6 .dbend
03C6 .dbfunc e Screen_send _Screen_send fV
03C6 ; i -> R20
.even
03C6 _Screen_send::
03C6 0E940000 xcall push_gset1
03CA .dbline -1
03CA .dbline 315
03CA ; /***************************************************
03CA ; 向显示屏送数据
03CA ; ***************************************************/
03CA ; void Screen_send(void)
03CA ; {
03CA .dbline 316
03CA ; char i =8;
03CA 48E0 ldi R20,8
03CC .dbline 317
03CC ; PORTB &=0B11101111; //送RCK信号,底电平
03CC 88B3 in R24,0x18
03CE 8F7E andi R24,239
03D0 88BB out 0x18,R24
03D2 .dbline 318
03D2 ; for(;i >0;)
03D2 09C0 xjmp L87
03D4 L84:
03D4 .dbline 319
03D4 .dbline 320
03D4 4A95 dec R20
03D6 .dbline 321
03D6 80E0 ldi R24,<_DispTemp
03D8 90E0 ldi R25,>_DispTemp
03DA E42F mov R30,R20
03DC FF27 clr R31
03DE E80F add R30,R24
03E0 F91F adc R31,R25
03E2 0081 ldd R16,z+0
03E4 07D0 xcall _SPI_MasterTransmit
03E6 .dbline 322
03E6 L85:
03E6 .dbline 318
03E6 L87:
03E6 .dbline 318
03E6 2224 clr R2
03E8 2416 cp R2,R20
03EA A0F3 brlo L84
03EC .dbline 323
03EC ; {
03EC ; i--;
03EC ; SPI_MasterTransmit(DispTemp[i]);
03EC ; }
03EC ; PORTB |=0B00010000; //关闭RCK信号,高电平
03EC C49A sbi 0x18,4
03EE .dbline -2
03EE .dbline 324
03EE ; }
03EE L83:
03EE 0E940000 xcall pop_gset1
03F2 .dbline 0 ; func end
03F2 0895 ret
03F4 .dbsym r i 20 c
03F4 .dbend
03F4 .dbfunc e SPI_MasterTransmit _SPI_MasterTransmit fV
03F4 ; cData -> R16
.even
03F4 _SPI_MasterTransmit::
03F4 .dbline -1
03F4 .dbline 327
03F4 ; //SPI硬件通讯
03F4 ; void SPI_MasterTransmit(char cData)
03F4 ; {
03F4 .dbline 328
03F4 ; SPDR = cData;/* 启动数据传输 */
03F4 0FB9 out 0xf,R16
03F6 L89:
03F6 .dbline 329
03F6 L90:
03F6 .dbline 329
03F6 ; while(!(SPSR & (1<<SPIF)));/* 等待传输结束 */
03F6 779B sbis 0xe,7
03F8 FECF rjmp L89
03FA .dbline -2
03FA .dbline 330
03FA ; }
03FA L88:
03FA .dbline 0 ; func end
03FA 0895 ret
03FC .dbsym r cData 16 c
03FC .dbend
03FC .dbfunc e RAM_Write _RAM_Write fV
03FC ; High8Bit -> R20
03FC ; data -> R18
03FC ; adress -> R16,R17
.even
03FC _RAM_Write::
03FC 0E940000 xcall push_gset1
0400 .dbline -1
0400 .dbline 336
0400 ; /**************************************************
0400 ; 数据接受,外部RAM读写
0400 ; ****************************************************/
0400 ; //写外部RAM
0400 ; void RAM_Write(int adress,char data)
0400 ; {
0400 .dbline 338
0400 ; char High8Bit;
0400 ; High8Bit=adress >>8;
0400 A801 movw R20,R16
0402 452F mov R20,R21
0404 5527 clr R21
0406 47FD sbrc R20,7
0408 5095 com R21
040A .dbline 339
040A ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
040A 82B3 in R24,0x12
040C 806E ori R24,224
040E 82BB out 0x12,R24
0410 .dbline 340
0410 ; PORTC =0;
0410 2224 clr R2
0412 25BA out 0x15,R2
0414 .dbline 341
0414 ; DDRA =0XFF;
0414 8FEF ldi R24,255
0416 8ABB out 0x1a,R24
0418 .dbline 342
0418 ; PORTA =adress;
0418 0BBB out 0x1b,R16
041A .dbline 343
041A ; PORTD &=0xe7;
041A 82B3 in R24,0x12
041C 877E andi R24,231
041E 82BB out 0x12,R24
0420 .dbline 344
0420 ; PORTC =High8Bit;
0420 45BB out 0x15,R20
0422 .dbline 345
0422 ; PORTD |=(High8Bit <<3) & 0x18;
0422 842F mov R24,R20
0424 880F lsl R24
0426 880F lsl R24
0428 880F lsl R24
042A 8871 andi R24,24
042C 22B2 in R2,0x12
042E 282A or R2,R24
0430 22BA out 0x12,R2
0432 .dbline 346
0432 ; PORTD &=0b01111111;
0432 82B3 in R24,0x12
0434 8F77 andi R24,127
0436 82BB out 0x12,R24
0438 .dbline 347
0438 ; PORTA =data;
0438 2BBB out 0x1b,R18
043A .dbline 348
043A ; PORTD &=0b10111111;
043A 82B3 in R24,0x12
043C 8F7B andi R24,191
043E 82BB out 0x12,R24
0440 .dbline -2
0440 .dbline 349
0440 ; }
0440 L92:
0440 0E940000 xcall pop_gset1
0444 .dbline 0 ; func end
0444 0895 ret
0446 .dbsym r High8Bit 20 c
0446 .dbsym r data 18 c
0446 .dbsym r adress 16 I
0446 .dbend
0446 .dbfunc e RAM_Read _RAM_Read fc
0446 ; High8Bit -> R20
0446 ; adress -> R16,R17
.even
0446 _RAM_Read::
0446 0E940000 xcall push_gset1
044A .dbline -1
044A .dbline 352
044A ; //读外部RAM
044A ; char RAM_Read(int adress)
044A ; {
044A .dbline 354
044A ; char High8Bit;
044A ; High8Bit=adress >>8;
044A A801 movw R20,R16
044C 452F mov R20,R21
044E 5527 clr R21
0450 47FD sbrc R20,7
0452 5095 com R21
0454 .dbline 355
0454 ; PORTD |=0B11100000; //关ALE 读关闭 写关闭
0454 82B3 in R24,0x12
0456 806E ori R24,224
0458 82BB out 0x12,R24
045A .dbline 356
045A ; DDRA =0XFF;
045A 8FEF ldi R24,255
045C 8ABB out 0x1a,R24
045E .dbline 357
045E ; PORTA =adress;
045E 0BBB out 0x1b,R16
0460 .dbline 358
0460 ; PORTD &=0xe7;
0460 82B3 in R24,0x12
0462 877E andi R24,231
0464 82BB out 0x12,R24
0466 .dbline 359
0466 ; PORTC =High8Bit;
0466 45BB out 0x15,R20
0468 .dbline 360
0468 ; PORTD |=(High8Bit <<3) & 0x18;
0468 842F mov R24,R20
046A 880F lsl R24
046C 880F lsl R24
046E 880F lsl R24
0470 8871 andi R24,24
0472 22B2 in R2,0x12
0474 282A or R2,R24
0476 22BA out 0x12,R2
0478 .dbline 361
0478 ; PORTD &=0b01011111;
0478 82B3 in R24,0x12
047A 8F75 andi R24,95
047C 82BB out 0x12,R24
047E .dbline 362
047E ; DDRA =0;
047E 2224 clr R2
0480 2ABA out 0x1a,R2
0482 .dbline 363
0482 ; PORTA =0XFF;
0482 8FEF ldi R24,255
0484 8BBB out 0x1b,R24
0486 .dbline 364
0486 ; return PINA;
0486 09B3 in R16,0x19
0488 .dbline -2
0488 L93:
0488 0E940000 xcall pop_gset1
048C .dbline 0 ; func end
048C 0895 ret
048E .dbsym r High8Bit 20 c
048E .dbsym r adress 16 I
048E .dbend
048E .dbfunc e data_store _data_store fV
048E ; data -> R20
.even
048E _data_store::
048E 0E940000 xcall push_gset1
0492 402F mov R20,R16
0494 .dbline -1
0494 .dbline 368
0494 ; }
0494 ; //存储数据到外部RAM
0494 ; void data_store(char
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -