一年前做的了
电机带小车的程序
单片机源程序如下:
- /*
- * main.c
- *
- * Created on: Oct 22, 2016
- * Author: tongxinyun
- * DI P1.0 DO P1.3 CS P1.4 CLK P1.5
- */
- #include "MSP430G2553.h"
- #include "pstwo.h"
- #include "usart.h"
- #include "moto.h"
- #include"servo.h"
- void Time0_A0_init();
- void Run(unsigned char key);
- unsigned char key=0;
- unsigned char server1=50,server2=50;
- void main(void) {
- WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
- BCSCTL1 = CALBC1_16MHZ; //cpu频率16MHZ
- DCOCTL = CALDCO_16MHZ;//cpu频率16MHZ
- init_pstwo();
- serve_init();
- MotorGPIO_Init();
- Time0_A0_init();
- __enable_interrupt();
- while(1)
- {
- Run(key);
- }
- }
- void Run(unsigned char key)
- {
- switch(key){
- case 1: break;
- case 2: break;
- case 3: break;//START key
- case 4:break;
- case 5: forward(); break;//Left up_key
- case 6: Right();break;//Left Right_key
- case 7: back();break;//Left down_key
- case 8:Left(); break;//left Left_key
- case 11: server1++; if(server1>=99) server1--; serve1_pwm=deg[server1];key=0; break;//Left_1 key
- case 9: server1--; if(server1==10) server1++; serve1_pwm=deg[server1]; ;key=0; break;//Left_2 key
- case 12:server2++; if(server2>=99) server2--; serve2_pwm=deg[server2]; ;key=0; break;//Right 1 key
- case 10 :server2--; if(server2==20) server2++; serve2_pwm=deg[server2]; ;key=0; break;//Right_2 key
- case 13: break;//三角键
- case 14: break;//x键
- case 15 : break;//框键
- case 16 : break;//o键
- default:stop();
- break;
- }
- }
- void Time0_A0_init(){
- TA0CCTL0=CCIE;
- TA0CCR0=16000000/400;
- TA0CTL= TASSEL_2+MC_1+ID_3+TACLR+TAIE ;//MC_1+TASSEL_2+TACLR TASSEL_2+MC_1+ID_3+TACLR+TAIE
- _EINT();
- }
- #pragma vector=TIMER0_A0_VECTOR
- __interrupt void Time0_A0(){
- TA0CTL&=~TAIFG;
- ps2_DataKey();
- key=ps2_getKey();
- }
复制代码
所有资料51hei提供下载:
patwo.rar
(53.47 KB, 下载次数: 31)
|