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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430單片機太陽跟蹤源程序

[復制鏈接]
跳轉到指定樓層
樓主
基于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作中斷服務函數
  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, 下載次數: 7)



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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合五月婷 | 永久av | 欧美成人一区二区三区片免费 | 日韩欧美国产电影 | 国产精品久久久久久久久久尿 | 中文字幕精品一区二区三区精品 | 国产成人精品久久二区二区91 | 成人一区二 | 精品一区二区视频 | 午夜免费网站 | 亚洲精品成人网 | 久久久久国产一级毛片高清网站 | 国产精品欧美一区二区 | 日日骚网 | 91一区二区 | 久久一本 | 九九热在线视频 | 精品国产视频在线观看 | 久久精品播放 | 超碰人人爱| 欧美在线天堂 | 日批免费在线观看 | 中文字幕第100页 | 自拍偷拍中文字幕 | 国产精品久久久久久 | 91视视频在线观看入口直接观看 | 亚洲一区二区三区久久久 | 亚洲久在线 | 羞羞羞视频 | 久久久九九 | 成年网站在线观看 | 久久久久久国模大尺度人体 | 天天干狠狠操 | 久久精品日 | 成人午夜免费视频 | 日韩在线国产 | 亚洲性视频网站 | 国产精品毛片久久久久久久 | 九九亚洲 | 亚洲视频在线看 | 精品三级在线观看 |