注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

hellorobot

全民机器人,零起步实现你童年的梦想

 
 
 

日志

 
 

智能篇(2)  

2011-12-18 17:53:03|  分类: 51单片机与机器人 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        串口通讯是单片机与其他单片机之间常用的一种通讯方式,实现起来很简单。在硬件上,由于单片机的串口是TTL电平,所以单片机与单片机之间只需将一个的RXD,TXD两引脚与另一个的RXD,TXD交叉相连,GND共连,这样硬件连接就完成了。软件上,写串口通讯的程序对于大多数没有接触过单片机的爱好者可能困难了些,对单片机感兴趣的爱好者可以自行去网上搜索一下关于单片机入门的教程来学习,在六足入门教程里只需学会修改和下载程序就行。下面来用STC的一款增强型51来介绍一下串口通讯的程序和简单使用。

 

//#include <STC12C5201AD.h>
#include <STC12C5A60S2.h>
//#include <STC89C51.h>
//#include <STC12C2052AD.h>
#define uint unsigned int
#define uchar unsigned char
#include <string.h>   

加载头文件,基本函数,定义变量

 


void UART_init (void)
{
EA = 1;
ES = 1;
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xfe; //串口1选择定时器1为波特率发生器
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFA; //设定定时初值
TH1 = 0xFA; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}


 

设置串口通讯的波特率,这里设置的是115200,11.0592晶振

 


void UART_R (void) interrupt 4 using 1
{
unsigned char UART_data;
RI = 0;
UART_data = SBUF;
}



 

设置串口中断函数

 

 

void UART_T (unsigned char UART_data)
{
SBUF = UART_data;
while(TI == 0);
TI = 0;
}


 

串口发送字符函数

 

 

void UART_TC (unsigned char *str)
{
while(*str != '\0')
{
UART_T(*str);
*str++;
}
*str = 0;

}


 

串口发送字符串函数

 

void main (void)
{
UART_init();
while(1)
{
UART_TC(***);
}
}


 

主函数,***表示需要发送的字符串,比如:"#1P1000#2P2000T200\r\n"

 

 

把这几段代码复制编译器中,便构成了一个串口发送程序。



 我们也可以利用STC的ISP下载软件上的串口助手来调试舵机控制板。


智能篇(2) - 懒猫侠 - hellorobot
 

按步骤:

1,点击串口助手
2,选择com口和波特率
3,发送区与接受区都选中字符格式显示
4,点击打开串口
5,这样就可以在发送区发送舵机控制板能够识别的指令进行动作测试了


点击回目录
  评论这张
 
阅读(4176)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017