欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
HT66f0025項目單片機程序,ADC例程
[打印本頁]
作者:
牧師
時間:
2018-7-9 15:18
標題:
HT66f0025項目單片機程序,ADC例程
這是我第一次用合泰單片機寫程序,里面用到定時器和ADC,分享一下。
0.png
(9.55 KB, 下載次數: 113)
下載附件
2018-7-10 01:49 上傳
單片機源程序如下:
#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;
}
}
}
if(--minute1==0) //everay minute/次
{
minute1=1860;
if(--minute360==0) //everay 6h/次
{
minute360=361;
levelstore=30;
}
}
}
}
}
}
復制代碼
所有資料51hei提供下載:
HT66F0025單片機例程.rar
(23.63 KB, 下載次數: 102)
2018-7-9 15:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
cool900
時間:
2018-7-21 22:05
謝謝分享
作者:
kmtbm
時間:
2019-1-2 15:44
有電路圖
作者:
kmtbm
時間:
2019-1-2 15:45
謝謝你的分享
作者:
tangkuan660
時間:
2021-5-12 10:18
謝謝分享,現在免費能下的網站越來越少了。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1