Transcript Document

5.2 玩具机器人软件平台及程序调试
讲授人:彭高丰
一、所需软件与安装
• Keil uVision3 IDE 集成开发环境
• libusb_0.1.12.1 驱动程序、下载
软件progisp.exe
• 串口调试软件
注意:需把玩具机器人所有相关头文件复制到
C:\Keil\C51\INC目录下
Keil uVision3 IDE 集成开发环境
• 该软件是德国 KEIL 公司出品的 51 系列单片机 C语
言集成开发系统;
• www.keil.com上获得该软件的安装包;
• 用于编程和形成.HEX机器码。
libusb_0.1.12.1 驱动程序、下载软件
progisp.exe
• Windows 驱动程序,用于驱动USB下载程序。
• 下载软件progisp.exe,用于擦写程序
串口调试软件
• 此软件是用来显示单片机与计算机的交互信息的。在硬件
上,你的计算机至少要有串口或 USB 接口来与单片机教
学板的串口连接;
• 根据硬件连接选择具体的com ;
• 波特率选择9600bit/s ;
• 校验位NONE、数据位8位、停止位1位;
• 找到硬件“小太阳”变红色。
例1 串口调试例程
#include<uart.h>
int main(void)
{
uart_Init(); //串口初始化
printf("Hello,this is a message from your Robot\n");
while(1);
}
串口调试窗口
打开串口调试终端,选择串口相应“COM”
后点击“打开串口”,在“接收区”内你看
到了什么?
什么也没有!为什么呢?
因为从你把执行文件成功下载到单片机的那
个时刻开始,程序就开始运行了:单片机已
经向 PC机发送了信息。
你错过了接收。怎么办呢?
在机器人教学板上给你提供了“Reset”按钮,
它可以让下载到单片机内的程序重新运行一
次。按下“Reset”按钮,是不是出现以下示
画面呢?
二、机器人伺服电机控制信号
电机转速为零的控制信号时序图
二、机器人伺服电机控制信号
电机顺时针全速的控制信号时序图
二、机器人伺服电机控制信号
电机逆时针全速的控制信号时序图
例2 两轮全速运转例程
#include<BoeBot.h>
#include<uart.h>
int main(void)
{
uart_Init();
printf("The LEDs connected to P1_0 and P1_1 are blinking!\n ");
while(1)
{
P1_1=1;
delay_nus(1300);
P1_0=1;
P1_1=0;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
}
思考一下:
例2 中用到了以 while(1)死循环,而在实际的机器人
控制过程中,经常要求机器人运动一段给定的距离或
者一段固定的时间。怎么办?循环2.17秒呢?
循环2.17秒
for(Counter=1;Counter<=100;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
delay_nms(20);
}
动手做一做:
使与P1_1 连接的电机逆时针旋转 2.17 秒,
然后与 P1_0 连接的电机旋转 4.34秒。
参考程序
include<BoeBot.h>
#include<uart.h>
int main(void)
{
int Counter;
uart_Init();
printf("Program Running!\n");
for(Counter=1;Counter<=100;Counter++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
delay_nms(20);
}
for(Counter=1;Counter<=200;Counter++)
{
P1_0=1;
delay_nus(1700);
P1_0=0;
delay_nms(20);
}
while(1);
}