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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430單片機太陽跟蹤源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:337189 發(fā)表于 2018-10-6 10:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于msp430的太陽跟蹤程序。下位機。

單片機源程序如下:
  1. //向東轉動,逆時針轉動,方位角減小
  2. //向西轉動,順時針轉動,方位角增大
  3. #include<msp430x14x.h>
  4. #include "Manual.c"
  5. #include "Flatwise.c"
  6. #include "StopAll.C"
  7. #include "Initial.c"
  8. #include "Zero.c"
  9. #include "ReadFile.c"
  10. #include "Variable.c"
  11. #include "Variable.h"
  12. #include "Trace.c"
  13. #include "Condition.c"
  14. #include "SetLocation.c"
  15. #include "Calibration.c"
  16. #include "keypad.c"
  17. #include "Comunication.c"
  18. #include <stdlib.h>
  19. #include "control.c"



  20. int m = 0;
  21. unsigned int ma = 0;
  22. unsigned int mb = 0;
  23. int m1 = 0;
  24. void main( void )
  25. {
  26.   // Stop watchdog timer to prevent time out reset
  27.   WDTCTL = WDTPW + WDTHOLD;
  28.   InitHFXT();   
  29.   InitPort();

  30.   _BIS_SR(GIE);
  31.   ReadLoc();
  32.   workdata[2] = 0x07;
  33.   SendLocation(&Longitude);
  34.   SendMessage();
  35.   
  36.   workdata[2] = 0x17;
  37.   SendLocation(&Latitude);
  38.   SendMessage();

  39.   //SunLoc();
  40.   revPosA = (unsigned int)(fSAZmin * MAZ);//A表示方位 B表示俯仰
  41.   revPosB = (unsigned int)(fELmin * MEL);
  42.   SN = 'S';

  43.   Zero();  
  44.   
  45.   Calibration();
  46.   //delay_ms(5000);

  47.   Trace();
  48. }


  49. #pragma vector=PORT2_VECTOR  
  50. __interrupt void PORT2_INT (void)//將PORT2作中斷服務函數(shù)
  51. {
  52.   ch = P2IFG;
  53.   if(((ch & BIT_LIMITEA) == BIT_LIMITEA) && ((ch & P2IE) == BIT_LIMITEA))
  54.     LimitEA = 1;
  55.   if(((ch & BIT_LIMITWA) == BIT_LIMITWA) && ((ch & P2IE) == BIT_LIMITWA))
  56.     LimitWA = 1;
  57.   if(((ch & BIT_LIMITUPB) == BIT_LIMITUPB) && ((ch & P2IE) == BIT_LIMITUPB))
  58.     LimitUPB = 1;
  59.   if(((ch & BIT_LIMITDNB) == BIT_LIMITDNB) && ((ch & P2IE) == BIT_LIMITDNB))
  60.     LimitDNB = 1;

  61.   if(((ch & BIT_COUNTA) == BIT_COUNTA)&&((ch & P2IE) == BIT_COUNTA))
  62.   {
  63.     if((P2IES & BIT_COUNTA)==BIT_COUNTA)
  64.     {
  65.       m = 1;
  66.       ma = 0;
  67.       TBR = 0;
  68.       TBCTL   = TBSSEL_2 + TBCLR + ID_3;
  69.       TBCCTL0 = CCIE;
  70.       TBCCR0  = 1500;  
  71.       TBCTL  |= MC0;;
  72.       P2IES &= ~BIT_COUNTA;
  73.     }
  74.     else
  75.     {  
  76.       TBCTL =  0x00;  //關閉定時器
  77.       TBCCTL0 =  0x00;
  78.       TBR = 0;
  79.       TBCTL   = TBSSEL_2 + TBCLR + ID_3;
  80.       TBCCTL0 = CCIE;
  81.       TBCCR0  = 1500;  
  82.       TBCTL  |= MC0;
  83.       P2IES |= BIT_COUNTA;
  84.     }
  85.   }
  86.   if(((ch & BIT_COUNTB) == BIT_COUNTB) && ((ch & P2IE) == BIT_COUNTB))
  87.   {
  88.     if((P2IES & BIT_COUNTB)==BIT_COUNTB)
  89.     {  
  90.       m = 2;
  91.       mb = 0;
  92.       TBR = 0;
  93.       TBCTL   = TBSSEL_2 + TBCLR + ID_3;
  94.       TBCCTL0 = CCIE;
  95.       TBCCR0  = 1500;  
  96.       TBCTL  |= MC0;;
  97.       P2IES &= ~BIT_COUNTB;
  98.     }
  99.     else
  100.     {  
  101.       TBCTL =  0x00;  //關閉定時器
  102.       TBCCTL0 =  0x00;
  103.       TBR = 0;
  104.       TBCTL   = TBSSEL_2 + TBCLR + ID_3;
  105.       TBCCTL0 = CCIE;
  106.       TBCCR0  = 1500;  
  107.       TBCTL  |= MC0;
  108.       P2IES |= BIT_COUNTB;
  109.     }
  110.   }
  111.   P2IFG = 0x00;
  112. }
  113. #pragma vector=TIMERB0_VECTOR
  114. __interrupt void TIMERB0 (void)
  115. {
  116.   if(((P2IES & BIT_COUNTA)==0x00)&& (m == 1))
  117.     ma = 1;
  118.   if(((P2IES & BIT_COUNTA)== BIT_COUNTA)&& (ma==1))
  119.   {
  120.     ma = 0;
  121.     countA1+=1;
  122.   }
  123.   
  124.   if(((P2IES & BIT_COUNTB)==0x00)&& (m == 2))
  125.     mb = 1;
  126.   if(((P2IES & BIT_COUNTB)== BIT_COUNTB)&& (mb==1))
  127.   {
  128.     mb = 0;
  129.     countB1+=1;
  130.   }
  131.   m = 0;
  132.   TBCTL =  0x00;  //關閉定時器
  133.   TBCCTL0 =  0x00;
  134. }
  135. #pragma vector=TIMERA0_VECTOR
  136. __interrupt void TIMERA0 (void)
  137. {
  138.   
  139. }
  140. #pragma vector = UART0RX_VECTOR
  141. __interrupt void UART0_RXISR(void)
  142. {//
  143.   char ch = RXBUF0;
  144.   data[index] = ch;
  145.   if(index == 212)
  146.     communication = 1;
  147.   index++;
  148. }
