ds12887.lis

来自「高精度时钟芯片。avr驱动」· LIS 代码 · 共 1,530 行 · 第 1/5 页

LIS
1,530
字号
 02BE 2227              clr R18
 02C0 02E0              ldi R16,2
 02C2 48DF              xcall _LCD1602_gotoXY
 02C4                   .dbline 386
 02C4           ;    LCD1602_sendstr("TIME: 08: 08: 08");
 02C4 00E0              ldi R16,<L62
 02C6 10E0              ldi R17,>L62
 02C8                   .dbline -2
 02C8                   .dbline 389
 02C8           ; //   for(m=0;m<16;m++) 
 02C8           ; //   LCD1602_sendbyte(iDat,cdis2[m]);        //显示字符
 02C8           ; } 
 02C8           L60:
 02C8                   .dbline 0 ; func end
 02C8 21CF              xjmp _LCD1602_sendstr
 02CA                   .dbsym l m 1 c
 02CA                   .dbend
 02CA                   .dbfunc e daydis _daydis fV
                        .even
 02CA           _daydis::
 02CA                   .dbline -1
 02CA                   .dbline 396
 02CA           ; /*******************************************************************/
 02CA           ; /*                                                                 */
 02CA           ; /* 日期 正常显示数据                                            */
 02CA           ; /*                                                                 */
 02CA           ; /*******************************************************************/
 02CA           ; void daydis()
 02CA           ; {
 02CA                   .dbline 397
 02CA           ;       display[0]=(temp_data1[0]>>4)+0x30;
 02CA 80910000          lds R24,_temp_data1
 02CE 8295              swap R24
 02D0 8F70              andi R24,#0x0F
 02D2 805D              subi R24,208    ; addi 48
 02D4 80930600          sts _display,R24
 02D8                   .dbline 398
 02D8           ;       display[1]=(temp_data1[0]&0x0F)+0x30;
 02D8 80910000          lds R24,_temp_data1
 02DC 8F70              andi R24,15
 02DE 805D              subi R24,208    ; addi 48
 02E0 80930700          sts _display+1,R24
 02E4                   .dbline 399
 02E4           ;       display[2]=(temp_data1[1]>>4)+0x30;
 02E4 80910100          lds R24,_temp_data1+1
 02E8 8295              swap R24
 02EA 8F70              andi R24,#0x0F
 02EC 805D              subi R24,208    ; addi 48
 02EE 80930800          sts _display+2,R24
 02F2                   .dbline 400
 02F2           ;       display[3]=(temp_data1[1]&0x0F)+0x30;
 02F2 80910100          lds R24,_temp_data1+1
 02F6 8F70              andi R24,15
 02F8 805D              subi R24,208    ; addi 48
 02FA 80930900          sts _display+3,R24
 02FE                   .dbline 401
 02FE           ;       display[4]=(temp_data1[2]>>4)+0x30;
 02FE 80910200          lds R24,_temp_data1+2
 0302 8295              swap R24
 0304 8F70              andi R24,#0x0F
 0306 805D              subi R24,208    ; addi 48
 0308 80930A00          sts _display+4,R24
 030C                   .dbline 402
 030C           ;       display[5]=(temp_data1[2]&0x0F)+0x30;
 030C 80910200          lds R24,_temp_data1+2
 0310 8F70              andi R24,15
 0312 805D              subi R24,208    ; addi 48
 0314 80930B00          sts _display+5,R24
 0318                   .dbline 404
 0318           ;       
 0318           ;       LCD1602_gotoXY(1,8);
 0318 28E0              ldi R18,8
 031A 01E0              ldi R16,1
 031C 1BDF              xcall _LCD1602_gotoXY
 031E                   .dbline 405
 031E           ;       LCD1602_sendbyte(iDat,display[0]); 
 031E 20910600          lds R18,_display
 0322 01E0              ldi R16,1
 0324 E0DE              xcall _LCD1602_sendbyte
 0326                   .dbline 406
 0326           ;       LCD1602_sendbyte(iDat,display[1]);
 0326 20910700          lds R18,_display+1
 032A 01E0              ldi R16,1
 032C DCDE              xcall _LCD1602_sendbyte
 032E                   .dbline 407
 032E           ;       LCD1602_gotoXY(1,11);
 032E 2BE0              ldi R18,11
 0330 01E0              ldi R16,1
 0332 10DF              xcall _LCD1602_gotoXY
 0334                   .dbline 408
 0334           ;       LCD1602_sendbyte(iDat,display[2]);
 0334 20910800          lds R18,_display+2
 0338 01E0              ldi R16,1
 033A D5DE              xcall _LCD1602_sendbyte
 033C                   .dbline 409
 033C           ;       LCD1602_sendbyte(iDat,display[3]);
 033C 20910900          lds R18,_display+3
 0340 01E0              ldi R16,1
 0342 D1DE              xcall _LCD1602_sendbyte
 0344                   .dbline 410
 0344           ;       LCD1602_gotoXY(1,14);
 0344 2EE0              ldi R18,14
 0346 01E0              ldi R16,1
 0348 05DF              xcall _LCD1602_gotoXY
 034A                   .dbline 411
 034A           ;       LCD1602_sendbyte(iDat,display[4]);
 034A 20910A00          lds R18,_display+4
 034E 01E0              ldi R16,1
 0350 CADE              xcall _LCD1602_sendbyte
 0352                   .dbline 412
 0352           ;       LCD1602_sendbyte(iDat,display[5]);
 0352 20910B00          lds R18,_display+5
 0356 01E0              ldi R16,1
 0358                   .dbline -2
 0358                   .dbline 414
 0358           ; 
 0358           ; }
 0358           L63:
 0358                   .dbline 0 ; func end
 0358 C6CE              xjmp _LCD1602_sendbyte
 035A                   .dbend
 035A                   .dbfunc e timedis _timedis fV
                        .even
 035A           _timedis::
 035A                   .dbline -1
 035A                   .dbline 421
 035A           ; /*******************************************************************/
 035A           ; /*                                                                 */
 035A           ; /* 时间 正常显示数据                                            */
 035A           ; /*                                                                 */
 035A           ; /*******************************************************************/
 035A           ; void timedis()
 035A           ; {
 035A                   .dbline 422
 035A           ;       display[0]=(temp_data2[0]>>4)+0x30;
 035A 80910300          lds R24,_temp_data2
 035E 8295              swap R24
 0360 8F70              andi R24,#0x0F
 0362 805D              subi R24,208    ; addi 48
 0364 80930600          sts _display,R24
 0368                   .dbline 423
 0368           ;       display[1]=(temp_data2[0]&0x0F)+0x30;
 0368 80910300          lds R24,_temp_data2
 036C 8F70              andi R24,15
 036E 805D              subi R24,208    ; addi 48
 0370 80930700          sts _display+1,R24
 0374                   .dbline 424
 0374           ;       display[2]=(temp_data2[1]>>4)+0x30;
 0374 80910400          lds R24,_temp_data2+1
 0378 8295              swap R24
 037A 8F70              andi R24,#0x0F
 037C 805D              subi R24,208    ; addi 48
 037E 80930800          sts _display+2,R24
 0382                   .dbline 425
 0382           ;       display[3]=(temp_data2[1]&0x0F)+0x30;
 0382 80910400          lds R24,_temp_data2+1
 0386 8F70              andi R24,15
 0388 805D              subi R24,208    ; addi 48
 038A 80930900          sts _display+3,R24
 038E                   .dbline 426
 038E           ;       display[4]=(temp_data2[2]>>4)+0x30;
 038E 80910500          lds R24,_temp_data2+2
 0392 8295              swap R24
 0394 8F70              andi R24,#0x0F
 0396 805D              subi R24,208    ; addi 48
 0398 80930A00          sts _display+4,R24
 039C                   .dbline 427
 039C           ;       display[5]=(temp_data2[2]&0x0F)+0x30;
 039C 80910500          lds R24,_temp_data2+2
 03A0 8F70              andi R24,15
 03A2 805D              subi R24,208    ; addi 48
 03A4 80930B00          sts _display+5,R24
 03A8                   .dbline 428
 03A8           ;       LCD1602_gotoXY(2,6); 
 03A8 26E0              ldi R18,6
 03AA 02E0              ldi R16,2
 03AC D3DE              xcall _LCD1602_gotoXY
 03AE                   .dbline 429
 03AE           ;       LCD1602_sendbyte(iDat,display[0]); 
 03AE 20910600          lds R18,_display
 03B2 01E0              ldi R16,1
 03B4 98DE              xcall _LCD1602_sendbyte
 03B6                   .dbline 430
 03B6           ;       LCD1602_sendbyte(iDat,display[1]);
 03B6 20910700          lds R18,_display+1
 03BA 01E0              ldi R16,1
 03BC 94DE              xcall _LCD1602_sendbyte
 03BE                   .dbline 431
 03BE           ;       LCD1602_gotoXY(2,10);
 03BE 2AE0              ldi R18,10
 03C0 02E0              ldi R16,2
 03C2 C8DE              xcall _LCD1602_gotoXY
 03C4                   .dbline 432
 03C4           ;       LCD1602_sendbyte(iDat,display[2]);
 03C4 20910800          lds R18,_display+2
 03C8 01E0              ldi R16,1
 03CA 8DDE              xcall _LCD1602_sendbyte
 03CC                   .dbline 433
 03CC           ;       LCD1602_sendbyte(iDat,display[3]);
 03CC 20910900          lds R18,_display+3
 03D0 01E0              ldi R16,1
 03D2 89DE              xcall _LCD1602_sendbyte
 03D4                   .dbline 434
 03D4           ;       LCD1602_gotoXY(2,14);
 03D4 2EE0              ldi R18,14
 03D6 02E0              ldi R16,2
 03D8 BDDE              xcall _LCD1602_gotoXY
 03DA                   .dbline 435
 03DA           ;       LCD1602_sendbyte(iDat,display[4]);
 03DA 20910A00          lds R18,_display+4
 03DE 01E0              ldi R16,1
 03E0 82DE              xcall _LCD1602_sendbyte
 03E2                   .dbline 436
 03E2           ;       LCD1602_sendbyte(iDat,display[5]);
 03E2 20910B00          lds R18,_display+5
 03E6 01E0              ldi R16,1
 03E8                   .dbline -2
 03E8                   .dbline 439
 03E8           ;       
 03E8           ; 
 03E8           ; }
 03E8           L78:
 03E8                   .dbline 0 ; func end
 03E8 7ECE              xjmp _LCD1602_sendbyte
 03EA                   .dbend
 03EA                   .dbfunc e main _main fV
 03EA           ;        sec_bak -> R20
 03EA           ;            sec -> R22
                        .even
 03EA           _main::
 03EA 2197              sbiw R28,1
 03EC                   .dbline -1
 03EC                   .dbline 448
 03EC           ; 
 03EC           ; /************************************************************* 
 03EC           ; 函数功能:主函数
 03EC           ; 应用范围:
 03EC           ; 入口参数:
 03EC           ; 出口参数:
 03EC           ; *************************************************************/  
 03EC           ; void main(void)
 03EC           ; {
 03EC                   .dbline 449
 03EC           ;       unsigned char sec,sec_bak=sec;
 03EC 462F              mov R20,R22
 03EE                   .dbline 450
 03EE           ;       Board_init();
 03EE 36DE              xcall _Board_init
 03F0                   .dbline 451
 03F0           ;       PORTA=0XFF;
 03F0 8FEF              ldi R24,255
 03F2 8BBB              out 0x1b,R24
 03F4                   .dbline 452
 03F4           ;       PORTC=0X1F;
 03F4 8FE1              ldi R24,31
 03F6 85BB              out 0x15,R24
 03F8                   .dbline 453
 03F8           ;       InitDs12c887();
 03F8 14DF              xcall _InitDs12c887
 03FA                   .dbline 454
 03FA           ;       SetDate(0x15,0x10,0x08);
 03FA 88E0              ldi R24,8
 03FC 8883              std y+0,R24
 03FE 20E1              ldi R18,16
 0400 05E1              ldi R16,21
 0402 40DF              xcall _SetDate
 0404                   .dbline 455
 0404           ;       SetTime(0x10,0x10,0x11);        
 0404 81E1              ldi R24,17
 0406 8883              std y+0,R24
 0408 20E1              ldi R18,16
 040A 00E1              ldi R16,16
 040C 25DF              xcall _SetTime
 040E                   .dbline 456
 040E           ;       Natural_Menu ();
 040E 50DF              xcall _Natural_Menu
 0410                   .dbline 457
 0410           ;       PORTD=0xFF;
 0410 8FEF              ldi R24,255
 0412 82BB              out 0x12,R24
 0414 33C0              xjmp L95
 0416           L94:
 0416                   .dbline 461
 0416           ; 
 0416           ;       
 0416           ;       while(1)
 0416           ;       {
 0416                   .dbline 462
 0416           ;               PORTC&=0X1F;
 0416 85B3              in R24,0x15
 0418 8F71              andi R24,31
 041A 85BB              out 0x15,R24
 041C                   .dbline 463
 041C           ;               sec=GetSeconds();
 041C 0FDF              xcall _GetSeconds
 041E 602F              mov R22,R16
 0420                   .dbline 465
 0420           ; 
 0420           ;               if(sec!=sec_bak)
 0420 0417              cp R16,R20
 0422 61F1              breq L97
 0424                   .dbline 466
 0424           ;               {
 0424                   .dbline 468
 0424           ;                                               
 0424           ;               

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?