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

QQ登錄

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

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

msp430f1循跡小車(chē) 很簡(jiǎn)單的一個(gè)設(shè)計(jì) 函數(shù)打包的源碼 包括調(diào)試程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:319045 發(fā)表于 2018-7-15 15:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
函數(shù)庫(kù)是msp430f1..  對(duì)應(yīng)芯片使用。

單片機(jī)源程序如下:
  1. #include "msp430x14x.h"
  2. void turnright1(void);
  3. void turnleft1(void);
  4. void round(void);
  5. void line(void);
  6. void main(void)
  7. {
  8.   WDTCTL = WDTPW + WDTHOLD;
  9.   int i;
  10. P6DIR |= BIT2;P6OUT &= ~BIT2;   //打開(kāi)電平轉(zhuǎn)換
  11.   P2DIR |=BIT3+BIT0;P2OUT &= ~BIT3;
  12.   P2OUT |=BIT0;
  13.   P3DIR |=0X11;
  14.   P3OUT |=0X10;
  15.   P3OUT &=~ BIT0;
  16.   P4DIR &=~(BIT0+BIT1+BIT2+BIT3+BIT4);
  17.   P5DIR |=0XFF;
  18.   P5OUT =0X51;
  19.   P5OUT &=~ BIT1;
  20.   for(i=0;i<2000;i++);
  21.   CCR0=512-1;
  22.   CCR1=462;
  23.   CCR2=50;
  24.   CCTL0=CCIE;
  25.   CCTL1=CCIE;
  26.   CCTL2=CCIE;
  27.   _EINT();
  28.   TACTL|=TASSEL_1+MC_3;
  29.   while(1)
  30.   {
  31.     switch((P4IN & 0X1f))
  32.     {  
  33.     case 7: turnleft1();
  34.             break;
  35.     case 15: turnleft1();
  36.             break;
  37.       
  38.     case 23:turnleft1();
  39.            break;
  40.     case 28: turnright1();
  41.            break;
  42.     case 29:turnright1();
  43.            break;
  44.     case 30:turnright1();
  45.            break;
  46.     case 19:  line();
  47.              break;
  48.     case 25:  line();
  49.              break;
  50.     case 27:  line();
  51.              break;
  52.    
  53.     case 31: round();
  54.             break;
  55.      }
  56.         
  57.    
  58.    }
  59. }
  60. #pragma vector=TIMERA1_VECTOR
  61. __interrupt void timer_A1(void)
  62. {   //_EINT();
  63.   switch(TAIV)
  64.   {case 2:  
  65.           P5OUT ^=0X01;         
  66.           break;
  67.   case 4:
  68.       P5OUT ^=0X02;  
  69.           break;
  70.    }
  71. }
  72. #pragma vector=TIMERA0_VECTOR
  73. __interrupt void timer_A0(void)
  74. { P5OUT |=BIT0;
  75.   P5OUT &=~ BIT1;
  76. }
  77. void turnright1(void)
  78. { P5OUT &=~ (BIT4+BIT5+BIT7);
  79.   P5OUT |=BIT6;
  80.   //CCR1=470;
  81.   //CCR2=5;
  82. }
  83. /*void turnright2(void)
  84. {
  85.   CCR1=470;
  86.   CCR2=0;
  87. }*/
  88. void turnleft1(void)
  89. { P5OUT &=~ (BIT5+BIT6+BIT7);
  90.   P5OUT |=BIT4;;
  91.   
  92.   //CCR1=500;
  93.   //CCR2=45;
  94. }
  95. void round(void)
  96. { P5OUT &=~ (BIT5+BIT6+BIT7);
  97.   P5OUT |=BIT4;
  98.   //CCR1=470;
  99.   //CCR2=5;
  100. }
  101. void line(void)
  102. { P5OUT &=~ (BIT5+BIT7);
  103.   P5OUT |= BIT4+BIT6;
  104. }

復(fù)制代碼

所有資料51hei提供下載:
尋跡小車(chē).zip (146.01 KB, 下載次數(shù): 59)


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

使用道具 舉報(bào)

沙發(fā)
ID:385001 發(fā)表于 2018-8-17 08:54 | 只看該作者
感謝樓主分享。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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