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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3629|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STC8A單片機(jī)多通道同時(shí)使用的程序問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:411221 發(fā)表于 2019-11-21 16:01 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
10黑幣
請(qǐng)問(wèn)STC8A單片機(jī)多通道使用怎么切換達(dá)使用,我只會(huì)該單通道使用的程序,兩個(gè)通道同時(shí)使用不會(huì)更改  請(qǐng)問(wèn)怎么改

單片機(jī)源程序如下:
  1. #include
  2. #include  // _nop_()function
  3. #include "STC8.h"
  4. #include
  5. #include "DELAY.h"


  6. #define VCC  2.5
  7. #define Tstop2  1400      //剎車(chē)溫度2
  8. #define Tstop1  1400     //剎車(chē)溫度1
  9. #define T       1400        //目標(biāo)溫度
  10. #define T_poor  20          //目標(biāo)溫度差
  11. #define Tmax    1500      //最大溫度
  12. #define TAlert  1540     //警戒溫度
  13. #define uint unsigned int
  14. #define uchar  unsigned char
  15. #define U32 unsigned long
  16. #define U16 unsigned int

  17. #define FOSC            24000000UL
  18. #define BRT             (65536 - FOSC / 115200 / 4)


  19. #define ADC_CHANNEL0          0x00            //轉(zhuǎn)換通道P1.0
  20. #define ADC_CHANNEL1          0x01            //轉(zhuǎn)換通道P1.1
  21. #define ADC_CHANNEL2          0x02            //轉(zhuǎn)換通道P1.2
  22. #define ADC_CHANNEL3          0x03            //轉(zhuǎn)換通道P1.3
  23. #define ADC_CHANNEL4          0x04            //轉(zhuǎn)換通道P1.4
  24. #define ADC_CHANNEL5          0x05            //轉(zhuǎn)換通道P1.5
  25. #define ADC_CHANNEL6          0x06            //轉(zhuǎn)換通道P1.6
  26. #define ADC_CHANNEL7          0x07            //轉(zhuǎn)換通道P1.7
  27. #define ADC_CHANNEL8          0x08            //轉(zhuǎn)換通道P0.0
  28. #define ADC_CHANNEL9          0x09            //轉(zhuǎn)換通道P0.1
  29. #define ADC_CHANNEL10         0x0a            //轉(zhuǎn)換通道P0.2
  30. #define ADC_CHANNEL11         0x0b            //轉(zhuǎn)換通道P0.3
  31. #define ADC_CHANNEL12         0x0c            //轉(zhuǎn)換通道P0.4
  32. #define ADC_CHANNEL13         0x0d            //轉(zhuǎn)換通道P0.5
  33. #define ADC_CHANNEL14         0x0e            //轉(zhuǎn)換通道P0.6


  34. sbit TEMP1 = P0^2; //控制1
  35. sbit TEMP2 = P4^3; //控制2
  36. sbit TEMP3 = P0^3; //控制3



  37. float code RTD_TAB_PT100[] =   
  38. {
  39.   88.04,87.64,87.24,86.84,86.44,86.04,85.63,85.23,84.83,84.43, //-30
  40.         92.04,91.64,91.24,90.84,90.44,90.04,89.64,89.24,88.84,88.44, //-20
  41.         98.03,95.63,95.23,94.83,94.43,94.03,93.63,93.24,92.84,92.44, //-10
  42.         100.00,99.60,99.21,98.81,98.41,98.01,97.62,97.22,96.82,96.42, //-0
  43.         100.00,100.40,100.79,101.19,101.59,101.98,102.38,102.78,103.17,103.57, //0
  44.   103.96,104.36,104.75,105.15,105.54,105.94,106.33,106.73,107.12,107.52, //10
  45.         107.91,108.31,108.70,109.10,109.49,109.88,110.28,110.67,111.07,111.46, //20
  46.         111.85,112.25,112.64,113.03,113.43,113.82,114.21,114.60,115.00,115.39, //30
  47.         115.78,116.17,116.57,116.96,117.35,117.74,118.13,118.52,118.91,119.31, //40
  48.         119.70,120.09,120.48,120.87,121.26,121.65,122.04,122.43,122.82,123.21, //50
  49.         123.60,123.99,124.38,124.77,125.16,125.55,125.94,126.33,126.72,127.10, //60
  50. };


  51. U32 AD_value;

  52. ////PT100溫度采集
  53. //unsigned char xdata  ADC1;//外部溫度1
  54. //unsigned char xdata  ADC2;//外部溫度2
  55. //unsigned char xdata  ADC3;//油溫度

  56. /**********************初始化串口******************************/
  57. void UartInit(void)                //9600bps@24.000MHz
  58. {
  59.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  60.         AUXR |= 0x40;                //定時(shí)器1時(shí)鐘為Fosc,即1T
  61.         AUXR &= 0xFE;                //串口1選擇定時(shí)器1為波特率發(fā)生器
  62.         TMOD &= 0x0F;                //設(shè)定定時(shí)器1為16位自動(dòng)重裝方式
  63.         TL1 = 0x8F;                //設(shè)定定時(shí)初值
  64.         TH1 = 0xFD;                //設(shè)定定時(shí)初值
  65.         ET1 = 0;                //禁止定時(shí)器1中斷
  66.         TR1 = 1;                //啟動(dòng)定時(shí)器1
  67.         TI=1;
  68. }

  69. //-----------------------------------------
  70. //ADC初始化程序
  71. //
  72. //-----------------------------------------
  73. void ADC_INI()
  74. {
  75.     P1M0 = 0xff;                                //設(shè)置P1為ADC口
  76.     P1M1 = 0x00;
  77.    // ADC_CONTR |= 0x03;                                                                                                        //切換AD通道,03為  P1.3
  78.     ADCCFG = 0x0f;                              //設(shè)置ADC時(shí)鐘為系統(tǒng)時(shí)鐘/2/16/16
  79.     ADC_CONTR = 0x80;                           //使能ADC模塊
  80.     EADC = 1;                                   //使能ADC中斷
  81.     ADC_CONTR |= 0x40;                          //啟動(dòng)AD轉(zhuǎn)換
  82. }


  83. //-----------------------------------------
  84. //AD中斷服務(wù)程序
  85. //
  86. //-----------------------------------------
  87. void ADC_Isr() interrupt 5 using 1
  88. {
  89.   static U32 accumulator = 0;//AD采集數(shù)值累加
  90.   static U16 measurements = 20;//數(shù)據(jù)值平均次數(shù)

  91.   U32 result = 0;  //平均值結(jié)果

  92.   EA = 0;//20190121
  93.         ADC_CONTR|= 0x03;
  94.   ADC_CONTR &= ~0x20;                         //清中斷標(biāo)志
  95.   ADCCFG = 0x20;                              //設(shè)置結(jié)果右對(duì)齊
  96.   ACC = ADC_RES;                              //A[3:0]存儲(chǔ)ADC的12位結(jié)果的高4位,A[7:4]為0
  97.   B = ADC_RESL;                               //B存儲(chǔ)ADC的12位結(jié)果的低8位

  98.   accumulator += ACC * 256 + B;                // Add most recent sample
  99.   measurements--;

  100.   if (measurements == 0)
  101.     {
  102.      measurements = 20;//平均值濾波======================
  103.      result = accumulator / measurements;
  104.      accumulator = 0;        //=================================
  105.      AD_value =  result ;
  106.                 }
  107.         EA = 1;
  108.   ADC_CONTR |= 0x40;   //繼續(xù)AD轉(zhuǎn)換               
  109.         }



  110. /*******************************主函數(shù)**********************************/
  111. void main (void)
  112. {

  113.   float  Vin3,T0,AD3;//,//Vin2;
  114. //  uint AD3=0;
  115. //        uint T0=0;

  116.   uint AD2= 100;


  117. //使用內(nèi)部高精度晶振  ----------------------------------------------------
  118.   P_SW2 = P_SW2 | 0x80;  //訪問(wèn)擴(kuò)展SFR時(shí),要將P_SW2的高位置 1, EAXFR = 1
  119.   CKSEL = 0x00;//使用內(nèi)部高精度晶振
  120.   CLKDIV = 0x00;//時(shí)鐘不分頻  默認(rèn)是4分頻即:CLKDIV = 0x04;
  121.   while (1) //等待晶振穩(wěn)定*************
  122.     {
  123.      if ((IRC24MCR & 0x01) == 1)
  124.        {
  125.        IRC24MCR = IRC24MCR |0x80;
  126.        break;
  127.        }
  128.      } //******************************
  129.   P_SW2 = P_SW2 & 0x7F;
  130. //-------------------------------------------------------------------------        
  131.   

  132.   UartInit();
  133.         ADC_INI();
  134.         TEMP1= 0;
  135.   TEMP2= 0;
  136.         TEMP3= 0;   //控制端置0
  137.                   
  138.         EA = 1;
  139.                  
  140.   while(1)
  141.                 {

  142.                 AD3 = AD_value;
  143.     Vin3 =  AD3;   //輸出通道3的電壓值
  144.                 T0 = Vin3;        
  145.         
  146.                                 
  147.                         
  148.                         
  149.                 }
  150. }
