📄 hptv.lis
字号:
0156 ; open_machine_enable=0;
0156 20924400 sts _open_machine_enable,R2
015A .dbline 355
015A ; tv_state=1;
015A 80930000 sts _tv_state,R24
015E .dbline 356
015E ; WDR();
015E A895 wdr
0160 .dbline 357
0160 ; command_2d=0;
0160 20922A00 sts _command_2d,R2
0164 .dbline 358
0164 ; PORTA|=(1<<7);
0164 DF9A sbi 0x1b,7
0166 .dbline 359
0166 ; System_State=booting;
0166 80930000 sts _System_State,R24
016A .dbline -2
016A L27:
016A .dbline 0 ; func end
016A 0895 ret
016C .dbend
016C .dbfunc e close_machine _close_machine fV
.even
016C _close_machine::
016C .dbline -1
016C .dbline 370
016C ; }
016C ;
016C ;
016C ;
016C ; /*********************************************
016C ; //关机函数
016C ; //此函数用于设置关机时序
016C ;
016C ; *********************************************/
016C ; void close_machine(void)
016C ; {
016C .dbline 371
016C ; WDR();
016C A895 wdr
016E .dbline 373
016E ; //PORTC|=0x38; //pwrbt=1
016E ; reset_close_count=0;
016E 2224 clr R2
0170 20925100 sts _reset_close_count,R2
0174 .dbline 374
0174 ; rly_on_count=0;
0174 20925000 sts _rly_on_count,R2
0178 .dbline 375
0178 ; vs_on_close_count=0;
0178 20924E00 sts _vs_on_close_count,R2
017C .dbline 376
017C ; close_to_open_count=0;
017C 20925600 sts _close_to_open_count,R2
0180 .dbline 377
0180 ; machine_close_start=1;
0180 81E0 ldi R24,1
0182 80934600 sts _machine_close_start,R24
0186 .dbline 378
0186 ; close_to_open_station=0;
0186 20924900 sts _close_to_open_station,R2
018A .dbline 379
018A ; close_machine_enable=0;
018A 20924500 sts _close_machine_enable,R2
018E .dbline 380
018E ; open_machine_enable=0;
018E 20924400 sts _open_machine_enable,R2
0192 .dbline 381
0192 ; tv_state=0;
0192 20920000 sts _tv_state,R2
0196 .dbline 382
0196 ; PORTA|=(1<<7);
0196 DF9A sbi 0x1b,7
0198 .dbline 383
0198 ; System_State=halting;
0198 84E0 ldi R24,4
019A 80930000 sts _System_State,R24
019E .dbline 384
019E ; WDR();
019E A895 wdr
01A0 .dbline -2
01A0 L28:
01A0 .dbline 0 ; func end
01A0 0895 ret
01A2 .dbend
01A2 .dbfunc e port_init _port_init fV
.even
01A2 _port_init::
01A2 .dbline -1
01A2 .dbline 394
01A2 ; }
01A2 ;
01A2 ;
01A2 ;
01A2 ; /*********************************************
01A2 ; // port initialize
01A2 ;
01A2 ; *********************************************/
01A2 ; void port_init(void)
01A2 ; {
01A2 .dbline 395
01A2 ; PORTA = 0xcc; //将PA4 PA5,SPDIF_SW 输出为0 PA6 HOTPLUG保持为高
01A2 8CEC ldi R24,204
01A4 8BBB out 0x1b,R24
01A6 .dbline 396
01A6 ; DDRA = 0xf3; // PA4,PA5 置为输出态
01A6 83EF ldi R24,243
01A8 8ABB out 0x1a,R24
01AA .dbline 398
01AA ; // PORTB = 0x7f;
01AA ; PORTB = 0xff; //内部上拉使能
01AA 8FEF ldi R24,255
01AC 88BB out 0x18,R24
01AE .dbline 399
01AE ; DDRB = 0x80;
01AE 80E8 ldi R24,128
01B0 87BB out 0x17,R24
01B2 .dbline 401
01B2 ; // PORTC = 0x4c; //m103 output only
01B2 ; PORTC = 0x0c;
01B2 8CE0 ldi R24,12
01B4 85BB out 0x15,R24
01B6 .dbline 402
01B6 ; PORTC|=(1<<RS232_SW1); //1
01B6 AE9A sbi 0x15,6
01B8 .dbline 403
01B8 ; PORTC&=~(1<<RS232_SW2); //0 --串口初始化
01B8 AF98 cbi 0x15,7
01BA .dbline 405
01BA ; // PORTC = 0x0c; //m103 output only
01BA ; DDRC = 0xf4; //pwrbt 去掉更改为备用的实时的中断输入引脚;
01BA 84EF ldi R24,244
01BC 84BB out 0x14,R24
01BE .dbline 406
01BE ; PORTD = 0x60;
01BE 80E6 ldi R24,96
01C0 82BB out 0x12,R24
01C2 .dbline 407
01C2 ; DDRD = 0xF3;
01C2 83EF ldi R24,243
01C4 81BB out 0x11,R24
01C6 .dbline -2
01C6 L29:
01C6 .dbline 0 ; func end
01C6 0895 ret
01C8 .dbend
01C8 .dbfunc e init_time _init_time fV
.even
01C8 _init_time::
01C8 0E940000 xcall push_gset2
01CC .dbline -1
01CC .dbline 411
01CC ; }
01CC ; /********************************************/
01CC ; void init_time()
01CC ; {
01CC .dbline 412
01CC ; Time.VS.TL=0;
01CC 40E0 ldi R20,0
01CE 50E0 ldi R21,0
01D0 60E0 ldi R22,0
01D2 70E0 ldi R23,0
01D4 50930800 sts _Time+1,R21
01D8 40930700 sts _Time,R20
01DC 70930A00 sts _Time+2+1,R23
01E0 60930900 sts _Time+2,R22
01E4 .dbline 413
01E4 ; Time.VS.TH=0;
01E4 2224 clr R2
01E6 3324 clr R3
01E8 30920C00 sts _Time+4+1,R3
01EC 20920B00 sts _Time+4,R2
01F0 .dbline -2
01F0 L30:
01F0 0E940000 xcall pop_gset2
01F4 .dbline 0 ; func end
01F4 0895 ret
01F6 .dbend
01F6 .dbfunc e WriteTime _WriteTime fV
01F6 ; i -> R20
01F6 ; Num -> R18
01F6 ; RTime -> R16,R17
.even
01F6 _WriteTime::
01F6 0E940000 xcall push_gset1
01FA .dbline -1
01FA .dbline 417
01FA ; }
01FA ;
01FA ; void WriteTime(char * RTime,char Num)
01FA ; {
01FA .dbline 419
01FA ; unsigned char i;
01FA ; for(i=0;i<Num;i++)
01FA 4427 clr R20
01FC 0DC0 xjmp L36
01FE L33:
01FE .dbline 420
01FE .dbline 421
01FE 80E0 ldi R24,<_I2cReceiveData+1
0200 90E0 ldi R25,>_I2cReceiveData+1
0202 E42F mov R30,R20
0204 FF27 clr R31
0206 E80F add R30,R24
0208 F91F adc R31,R25
020A 2080 ldd R2,z+0
020C E42F mov R30,R20
020E FF27 clr R31
0210 E00F add R30,R16
0212 F11F adc R31,R17
0214 2082 std z+0,R2
0216 .dbline 422
0216 L34:
0216 .dbline 419
0216 4395 inc R20
0218 L36:
0218 .dbline 419
0218 4217 cp R20,R18
021A 88F3 brlo L33
021C .dbline -2
021C L32:
021C 0E940000 xcall pop_gset1
0220 .dbline 0 ; func end
0220 0895 ret
0222 .dbsym r i 20 c
0222 .dbsym r Num 18 c
0222 .dbsym r RTime 16 pc
0222 .dbend
0222 .dbfunc e ReadTime _ReadTime fV
0222 ; i -> R20
0222 ; Num -> R18
0222 ; Rtime -> R16,R17
.even
0222 _ReadTime::
0222 0E940000 xcall push_gset1
0226 .dbline -1
0226 .dbline 452
0226 ; {
0226 ; *(RTime+i)=I2cReceiveData[i+1];
0226 ; }
0226 ;
0226 ; }
0226 ; /*
0226 ; void WriteTime() //写设定时间
0226 ; {
0226 ; unsigned char i;
0226 ; for(i=1;i<6;i++)
0226 ; {
0226 ; Time.CBit[i]=I2cReceiveData[i];
0226 ; }
0226 ; }
0226 ; void WriteOpenTime() //写开机时间
0226 ; {
0226 ; unsigned char i;
0226 ; for(i=1;i<4;i++)
0226 ; {
0226 ; OpenTime.OBit[i]=I2cReceiveData[i];
0226 ; }
0226 ; }
0226 ; void WriteCloseTime() //写关机时间
0226 ; {
0226 ; unsigned char i;
0226 ; for(i=1;i<4;i++)
0226 ; {
0226 ; CloseTime.CBit[i]=I2cReceiveData[i];
0226 ; }
0226 ; }*/
0226 ;
0226 ; void ReadTime(char *Rtime,char Num)
0226 ; {
0226 .dbline 454
0226 ; unsigned char i;
0226 ; for(i=0;i<Num;i++)
0226 4427 clr R20
0228 0DC0 xjmp L42
022A L39:
022A .dbline 455
022A .dbline 456
022A E42F mov R30,R20
022C FF27 clr R31
022E E00F add R30,R16
0230 F11F adc R31,R17
0232 2080 ldd R2,z+0
0234 80E0 ldi R24,<_I2cSendData+1
0236 90E0 ldi R25,>_I2cSendData+1
0238 E42F mov R30,R20
023A FF27 clr R31
023C E80F add R30,R24
023E F91F adc R31,R25
0240 2082 std z+0,R2
0242 .dbline 457
0242 L40:
0242 .dbline 454
0242 4395 inc R20
0244 L42:
0244 .dbline 454
0244 4217 cp R20,R18
0246 88F3 brlo L39
0248 .dbline -2
0248 L38:
0248 0E940000 xcall pop_gset1
024C .dbline 0 ; func end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -