32路舵机控制机器人C51单片机C语言程序代码Word格式文档下载.docx
《32路舵机控制机器人C51单片机C语言程序代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《32路舵机控制机器人C51单片机C语言程序代码Word格式文档下载.docx(5页珍藏版)》请在冰点文库上搜索。
![32路舵机控制机器人C51单片机C语言程序代码Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/fd2f9266-b833-406a-ba99-5f71b89290ab/fd2f9266-b833-406a-ba99-5f71b89290ab1.gif)
reg52.h>
#ifndef_DG_TYPE_
#define_DG_TYPE_
typedefunsignedcharuchar;
typedefunsignedintuint;
#endif
#defineCMD_LEN75//命令长度
#defineCMD_TAG1//提示符长度
voidUartInit();
voidUartSendChar(unsignedcharch);
voidUartSendStr(uchar*pStr);
voidUartCharPro(ucharch);
voidUartCmdPro();
ucharg_ucCmd[CMD_LEN+1]={0};
ucharg_ucLen=0;
//命令长度
ucharg_ucCur=1;
//光标位置
voidmain()
{
UartInit();
UartSendStr("
#1P1500T100\r\n"
);
//S1号舵机在时间100ms内移动到PWM1500的位置
//UartSendStr("
#1GC2\r\n"
//执行第一个动作组,循环执行2次
while
(1);
}
/************************************************************
*Name:
UartInit
*Func:
*串行通信初始化
*Para:
*ucharch:
发送的字符
*Return:
None
***********************************************************/
voidUartInit()
SCON=0x50;
//SCON:
serailmode18-bitUART
TMOD|=0x20;
//TMOD:
timer1mode28-bitreload
PCON|=0x80;
//SMOD="
1"
;
TH1=0xFA;
//Baud:
9600fosc="
11"
.0592MHz
TL1=0xFA;
IE|=0x90;
//使能串行中断
TR1=1;
//启动TIMER1
EA=1;
UartSendChar
*向串口发送一个字符
voidUartSendChar(unsignedcharch)
SBUF=ch;
while(TI==0);
TI=0;
UartSendStr
*向串口发送以0结尾的字符串
*uchar*pStr:
发送的字符指针
voidUartSendStr(uchar*pStr)
while(*pStr!
=0)
{
SBUF=*pStr++;
}
voidUartSrv()interrupt4
unsignedcharch;
ch=SBUF;
if(RI)
RI=0;
//UartSendChar(ch);
//P0=~ch;
UartCharPro(ch);
UartCharPro
*字符处理过程函数。
根据输入的普通字符或控制字符判断回显。
判断的字符
voidUartCharPro(ucharch)
P0=~ch;
switch(ch)
case'
\b'
:
//退格键
if(g_ucCur>
CMD_TAG){
UartSendChar('
'
if(g_ucLen){
g_ucLen--;
g_ucCur--;
break;
\r'
//回车键
\n'
g_ucCmd[g_ucLen]=0;
UartSendStr(g_ucCmd);
>
'
g_ucLen=0;
g_ucCur=1;
default:
//其它字符
UartSendChar(ch);
g_ucCur++;
if(g_ucLen<
CMD_LEN){
g_ucCmd[g_ucLen++]=ch;
else{