32路舵机控制机器人C51单片机C语言程序代码.docx

上传人:b****4 文档编号:7031671 上传时间:2023-05-11 格式:DOCX 页数:5 大小:15.22KB
下载 相关 举报
32路舵机控制机器人C51单片机C语言程序代码.docx_第1页
第1页 / 共5页
32路舵机控制机器人C51单片机C语言程序代码.docx_第2页
第2页 / 共5页
32路舵机控制机器人C51单片机C语言程序代码.docx_第3页
第3页 / 共5页
32路舵机控制机器人C51单片机C语言程序代码.docx_第4页
第4页 / 共5页
32路舵机控制机器人C51单片机C语言程序代码.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

32路舵机控制机器人C51单片机C语言程序代码.docx

《32路舵机控制机器人C51单片机C语言程序代码.docx》由会员分享,可在线阅读,更多相关《32路舵机控制机器人C51单片机C语言程序代码.docx(5页珍藏版)》请在冰点文库上搜索。

32路舵机控制机器人C51单片机C语言程序代码.docx

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;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2