📄 hptv.lis
字号:
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 + -