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

上传人:一*** 文档编号:2475473 上传时间:2020-04-11 格式:DOC 页数:10 大小:15.32KB
返回 下载 相关 举报
32路舵机控制机器人C51单片机C语言知识程序代码.doc_第1页
第1页 / 共10页
32路舵机控制机器人C51单片机C语言知识程序代码.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《32路舵机控制机器人C51单片机C语言知识程序代码.doc》由会员分享,可在线阅读,更多相关《32路舵机控制机器人C51单片机C语言知识程序代码.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、/32路舵机控制机器人C51单片机C语言程序代码说明: 32路舵机控制板,最多可以控制32个舵机,可以对仿生,人形等机器人进行控制,轻松上手。/* 本程序在STC89C51RC单片机中进行过测试,完全正常(晶振11.0592M)*用户可以根据晶振不同自行修改,建议用户先连接PC,通过PC的串口调试* 助手来验证程序是否有效* P30: RXD* P31: TXD*/#include #ifndef _DG_TYPE_#define _DG_TYPE_ typedef unsigned char uchar; typedef unsigned int uint;#endif#define CMD

2、_LEN 75 / 命令长度#define CMD_TAG 1 / 提示符长度void UartInit();void UartSendChar(unsigned char ch);void UartSendStr(uchar *pStr);void UartCharPro(uchar ch);void UartCmdPro();uchar g_ucCmdCMD_LEN + 1 = 0;uchar g_ucLen = 0; / 命令长度uchar g_ucCur = 1; / 光标位置void main() UartInit(); UartSendStr(#1P1500T100rn); / S

3、1号舵机在时间100ms内移动到PWM1500的位置 / UartSendStr(#1GC2rn); / 执行第一个动作组,循环执行2次 while(1);/* Name: UartInit* Func:* 串行通信初始化* Para:* uchar ch: 发送的字符* Return: None*/void UartInit() SCON = 0x50; / SCON: serail mode 1 8-bit UART TMOD |= 0x20; / TMOD: timer 1 mode 2 8-bit reload PCON |= 0x80; / SMOD=1; TH1 = 0xFA; /

4、 Baud:9600 fosc=11.0592MHz TL1 = 0xFA; IE |= 0x90; / 使能串行中断 TR1 = 1; / 启动TIMER1 EA = 1;/* Name: UartSendChar* Func:* 向串口发送一个字符* Para:* uchar ch: 发送的字符* Return: None*/void UartSendChar(unsigned char ch) SBUF = ch; while(TI=0); TI=0;/* Name: UartSendStr* Func:* 向串口发送以0结尾的字符串* Para:* uchar *pStr: 发送的字符

5、指针* Return: None*/void UartSendStr(uchar *pStr) while(*pStr != 0) SBUF = *pStr+; while(TI=0); TI=0; void UartSrv() interrupt 4unsigned char ch;ch = SBUF;if(RI) RI = 0; /UartSendChar(ch); /P0 = ch; UartCharPro(ch); /* Name: UartCharPro* Func:* 字符处理过程函数。根据输入的普通字符或控制字符判断回显。* Para:* uchar ch: 判断的字符* Ret

6、urn: None*/void UartCharPro(uchar ch) 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_ucCmdg_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 CMD_LEN) g_ucCmdg_ucLen+ = ch; else g_ucCmdg_ucLen = 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