復(fù)制代碼
全部資料51hei下載地址:
TempCtrl.zip (51.99 KB, 下載次數(shù): 17)

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

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2019-11-21 20:43 | 只看該作者
STC8A8K16S4A12有8個(gè)ADC通道,但內(nèi)部AD轉(zhuǎn)換器只有1個(gè)(其它品牌也基本如此),通過(guò)開(kāi)關(guān)選通某通道轉(zhuǎn)換。不可能多通道同時(shí)轉(zhuǎn)換,而是分時(shí)轉(zhuǎn)換。由于轉(zhuǎn)換速度很快,可以理解為同時(shí)轉(zhuǎn)換。
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2019-11-21 21:54 | 只看該作者
多通道不用怕,就當(dāng)成單通道來(lái)寫(xiě)!
關(guān)鍵是協(xié)議,你可以在協(xié)議上做文章,各機(jī)下載的數(shù)據(jù),有取有舍,協(xié)議規(guī)定是自己的就取,不是自己的就舍,也就OK了。
當(dāng)然其中有此技巧,你要看書(shū),看多機(jī)通訊的章節(jié)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品夜间视频香蕉 | 日日噜噜夜夜爽爽狠狠 | 人人色视频 | 中文字幕av一区二区三区 | 中文字幕影院 | 日韩福利片 | 精品一区二区电影 | 精品久久久久久久久久久 | 欧美大片一区 | 五月激情婷婷在线 | 亚洲欧美一区二区三区国产精品 | 午夜视频网 | 亚洲一区毛片 | 九九免费观看视频 | 中文字幕第一页在线 | 国产一区二区视频在线观看 | 中文字幕国产精品 | 欧美婷婷| 亚洲成人精品在线 | 国产91在线精品 | 国产在线a | 天天干b | 天天想天天干 | 成人欧美一区二区三区色青冈 | 91精品国产91久久综合桃花 | 黄视频网站免费观看 | 国产精品美女久久久久久免费 | 久久美女网 | 国产成人精品一区二区 | 人人亚洲| 午夜精品久久久久久久久久久久 | 国产精品久久久久久久久大全 | 亚洲国产一区二区三区 | 日韩精品一区二区三区 | 91在线免费观看 | 亚洲综合在线播放 | 国产精品久久久久久久久久了 | 九九九精品视频 | 免费超碰 | 国产高清精品一区 | 偷拍自拍在线观看 |