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

📄 hptv.lis

📁 MCU控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module hptv.c
                        .area data(ram, con, rel)
 0000           _adc_jg::
 0000                   .blkb 2
                        .area idata
 0000 0000              .byte 0,0
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 0000              .byte 0,0
                        .area data(ram, con, rel)
 0004                   .blkb 1
                        .area idata
 0004 00                .byte 0
                        .area data(ram, con, rel)
 0005                   .dbfile G:\McuControl\hptv.c
 0005                   .dbsym e adc_jg _adc_jg A[5:5]c
                        .area lit(rom, con, rel)
 0000           _uart_command::
 0000 504F              .byte 'P,'O
 0002 5752              .byte 'W,'R
 0004                   .dbsym e uart_command _uart_command A[4:4]kc
                        .area text(rom, con, rel)
 0000                   .dbfile G:\McuControl\hptv.c
 0000                   .dbfunc e Clear_Timer_Close_Machine _Clear_Timer_Close_Machine fV
                        .even
 0000           _Clear_Timer_Close_Machine::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 279
 0004           ; //ICC-AVR application builder : 2006-8-5 21:56:00
 0004           ; // Target : M16
 0004           ; // Crystal: 7.3728Mhz
 0004           ; 
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; #include <eeprom.h>
 0004           ; //#include "necdecode.h"
 0004           ; //#include "rc5.c"
 0004           ; #include "i2c.h" 
 0004           ; #include "hptvstruct.h"
 0004           ; typedef unsigned char uchar;
 0004           ; typedef unsigned int uint;
 0004           ; /********************************************
 0004           ; //定义宏
 0004           ; //设置计数器各种功能时间值
 0004           ; //关机后,2s 后响应开机信号        0.05*40=2s
 0004           ; //开机后,20s 后响应关机信号       0.05*400=20s
 0004           ; //设置pwrbt=1 / 0 时间值           1ms*10=10ms 10+5=15ms
 0004           ; //设置rest and rest_l 开机时间值   0.05s*24=1.2s 0.05s*28=1.4s
 0004           ; //设置rest and rest_l 关机时间值   1ms*50=50ms 1ms*80=80s
 0004           ; //设置rly_on 关机时间值            1ms*200=200ms 
 0004           ; //设置vs_on  开机时间值            1ms*20=20ms 
 0004           ; //设置vs_on  关机时间值            1ms*220=220ms 
 0004           ; //设置开机后pa0从低到高延迟时间值  0.05s*40=2s 
 0004           ; //设置开机后poer重置延迟时间值     0.05s*12=0.6s 
 0004           ; //设置power_key donwn时间值        1ms*20=20ms 
 0004           ; //设置power_on时间值               1ms*200=200s 
 0004           ; //设置rc5码全部bit长度以及第一、二开始位bit结束位置          
 0004           ; *********************************************/
 0004           ; #define   close_to_open_time   40
 0004           ; #define   open_to_close_time   60      //3s
 0004           ; #define   pwrbt_high_time      10
 0004           ; #define   pwrbt_low_time       15
 0004           ; #define   reset_open_time      28                
 0004           ; #define   reset_l_open_time    28
 0004           ; #define   reset_close_time     50
 0004           ; #define   reset_l_close_time   80
 0004           ; #define   rly_on_time          200
 0004           ; #define   vs_on_open_time      20
 0004           ; #define   vs_on_close_time     220
 0004           ; #define   pa0_l_open_delay     40
 0004           ; #define   port_open_machine_delaytime  12
 0004           ; #define   power_key_down_time  50
 0004           ; #define   power_on_down_time   50
 0004           ; 
 0004           ; #define   ADC_2                2  //ad通道号
 0004           ; //按键状态
 0004           ; #define   KEY_POWER            0x40  
 0004           ; //#define   KEY_ENTER            1
 0004           ; #define   KEY_SOURCE           0x20
 0004           ; #define   KEY_CHL              0x10
 0004           ; #define   KEY_CHH              0x08
 0004           ; #define   KEY_VOLL             0x04
 0004           ; #define   KEY_VOLH             0x02
 0004           ; #define   KEY_MENU             0x01
 0004           ; 
 0004           ; 
 0004           ; #define   KEY_TIME             200  //连续按键处理时间间隔500ms,可更改
 0004           ;                                     //  联动power_num     
 0004           ; 
 0004           ;    
 0004           ; #define   KEYMENU_MIN          0x80     
 0004           ; #define   KEYMENU_MAX          0xa2     
 0004           ; #define   KEYPOWER_MIN         0x00     
 0004           ; #define   KEYPOWER_MAX         0x20
 0004           ;   
 0004           ; //#define   KEYENTER_MIN         ((256/3.3)*2.29)-5     
 0004           ; //#define   KEYENTER_MAX         ((256/3.3)*2.29)+5     
 0004           ; #define   KEYCHL_MIN           0x28
 0004           ; #define   KEYCHL_MAX           0x42
 0004           ; 
 0004           ; #define   KEYCHH_MIN           0x4a
 0004           ; #define   KEYCHH_MAX           0x62
 0004           ; 
 0004           ; #define   KEYVOLL_MIN          0x68
 0004           ; #define   KEYVOLL_MAX          0x80
 0004           ; 
 0004           ; #define   KEYVOLH_MIN          0xc3
 0004           ; #define   KEYVOLH_MAX          0xdb
 0004           ; 
 0004           ; #define   KEYSOURCE_MIN        0xa8
 0004           ; #define   KEYSOURCE_MAX        0xbf
 0004           ; 
 0004           ; #define   FAC_OPEN             0x00
 0004           ; #define   FAC_CLOSE            0xff
 0004           ; 
 0004           ; 
 0004           ; 
 0004           ; #define   IRDA_WAIT            250  //红外按键第一次击键后关闭时长(单位ms)
 0004           ; 
 0004           ; #define   I2C_SEQ              100  //I2C脉宽申请宽度
 0004           ; 
 0004           ; #define   HPD123               6
 0004           ; #define   SPDIF_SW             4
 0004           ; #define   A_MUTE               0
 0004           ; #define   RS232_SW1            6
 0004           ; #define   RS232_SW2            7
 0004           ; 
 0004           ; #define   EDID_RWEN            7
 0004           ; 
 0004           ; //#define   rc5_bit_length       215
 0004           ; //#define   rc5_startbit_1_length  8
 0004           ; //#define   rc5_startbit_2_length  24
 0004           ; /*********************************************
 0004           ; //定义变量(按行归类解释)
 0004           ; //定义计数器计数值,初始值为0,意义对应宏定义   (第1--7行)
 0004           ; //定义关机到开机和开机到关机状态,当值为1时,表示处于20s和2s计数过程,不可进行相应的关机和开机(8行)
 0004           ; //定义开关机动作开始,可以告诉计数器计数开始   (第9行)
 0004           ; //定义开机和关机使能状态(10行)
 0004           ; //定义开机和关机控制信号使能状态(11--12行)
 0004           ; //rc5码各对应变量(13--18行)
 0004           ; *********************************************/
 0004           ; unsigned char close_to_open_count;
 0004           ; unsigned int  open_to_close_count;
 0004           ; unsigned char pwrbt_count;
 0004           ; unsigned char reset_open_count,reset_close_count;
 0004           ; unsigned char rly_on_count;
 0004           ; unsigned char vs_on_open_count,vs_on_close_count;
 0004           ; unsigned char power_key_down_count,power_key_on_count;
 0004           ; unsigned char power_on_on_count,power_on_down_count;
 0004           ; unsigned char close_to_open_station,open_to_close_station;      //用于开关机转换等待时间计数
 0004           ; unsigned char machine_open_start,machine_close_start;           //开关机开始时给计数器开始使能
 0004           ; unsigned char close_machine_enable,open_machine_enable;
 0004           ; 
 0004           ; uchar   power_down_count;   //掉电检测时间计数器
 0004           ; uchar   power_check_up;     //掉电检测关机后重新开机标志
 0004           ; unsigned char adc_jg[5]={0,0,0,0,0};
 0004           ; unsigned char adc_rel;      //ad转换结果
 0004           ; unsigned char adc_num;      //累计5次ad次数后算转换平均值
 0004           ; uchar  key_jg[3];           //累计3次结果相同则按键值有效
 0004           ; uchar  key_num;             //按键累计
 0004           ; uchar  key,key_open;        //键值,按键打开标志
 0004           ; uchar  time0_num,time1_num; //
 0004           ; uchar  time0_b,time1_b;     //time0标志
 0004           ; uchar  timer1_b;             //time1标志
 0004           ; uchar  time1s_num,time1s_b; //1s计数
 0004           ; uchar  timer_s;             //当前9s内的s数
 0004           ; uchar  OpenTime_b;          //开机时间判断
 0004           ; uchar  CloseTime_b;         //关机时间判断
 0004           ; uchar  opentime_min;
 0004           ; uchar  closetime_min;
 0004           ; uchar  key_b;               //按键处理标志
 0004           ; uint   keycl_num;           //按键处理时间间隔
 0004           ; uchar  command_2d;          //2d命令判断
 0004           ; 
 0004           ; uchar  fac_state;           //工厂状态,需在e2prom中保存
 0004           ; uchar  power_num;           //power键8s计时   KEY_TIME*16 (500*16)次
 0004           ; uchar  s8_state;            //8s工厂状态检测
 0004           ; uchar  pb_state;            //b口状态
 0004           ; uchar  pb_num,pbcheck_num;  //pb检测时间计时,状态变化确认计时 
 0004           ; uchar  iocheck_num;         //
 0004           ; uchar  u0check_num;         //串口0数据超时检测计时
 0004           ; uchar  uart0_b,uart0_num;             //启动超时检测
 0004           ; const  uchar  uart_command[4]={'P','O','W','R'};
 0004           ; uchar  uart0_buffer[5];
 0004           ; uchar  i2cexint_num,i2c_b;        //
 0004           ; uchar  i2c_command;
 0004           ; //uchar  irda_num;             //
 0004           ; uchar  set_time;            //设置时间标志
 0004           ; uchar  STATE;
 0004           ; 
 0004           ; unsigned char CloseTimeMin_b;
 0004           ; 
 0004           ; struct T
 0004           ; {
 0004           ;   unsigned long TL;
 0004           ;   unsigned int  TH;
 0004           ; };
 0004           ; union OTime
 0004           ; {
 0004           ;   unsigned long Ontime;  //开机时间
 0004           ;   char   OBit[4];
 0004           ; }OpenTime;
 0004           ; union CTime              //关机时间
 0004           ; {
 0004           ;   unsigned long Cstime;
 0004           ;   char   CBit[4];
 0004           ; }CloseTime;
 0004           ; union TimeValume         //时间参数
 0004           ; {
 0004           ;   struct T VS;
 0004           ;   char    CBit[6];
 0004           ; }Time;
 0004           ; //TimeValume Time;
 0004           ; //外部函数声明
 0004           ; extern void i2cSetSlaveReceiveHandler(void (*i2cSlaveRx_func)(unsigned char receiveDataLength, unsigned char* recieveData));
 0004           ; extern void i2cSetSlaveTransmitHandler(unsigned char (*i2cSlaveTx_func)(unsigned char transmitDataLengthMax, unsigned char* transmitData));
 0004           ; //从函数声明
 0004           ; extern void i2cSlaveReceiveService(unsigned char receiveDataLength, unsigned char* receiveData);
 0004           ; //从函数声明
 0004           ; extern unsigned char i2cSlaveTransmitService(unsigned char transmitDataLengthMax, unsigned char* transmitData);
 0004           ; extern void i2cInit(void);
 0004           ; //extern void i2cSetLocalDeviceAddr(unsigned char deviceAddr);
 0004           ; 
 0004           ; //################################################
 0004           ; 
 0004           ; //NEC码解码部分变量声明-从此开始
 0004           ; extern unsigned char  BTheFirstFallEdge; //为0时说明为接收到第一个下降沿或接受到第一个;为1时认为已接收到了第一个或大于1个下降沿;做为起始时间基准
 0004           ; extern unsigned char  BReceiveStart;    //开始接收数据标志
 0004           ; extern unsigned char  BNecFallEdge;     //是否有下降边沿
 0004           ; extern unsigned char  TimeNecFallEdge;  //下降边沿时间长度
 0004           ; extern unsigned char  RTimeNecFallEdge; //下降边沿时间长度结果保存
 0004           ; extern unsigned char  BNecStartBit;    //是否有起始位
 0004           ; extern unsigned char  NecData[4];              //红外数据
 0004           ; extern unsigned int   NecDecodeNum;    //红外数据位个数指针
 0004           ; extern unsigned int   i;
 0004           ; extern unsigned char  BHasReceiveNec;   //已收到一个NEC码 为进行接收重复码做准备
 0004           ; extern unsigned char  BPowerButton;     //有开机按键
 0004           ; extern unsigned int   NecRepeatCodeNum; //重复码与上一个NEC码时间间隔计数变量和重复码本身长度计数变量
 0004           ; extern unsigned int   RNecRepeatCodeNum;//重复码计数结果保存
 0004           ; 
 0004           ; extern unsigned char  BNecRepeat;       //重复码标志,置1为收到重复码
 0004           ; extern unsigned char  ResultNec;
 0004           ; extern unsigned char  RepeatCountFlag;  //为0时为还已收到了一个NEC码还未收到一次重复码,为1时为收到至少一个重复码
 0004           ; extern unsigned char  BRepeatStar;      //Repeat开始标志 
 0004           ; extern unsigned char tv_state;           //机器状态位
 0004           ; extern unsigned char irda_num,irda_b;
 0004           ; extern unsigned char  i2c_public;           //i2c使用权检测 
 0004           ; extern unsigned char irda_data;          //预发送数据
 0004           ; 
 0004           ; extern unsigned char power_key_open_enable;//
 0004           ; extern unsigned char power_on_close_enable;//  
 0004           ; 
 0004           ; //NEC码解码部分变量声明-到此结束
 0004           ; //NEC码解码部分外部函数声明-从此开始
 0004           ; //extern void Head_Reset_Nec_receive();
 0004           ; //extern void Nec_data_deal_fun(void);
 0004           ; //extern void Deal_Repeat();
 0004           ; //extern void Nec_Decode();
 0004           ; extern void RepeatReceive(void);
 0004           ; extern void Nec_Receive(void);
 0004           ; extern void IR_var_init(void);
 0004           ; //NEC码解码部分外部函数声明-到此结束
 0004           ; 
 0004           ; extern unsigned char I2cSendData[I2C_SEND_DATA_BUFFER_SIZE]; 
 0004           ; extern unsigned char I2cSendDataIndex; 
 0004           ; extern unsigned char I2cSendDataLength;
 0004           ; 
 0004           ; extern unsigned char I2cReceiveData[I2C_RECEIVE_DATA_BUFFER_SIZE]; 
 0004           ; extern unsigned char I2cReceiveDataIndex; 
 0004           ; extern unsigned char I2cReceiveDataLength;
 0004           ; 
 0004           ; extern unsigned char i2creceive_b;  //接收到命令
 0004           ; extern unsigned char i2creadtime_b; //
 0004           ; 
 0004           ; 
 0004           ; extern volatile unsigned char Powerdown_signal;
 0004           ; unsigned char Powerdown_time;
 0004           ; unsigned char Panel_Open_delay_Signal;
 0004           ; unsigned char Panel_Open_delay_Time;
 0004           ; unsigned char KeyResult;
 0004           ; unsigned char Open_Panel_time;
 0004           ; unsigned char Open_Panel_flag;
 0004           ; 
 0004           ; 
 0004           ; 
 0004           ; /*
 0004           ; typedef enum _TVstate
 0004           ; {
 0004           ;    standby,
 0004           ;    booting,
 0004           ;    delaying,
 0004           ;    working,
 0004           ;    halting
 0004           ; }TVstate_t;
 0004           ; */
 0004           ; 
 0004           ; volatile TVstate_t System_State;
 0004           ;    
 0004           ;    
 0004           ;    
 0004           ; 

⌨️ 快捷键说明

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