HT66f0025项目单片机程序芯片复制
芯片复制单片机源程序如下:
- 芯片复制
- 芯片复制
- 芯片复制
- #include "HT66F002.h"
- #define MS1000HSPINIT 250 //高速模式
- unsigned char ms_1000; //定义1/31S
- unsigned int ms1000set; //定义1S
- unsigned char ms_10000;
- unsigned int minute1;
- unsigned int minute360;
- unsigned char chargedetect;
- unsigned char chargemode;
- unsigned char levelstore;
- //设备的实际开关机状态位,0为关机,1为开机
- unsigned char SYS_ON_OFF_SATE;
- //灯亮度设置函数
- void LightSet(unsigned char setvalue)
- {
- _stm0al=setvalue; _stm0ah=0;
- }
- //AD转换函数
- unsigned int AD_CaiJi() //unsigned char Channel
- {
- unsigned int AD_Data;
-
- AD_Data=0;
- //开启转换
- _start = 0;
- _start = 1;
- _start = 0;
-
-
- while(_adbz==1); //轮询转换
- AD_Data = _sadoh;
- AD_Data <<=4;
- AD_Data += (_sadol>>4);
-
- return AD_Data;
- }
- void main()
- {
- //adc参数定义
- unsigned int adcx;
- unsigned char ADC_Sate;
- unsigned char ADC_Sate1=0;
-
- //adc数据存储变量
- unsigned int adcx1;
- unsigned int adcx2;
- unsigned int adcx3;
- unsigned int adcx4;
- unsigned int adcx5;
-
- //I/O口初始化设置
- _papu = 0b11011011; //上拉设置,1为上拉,0为不上拉
- _pac = 0b11111011; //IO口方向设置,0为输出,1为输入
-
- //引脚功能设置
- _pas4=1; //PA2=STP0
- _pas6=1; //_pas6和_pas7用来设置PA5 功能选择,选择为ADC的通道AN3
- _pas7=1;
- //STM PWM 输出设置
- _stm0c1=0b10101000; //fINT=fSYS/4, PWM Mode 256/2M=pres
- LightSet(0);
- _stm0c0=0b00001010; //打开定时器
-
- //AD初始化设置,参照数据手册A/D转换器章节
- _sadc0 = 0b00100011; //使能ADC AN3
- _sadc1 = 0b00000010; //fsys/4
- _sadc2 = 0b00000000; //除能OPA
-
- //系统参初始化
- _hlclk=1; //时钟初始化
- ms1000set=MS1000HSPINIT;
- ms_10000=31;
- minute1=1860;
- minute360=361;
- SYS_ON_OFF_SATE=0; //关开机起始状态设置
- levelstore=125; //亮度初始化
-
- while(1)
- {
-
- if(_stmp0f) //判断STM中断标志位是否为1,everay 1ms/次
- {
- _clrwdt(); //清除看门狗定时器计数器
- _stmp0f=0;
-
- if(--ms_1000==0) //every 1/31s/次
- {
- ms_1000=ms1000set;
-
- if(--ms_10000==0) //every 1s/次
- {
- ms_10000=31;
- adcx=AD_CaiJi();
- adcx1=AD_CaiJi();
- adcx2=AD_CaiJi();
- adcx3=AD_CaiJi();
- adcx4=AD_CaiJi();
-
- if((adcx>=2550)&&(adcx1>=2550)&&(adcx2>=2550)&&(adcx3>=2550)&&(adcx4>=2550)) //1.7V 1800
- {
- ADC_Sate=0;
- ADC_Sate1=ADC_Sate;
- SYS_ON_OFF_SATE=0; //关机状态
-
- }
- else if((adcx<=2150)&&(adcx1<=2150)&&(adcx2<=2150)&&(adcx3<=2150)&&(adcx4<=2150)) //1.4V 1511
- {
- ADC_Sate=1;
- ADC_Sate1=ADC_Sate;
- SYS_ON_OFF_SATE=1; //开机状态
- }
- else
- {
- ADC_Sate=ADC_Sate1;
- }
-
- if(chargemode==0)
- {
- if(ADC_Sate) //adc值小于1.6V
- {
- chargedetect=0;
- LightSet(levelstore);
- }
- else if(++chargedetect>5)
- {
- chargemode=1;//start charge
- LightSet(0);
- levelstore=125;
- minute1=1860;
- minute360=361;
- }
- }
- else
- {
- if(!ADC_Sate) //adc值大于1.6V
- {
- chargedetect=0;
- LightSet(0);
- }
- else if(++chargedetect>5)
- {
- chargemode=0;//stop charge
- LightSet(levelstore);
- minute1=1860;
- minute360=361;
- }
- }
-
- }

芯片解密