久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7475|回復: 4
打印 上一主題 下一主題
收起左側

HT66f0025項目單片機程序,ADC例程

[復制鏈接]
跳轉到指定樓層
樓主
這是我第一次用合泰單片機寫程序,里面用到定時器和ADC,分享一下。

單片機源程序如下:



  1. #include "HT66F002.h"


  2. #define MS1000HSPINIT 250  //高速模式



  3. unsigned char ms_1000;      //定義1/31S

  4. unsigned int  ms1000set;    //定義1S
  5. unsigned char ms_10000;     
  6. unsigned int  minute1;
  7. unsigned int  minute360;

  8. unsigned char chargedetect;
  9. unsigned char chargemode;

  10. unsigned char levelstore;

  11. //設備的實際開關機狀態位,0為關機,1為開機
  12. unsigned char SYS_ON_OFF_SATE;   



  13. //燈亮度設置函數
  14. void LightSet(unsigned char setvalue)         
  15. {
  16.         _stm0al=setvalue; _stm0ah=0;
  17. }


  18. //AD轉換函數
  19. unsigned int AD_CaiJi()  //unsigned char Channel
  20. {
  21.         unsigned int AD_Data;
  22.        
  23.         AD_Data=0;       

  24.     //開啟轉換
  25.         _start = 0;                     
  26.         _start = 1;               
  27.         _start = 0;       
  28.                
  29.                
  30.         while(_adbz==1);                    //輪詢轉換       
  31.         AD_Data = _sadoh;
  32.         AD_Data <<=4;
  33.         AD_Data += (_sadol>>4);                                                                       
  34.                                
  35.     return         AD_Data;
  36. }




  37. void main()
  38. {
  39.         //adc參數定義
  40.         unsigned int  adcx;
  41.         unsigned char ADC_Sate;
  42.         unsigned char ADC_Sate1=0;
  43.        
  44.         //adc數據存儲變量
  45.         unsigned int  adcx1;
  46.     unsigned int  adcx2;
  47.     unsigned int  adcx3;
  48.         unsigned int  adcx4;
  49.         unsigned int  adcx5;
  50.        
  51.         //I/O口初始化設置
  52.            _papu = 0b11011011;    //上拉設置,1為上拉,0為不上拉
  53.         _pac  = 0b11111011;    //IO口方向設置,0為輸出,1為輸入
  54.                
  55.         //引腳功能設置       
  56.         _pas4=1; //PA2=STP0               
  57.     _pas6=1; //_pas6和_pas7用來設置PA5 功能選擇,選擇為ADC的通道AN3
  58.         _pas7=1;

  59.         //STM PWM 輸出設置               
  60.         _stm0c1=0b10101000; //fINT=fSYS/4, PWM Mode 256/2M=pres
  61.         LightSet(0);
  62.         _stm0c0=0b00001010;                            //打開定時器
  63.        
  64.     //AD初始化設置,參照數據手冊A/D轉換器章節
  65.     _sadc0 = 0b00100011;                                        //使能ADC        AN3
  66.         _sadc1 = 0b00000010;                                        //fsys/4
  67.         _sadc2 = 0b00000000;                                        //除能OPA
  68.        
  69.         //系統參初始化
  70.     _hlclk=1;                  //時鐘初始化
  71.     ms1000set=MS1000HSPINIT;
  72.     ms_10000=31;     
  73.     minute1=1860;
  74.     minute360=361;       
  75.     SYS_ON_OFF_SATE=0;         //關開機起始狀態設置
  76.     levelstore=125;            //亮度初始化
  77.    
  78.    while(1)
  79.   {
  80.                          
  81.         if(_stmp0f)                   //判斷STM中斷標志位是否為1,everay 1ms/次
  82.         {       
  83.                 _clrwdt();         //清除看門狗定時器計數器
  84.                 _stmp0f=0;
  85.                
  86.                 if(--ms_1000==0)   //every 1/31s/次
  87.                 {
  88.                         ms_1000=ms1000set;
  89.                        
  90.                         if(--ms_10000==0)   //every 1s/次
  91.                         {
  92.                                 ms_10000=31;
  93.                                 adcx=AD_CaiJi();
  94.                     adcx1=AD_CaiJi();
  95.                         adcx2=AD_CaiJi();
  96.                         adcx3=AD_CaiJi();
  97.                         adcx4=AD_CaiJi();
  98.                                                                     
  99.                             if((adcx>=2550)&&(adcx1>=2550)&&(adcx2>=2550)&&(adcx3>=2550)&&(adcx4>=2550))      //1.7V   1800
  100.                             {
  101.                                     ADC_Sate=0;
  102.                                     ADC_Sate1=ADC_Sate;
  103.                                     SYS_ON_OFF_SATE=0;         //關機狀態
  104.                                        
  105.                             }
  106.                             else if((adcx<=2150)&&(adcx1<=2150)&&(adcx2<=2150)&&(adcx3<=2150)&&(adcx4<=2150)) //1.4V   1511
  107.                             {
  108.                                     ADC_Sate=1;
  109.                                     ADC_Sate1=ADC_Sate;
  110.                                     SYS_ON_OFF_SATE=1;         //開機狀態
  111.                             }          
  112.                             else
  113.                             {
  114.                                 ADC_Sate=ADC_Sate1;  
  115.                             }

  116.                        
  117.                             if(chargemode==0)   
  118.                         {
  119.                                 if(ADC_Sate)   //adc值小于1.6V
  120.                                     {
  121.                                                chargedetect=0;       
  122.                                             LightSet(levelstore);                                        
  123.                                     }
  124.                                     else if(++chargedetect>5)
  125.                                     {
  126.                                             chargemode=1;//start charge       
  127.                                             LightSet(0);       
  128.                                     levelstore=125;
  129.                                         minute1=1860;       
  130.                                         minute360=361;                                                               
  131.                                     }
  132.                             }
  133.                             else
  134.                             {
  135.                                 if(!ADC_Sate)    //adc值大于1.6V
  136.                                 {
  137.                                             chargedetect=0;
  138.                                             LightSet(0);
  139.                                     }
  140.                                     else if(++chargedetect>5)
  141.                                     {
  142.                                         chargemode=0;//stop charge
  143.                                             LightSet(levelstore);
  144.                                             minute1=1860;       
  145.                                         minute360=361;       
  146.                                     }                               
  147.                             }
  148.                                
  149.                         }
  150.                        
  151.                        
  152.                        
  153.                        
  154.                 if(--minute1==0)           //everay minute/次
  155.                 {
  156.                                 minute1=1860;       
  157.                                
  158.                                 if(--minute360==0) //everay 6h/次
  159.                                 {
  160.                                         minute360=361;       
  161.                             levelstore=30;                        
  162.                                 }                              
  163.                 }
  164.                
  165.             }
  166.                
  167.                
  168.                
  169.               
  170.                                                         
  171.         }
  172.       
  173.   
  174.          
  175.   }

  176. }
