1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

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

QQ登錄

只需一步,快速開始

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

MSP430單片機(jī)太陽(yáng)跟蹤源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
基于msp430的太陽(yáng)跟蹤程序。下位機(jī)。

單片機(jī)源程序如下:
  1. //向東轉(zhuǎn)動(dòng),逆時(shí)針轉(zhuǎn)動(dòng),方位角減小
  2. //向西轉(zhuǎn)動(dòng),順時(shí)針轉(zhuǎn)動(dòng),方位角增大
  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作中斷服務(wù)函數(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;  //關(guān)閉定時(shí)器
  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;  //關(guān)閉定時(shí)器
  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;  //關(guān)閉定時(shí)器
  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. }
復(fù)制代碼

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



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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表