?? motormain.c
字號:
#include "at89x52.h"
#include "Motor\Motor.h"
#include "series\series.h"
#include "LedDigital\LedDigital.h"
#include "Sound\Sound.h"
#include "MotorMain.h"
//舵機度數(shù)控制 0 45 90 135 180
//uint const code Motion[5] = {0xfc48,0xf8b6,0xf524,0xf192,0xee00};
//舵機位選指針
uchar MotorIndex=0x00;
//接收到的字節(jié)數(shù)(0-2)
uchar RCharCount=0x00;
/**************************************************************************
名稱:void Timer0Init(void)
功能:定時/計數(shù)器0初始化程序
計時2。5ms掃描8個舵機
**************************************************************************/
void Timer0Init(void)
{
TH0=0x80;
TL0=0x00;
TMOD|=0x01;
TR0=1;
}
/**************************************************************************
名稱:void Timer1Init(void)
功能:定時/計數(shù)器1初始化程序
控制正頻寬
**************************************************************************/
void Timer1Init(void)
{
TH1=0xe0;
TL1=0x00;
TMOD|=0x10;
TR1=1;
}
/*************************************************************************
名稱:void Timer2Init(void)
功能:定時/計數(shù)器2初始化程序
產(chǎn)生波特率
**************************************************************************/
void Timer2Init(void)
{
RCAP2H=0xff;
RCAP2L=0xb8;
RCLK=1;
TCLK=1;
TR2=1;
}
/***************************************************************************
名稱:void CommInit(void)
功能:串口初始化程序
***************************************************************************/
void CommInit(void)
{
SM0=0;
SM1=1;
SM2=0;
REN=1;
}
/***************************************************************************
名稱:void SystemInit(void)
功能:系統(tǒng)初始化及開中斷
***************************************************************************/
void SystemInit(void)
{
Timer0Init();
Timer1Init();
Timer2Init();
CommInit();
EA=1;
ET2=1;
ES=1;
ET1=1;
ET0=1;
}
/**************************************************************************
名稱:void Timer0Server(void)interrupt 1
功能:確定正頻寬
**************************************************************************/
void Timer0Server(void)interrupt 1
{
P2=0x00;
}
/**************************************************************************
名稱:void Timer1Server(void)interrupt 3
功能:產(chǎn)生正頻寬
**************************************************************************/
void Timer1Server(void)interrupt 3
{
TR1=0;
TH1=0xee;
TL1=0x00;
MotorIndex%=8; //舵機位選
P2=0x01<<MotorIndex;
TL0=MotorAngle[MotorIndex];
TH0=MotorAngle[MotorIndex]>>8; //舵機角度控制數(shù)據(jù)
MotorIndex++;
LedDigitalDisplay(); //在數(shù)碼管上顯示舵機控制信息
TR1=1;
}
/***************************************************************************
名稱:void CommInterServer(void)interrupt 4
功能:串口中斷服務(wù)程序
***************************************************************************/
void CommInterServer(void)interrupt 4
{
if(RI==1)
{
MotorCtrl[RCharCount]=CommReceive();
RCharCount++;
if(RCharCount==0x04)
{
RCharCount=0x00;
SetMotorCtrl(); //設(shè)置舵機控制信息
LedDigitalTransport(MotorCtrlInfoToL()); //設(shè)置舵機控制信息的顯示內(nèi)容
}
RI=0;
}
}
/******************************************************************************
* 名稱: main ()
* 功能: 主函數(shù),整個程序的入口
******************************************************************************/
void main()
{
SystemInit();
while(1)
{
;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -