⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hptv.lis

📁 MCU控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 024C 0895              ret
 024E                   .dbsym r i 20 c
 024E                   .dbsym r Num 18 c
 024E                   .dbsym r Rtime 16 pc
 024E                   .dbend
 024E                   .dbfunc e AddTime _AddTime fV
 024E           ;              i -> y+0
 024E           ;          ATime -> R16
                        .even
 024E           _AddTime::
 024E 0E940000          xcall push_gset2
 0252 2497              sbiw R28,4
 0254                   .dbline -1
 0254                   .dbline 460
 0254           ;   {
 0254           ;    I2cSendData[i+1]=*(Rtime+i);
 0254           ;   }
 0254           ; }
 0254           ; void AddTime(char ATime)
 0254           ; {
 0254                   .dbline 462
 0254           ;   unsigned long i;
 0254           ;   i=0xFFFFFFFF-Time.VS.TL;
 0254 40900900          lds R4,_Time+2
 0258 50900A00          lds R5,_Time+2+1
 025C 20900700          lds R2,_Time
 0260 30900800          lds R3,_Time+1
 0264 4FEF              ldi R20,255
 0266 5FEF              ldi R21,255
 0268 6FEF              ldi R22,255
 026A 7FEF              ldi R23,255
 026C 4219              sub R20,R2
 026E 5309              sbc R21,R3
 0270 6409              sbc R22,R4
 0272 7509              sbc R23,R5
 0274 FE01              movw R30,R28
 0276 4083              std z+0,R20
 0278 5183              std z+1,R21
 027A 6283              std z+2,R22
 027C 7383              std z+3,R23
 027E                   .dbline 463
 027E           ;   if(i<=ATime)
 027E 202E              mov R2,R16
 0280 3324              clr R3
 0282 4424              clr R4
 0284 5524              clr R5
 0286 FE01              movw R30,R28
 0288 6080              ldd R6,z+0
 028A 7180              ldd R7,z+1
 028C 8280              ldd R8,z+2
 028E 9380              ldd R9,z+3
 0290 2614              cp R2,R6
 0292 3704              cpc R3,R7
 0294 4804              cpc R4,R8
 0296 5904              cpc R5,R9
 0298 F8F0              brlo L45
 029A                   .dbline 464
 029A           ;   {
 029A                   .dbline 465
 029A           ;     Time.VS.TH++;
 029A 80910B00          lds R24,_Time+4
 029E 90910C00          lds R25,_Time+4+1
 02A2 0196              adiw R24,1
 02A4 90930C00          sts _Time+4+1,R25
 02A8 80930B00          sts _Time+4,R24
 02AC                   .dbline 466
 02AC           ;       Time.VS.TL=ATime-i;
 02AC FE01              movw R30,R28
 02AE 2080              ldd R2,z+0
 02B0 3180              ldd R3,z+1
 02B2 4280              ldd R4,z+2
 02B4 5380              ldd R5,z+3
 02B6 602E              mov R6,R16
 02B8 7724              clr R7
 02BA 8824              clr R8
 02BC 9924              clr R9
 02BE 6218              sub R6,R2
 02C0 7308              sbc R7,R3
 02C2 8408              sbc R8,R4
 02C4 9508              sbc R9,R5
 02C6 70920800          sts _Time+1,R7
 02CA 60920700          sts _Time,R6
 02CE 90920A00          sts _Time+2+1,R9
 02D2 80920900          sts _Time+2,R8
 02D6                   .dbline 467
 02D6           ;   }
 02D6 18C0              xjmp L46
 02D8           L45:
 02D8                   .dbline 469
 02D8                   .dbline 470
 02D8 202E              mov R2,R16
 02DA 3324              clr R3
 02DC 4424              clr R4
 02DE 5524              clr R5
 02E0 80900900          lds R8,_Time+2
 02E4 90900A00          lds R9,_Time+2+1
 02E8 60900700          lds R6,_Time
 02EC 70900800          lds R7,_Time+1
 02F0 620C              add R6,R2
 02F2 731C              adc R7,R3
 02F4 841C              adc R8,R4
 02F6 951C              adc R9,R5
 02F8 70920800          sts _Time+1,R7
 02FC 60920700          sts _Time,R6
 0300 90920A00          sts _Time+2+1,R9
 0304 80920900          sts _Time+2,R8
 0308                   .dbline 471
 0308           L46:
 0308                   .dbline -2
 0308           L44:
 0308 2496              adiw R28,4
 030A 0E940000          xcall pop_gset2
 030E                   .dbline 0 ; func end
 030E 0895              ret
 0310                   .dbsym l i 0 l
 0310                   .dbsym r ATime 16 c
 0310                   .dbend
 0310                   .dbfunc e DecTime _DecTime fV
 0310           ;              i -> y+0
 0310           ;          Atime -> R16
                        .even
 0310           _DecTime::
 0310 0E940000          xcall push_gset2
 0314 2497              sbiw R28,4
 0316                   .dbline -1
 0316                   .dbline 475
 0316           ;   else
 0316           ;   {
 0316           ;     Time.VS.TL+=ATime;
 0316           ;   }
 0316           ;  
 0316           ; }
 0316           ; void DecTime(char Atime)
 0316           ; {
 0316                   .dbline 477
 0316           ;  unsigned long i;
 0316           ;  if(Time.VS.TL>8)
 0316 48E0              ldi R20,8
 0318 50E0              ldi R21,0
 031A 60E0              ldi R22,0
 031C 70E0              ldi R23,0
 031E 40900900          lds R4,_Time+2
 0322 50900A00          lds R5,_Time+2+1
 0326 20900700          lds R2,_Time
 032A 30900800          lds R3,_Time+1
 032E 4215              cp R20,R2
 0330 5305              cpc R21,R3
 0332 6405              cpc R22,R4
 0334 7505              cpc R23,R5
 0336 C8F4              brsh L49
 0338                   .dbline 478
 0338           ;  {
 0338                   .dbline 479
 0338           ;    Time.VS.TL=Time.VS.TL-Atime;
 0338 202E              mov R2,R16
 033A 3324              clr R3
 033C 4424              clr R4
 033E 5524              clr R5
 0340 80900900          lds R8,_Time+2
 0344 90900A00          lds R9,_Time+2+1
 0348 60900700          lds R6,_Time
 034C 70900800          lds R7,_Time+1
 0350 6218              sub R6,R2
 0352 7308              sbc R7,R3
 0354 8408              sbc R8,R4
 0356 9508              sbc R9,R5
 0358 70920800          sts _Time+1,R7
 035C 60920700          sts _Time,R6
 0360 90920A00          sts _Time+2+1,R9
 0364 80920900          sts _Time+2,R8
 0368                   .dbline 480
 0368           ;  }
 0368 29C0              xjmp L50
 036A           L49:
 036A                   .dbline 482
 036A                   .dbline 483
 036A 80910B00          lds R24,_Time+4
 036E 90910C00          lds R25,_Time+4+1
 0372 0197              sbiw R24,1
 0374 90930C00          sts _Time+4+1,R25
 0378 80930B00          sts _Time+4,R24
 037C                   .dbline 484
 037C 202E              mov R2,R16
 037E 3324              clr R3
 0380 4424              clr R4
 0382 5524              clr R5
 0384 4FEF              ldi R20,255
 0386 5FEF              ldi R21,255
 0388 6FEF              ldi R22,255
 038A 7FEF              ldi R23,255
 038C 4219              sub R20,R2
 038E 5309              sbc R21,R3
 0390 6409              sbc R22,R4
 0392 7509              sbc R23,R5
 0394 40900900          lds R4,_Time+2
 0398 50900A00          lds R5,_Time+2+1
 039C 20900700          lds R2,_Time
 03A0 30900800          lds R3,_Time+1
 03A4 420D              add R20,R2
 03A6 531D              adc R21,R3
 03A8 641D              adc R22,R4
 03AA 751D              adc R23,R5
 03AC 50930800          sts _Time+1,R21
 03B0 40930700          sts _Time,R20
 03B4 70930A00          sts _Time+2+1,R23
 03B8 60930900          sts _Time+2,R22
 03BC                   .dbline 485
 03BC           L50:
 03BC                   .dbline -2
 03BC           L48:
 03BC 2496              adiw R28,4
 03BE 0E940000          xcall pop_gset2
 03C2                   .dbline 0 ; func end
 03C2 0895              ret
 03C4                   .dbsym l i 0 l
 03C4                   .dbsym r Atime 16 c
 03C4                   .dbend
 03C4                   .dbfunc e port_open_machine_set _port_open_machine_set fV
                        .even
 03C4           _port_open_machine_set::
 03C4                   .dbline -1
 03C4                   .dbline 494
 03C4           ;  else
 03C4           ;  {
 03C4           ;   Time.VS.TH--;
 03C4           ;   Time.VS.TL=0xffffffff-Atime+Time.VS.TL;
 03C4           ;  }
 03C4           ; }
 03C4           ; /*********************************************
 03C4           ; // port initialize when you open and close the machine
 03C4           ; //port_open_machine_set 主要实现MCU收到开机指令后的端口设置
 03C4           ; //port_close_machine_set 主要实现MCU收到关机指令后的端口设置,与上电后一致
 03C4           ; //可以将十六进制改成二进制,表示和更改更直观
 03C4           ; *********************************************/
 03C4           ; void port_open_machine_set(void)
 03C4           ; {
 03C4                   .dbline 495
 03C4           ;    WDR();
 03C4 A895              wdr
 03C6                   .dbline 496
 03C6           ;    PORTA&= 0xfd;   //pin37  pa0=0   pin37 PA0=1在定时器中delay 2s 实现
 03C6 8BB3              in R24,0x1b
 03C8 8D7F              andi R24,253
 03CA 8BBB              out 0x1b,R24
 03CC                   .dbline 501
 03CC           ; //   PORTA|= 0x02;   //pin36  pa1=1 
 03CC           ;  //  PORTB|= 0x80;   //pin3   pb7=1
 03CC           ; //   PORTC|= 0x80;   //pin26  pc7=1
 03CC           ; //   PORTC&= 0xbf;   //pin25  pc6=0
 03CC           ;    PORTD&= 0x7f;   //pin16  pd7=0
 03CC 82B3              in R24,0x12
 03CE 8F77              andi R24,127
 03D0 82BB              out 0x12,R24
 03D2                   .dbline 503
 03D2           ;   // PORTC = 0x0c;
 03D2           ;    PORTC&=~(1<<RS232_SW1);   //0
 03D2 AE98              cbi 0x15,6
 03D4                   .dbline 504
 03D4           ;    PORTC|=(1<<RS232_SW2);    //1
 03D4 AF9A              sbi 0x15,7
 03D6                   .dbline 507
 03D6           ; //   PORTD|= 0x20;   //pin14  pd5=1
 03D6           ; //   PORTD&= 0xef;   //pin13  pd4=0
 03D6           ;    WDR();
 03D6 A895              wdr
 03D8                   .dbline -2
 03D8           L52:
 03D8                   .dbline 0 ; func end
 03D8 0895              ret
 03DA                   .dbend
 03DA                   .dbfunc e port_close_machine_set _port_close_machine_set fV
                        .even
 03DA           _port_close_machine_set::
 03DA                   .dbline -1
 03DA                   .dbline 511
 03DA           ; }
 03DA           ; 
 03DA           ; void port_close_machine_set(void)
 03DA           ; {
 03DA                   .dbline 512
 03DA           ;    WDR();
 03DA A895              wdr
 03DC                   .dbline 513
 03DC           ;  PORTA = 0x4c;   //将PA4 SPDIF_SW 暂时定义在高阻态 PA6 HOTPLUG保持为高 pa0=0 A_MUTE为低
 03DC 8CE4              ldi R24,76
 03DE 8BBB              out 0x1b,R24
 03E0                   .dbline 514
 03E0           ;  DDRA  = 0xE3;   //未使能 PA4 SPDIF_SW 
 03E0 83EE              ldi R24,227
 03E2 8ABB              out 0x1a,R24
 03E4                   .dbline 515
 03E4           ;  PORTB = 0xff;   //内部上拉使能
 03E4 8FEF              ldi R24,255
 03E6 88BB              out 0x18,R24
 03E8                   .dbline 516
 03E8           ;  DDRB  = 0x80;
 03E8 80E8              ldi R24,128
 03EA 87BB              out 0x17,R24
 03EC                   .dbline 518
 03EC           ; // PORTC = 0x4c;  //m103 output only
 03EC           ;  PORTC = 0x0c;
 03EC 8CE0              ldi R24,12
 03EE 85BB              out 0x15,R24

⌨️ 快捷键说明

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