找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2968|回复: 1
收起左侧

msp430f1循迹小车 很简单的一个设计 函数打包的源码 包括调试程序

[复制链接]
ID:319045 发表于 2018-7-15 15:44 | 显示全部楼层 |阅读模式
函数库是msp430f1..  对应芯片使用。

单片机源程序如下:
  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;   //打开电平转换
  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. }

复制代码

所有资料51hei提供下载:
寻迹小车.zip (146.01 KB, 下载次数: 59)
回复

使用道具 举报

ID:385001 发表于 2018-8-17 08:54 | 显示全部楼层
感谢楼主分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表