32路舵机控制机器人C51单片机C语言程序代码.docx
- 文档编号:11718587
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:5
- 大小:15.22KB
32路舵机控制机器人C51单片机C语言程序代码.docx
《32路舵机控制机器人C51单片机C语言程序代码.docx》由会员分享,可在线阅读,更多相关《32路舵机控制机器人C51单片机C语言程序代码.docx(5页珍藏版)》请在冰豆网上搜索。
32路舵机控制机器人C51单片机C语言程序代码
32路舵机控制机器人C51单片机C语言程序代码
说明:
32路舵机控制板,最多可以控制32个舵机,可以对仿生,人形等机器人进行控制,轻松上手。
/*********************************************************************
*本程序在STC89C51RC单片机中进行过测试,完全正常(晶振11.0592M)
*用户可以根据晶振不同自行修改,建议用户先连接PC,通过PC的串口调试
*助手来验证程序是否有效
*P30:
RXD
*P31:
TXD
**********************************************************************/
#include
#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;
}
/************************************************************
*Name:
UartSendChar
*Func:
*向串口发送一个字符
*Para:
*ucharch:
发送的字符
*Return:
None
***********************************************************/
voidUartSendChar(unsignedcharch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
/************************************************************
*Name:
UartSendStr
*Func:
*向串口发送以0结尾的字符串
*Para:
*uchar*pStr:
发送的字符指针
*Return:
None
***********************************************************/
voidUartSendStr(uchar*pStr)
{
while(*pStr!
=0)
{
SBUF=*pStr++;
while(TI==0);
TI=0;
}
}
voidUartSrv()interrupt4
{
unsignedcharch;
ch=SBUF;
if(RI)
{
RI=0;
//UartSendChar(ch);
//P0=~ch;
UartCharPro(ch);
}
}
/************************************************************
*Name:
UartCharPro
*Func:
*字符处理过程函数。
根据输入的普通字符或控制字符判断回显。
*Para:
*ucharch:
判断的字符
*Return:
None
***********************************************************/
voidUartCharPro(ucharch)
{
P0=~ch;
switch(ch)
{
case'\b':
//退格键
if(g_ucCur>CMD_TAG){
UartSendChar('\b');
UartSendChar('');
UartSendChar('\b');
if(g_ucLen){
g_ucLen--;
}
g_ucCur--;
}
break;
case'\r':
//回车键
UartSendChar('\r');
UartSendChar('\n');
g_ucCmd[g_ucLen]=0;
UartSendStr(g_ucCmd);
UartSendChar('\r');
UartSendChar('\n');
UartSendChar('>');
g_ucLen=0;
g_ucCur=1;
break;
default:
//其它字符
UartSendChar(ch);
g_ucCur++;
if(g_ucLen g_ucCmd[g_ucLen++]=ch; } else{ g_ucCmd[g_ucLen]=0; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 32 舵机 控制 机器人 C51 单片机 语言 程序代码
![提示](https://static.bdocx.com/images/bang_tan.gif)