復制代碼

所有資料51hei提供下載:
HT66F0025單片機例程.rar (23.63 KB, 下載次數: 102)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:78392 發表于 2018-7-21 22:05 | 只看該作者
謝謝分享
回復

使用道具 舉報

板凳
ID:78702 發表于 2019-1-2 15:44 | 只看該作者
有電路圖
回復

使用道具 舉報

地板
ID:78702 發表于 2019-1-2 15:45 | 只看該作者
謝謝你的分享
回復

使用道具 舉報

5#
ID:431827 發表于 2021-5-12 10:18 | 只看該作者
謝謝分享,現在免費能下的網站越來越少了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天精品在线 | 日韩在线视频一区 | 欧美一区不卡 | 1000部精品久久久久久久久 | 水蜜桃亚洲一二三四在线 | 国产精品视频久久久 | 国产精品一二三区 | 亚洲先锋影音 | 国产不卡在线观看 | 色综合久久久久 | 韩日精品一区 | 一二三区视频 | 青娱乐国产 | 久久精品性视频 | 日韩中文字幕一区二区三区 | 不卡av电影在线播放 | 精品伊人 | 日本黄色高清视频 | 福利在线看| 热久久久 | 精品国产乱码久久久久久图片 | 日日干夜夜干 | 麻豆久久久久久久 | 欧美中文一区 | 国产日韩精品一区 | 亚洲第一av | 久久久女女女女999久久 | 欧美日韩综合一区 | 色一情一乱一伦一区二区三区 | 韩日av在线| 久久国产精品-国产精品 | 免费一看一级毛片 | 国产精品色婷婷久久58 | 国产精品视频播放 | 国产精品不卡一区 | 在线观看国产www | 欧美无乱码久久久免费午夜一区 | 亚洲高清在线观看 | 日韩欧美二区 | 久久精品中文 | 日本一卡精品视频免费 |