復制代碼

所有資料51hei提供下載:
下位機控制430.zip (133.03 KB, 下載次數(shù): 7)



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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-10-6 23:56 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区视频在线 | 中文字幕一区二区在线观看 | 午夜性色a√在线视频观看9 | 国产日韩一区二区三区 | 欧美在线天堂 | 91精品一区二区三区久久久久久 | av天天澡天天爽天天av | 色婷婷av一区二区三区软件 | 夜久久 | 精品久久影院 | 久久精品av麻豆的观看方式 | 美女黄18岁以下禁止观看 | 亚洲综合无码一区二区 | 91在线中文字幕 | 亚洲国产欧美91 | 欧美一级大片免费看 | 欧美成视频 | 四虎成人精品永久免费av九九 | 亚洲一区免费视频 | 国产精品一二三区在线观看 | 国产亚洲欧美在线视频 | 伊人成人免费视频 | 亚洲精品免费视频 | 日本久久综合网 | 欧美精品日韩精品国产精品 | 久久国产精品99久久久久久丝袜 | 国产一区二区在线视频 | 亚洲精品久久 | 日韩在线观看中文字幕 | 97精品久久 | 中文字幕在线视频一区二区三区 | 精品国产乱码久久久久久中文 | 国产精品久久国产愉拍 | 香蕉国产在线视频 | 午夜丰满寂寞少妇精品 | 日本国产欧美 | 91欧美| av黄色片在线观看 | 欧美日韩久久精品 | www.47久久青青 | 91视频一区二区三区 |