资源简介

现在有关舵机控制的51程序很多,大多数经本人测试会出现抖舵、控制不灵敏的问题。不知道是不是操作不当还是怎么样。经过多次试验,我特编写了这个四路的串口舵机控制装置。想再多加几路的话我想不用我细说,大家看了就明白。里面有仿真图。这个里面有两个单片机源码。上位机可根据你的需要来编写控制代码,里面只有一些可用于避免传输误码而设置的验证重发部分代码。

资源截图

代码片段和文件信息

#include

#define uchar unsigned char

//***************用于存储输入信息的数组和数组的序号********
uchar Input[10] = {“!!!!!!!!!!“};
uchar Input_num = 0;    //输入数据的位号
bit   InputOver = 0;    //输入结束标志位


uchar angle[]




//****************串口初始化程序**********************
void com_init()
{
IE = 0x00; //停止所有中断
TMOD= 0x22; //设置定时器0和1为方式2,自动可重装8位定时器
SCON= 0x50; //设置串口控制寄存器,串口方式110位uart,波特率可调;允许接收
TH1 = TL1 = 0xfa; //为定时器1赋初值,晶振为22.1184MHz时波特率为9600bps
IE = 0x98; //开定时器1中断、串口中断和总中断;
TR1 = 1; //定时器1开始计时
}

//****************中断初始化程序**********************
void INT0_init()
{
TH0 = TL0 = 0xfa; //为定时器0赋初值,晶振为22.1184MHz时
ET0 = 1; //开定时器0中断;
TR0 = 1; //定时器0开始计时
}



//****************输入数据的处理函数********************
void INPUT_transfer()
{
 if(InputOver)
 {
  while(Input[Input_num + 1]!=)
 }
 Input_num = 0;
}





//****************串口服务函数**************************
void Com_In()    interrupt 4
{
RI = 0; //清零串口计数以连续输入
Input[Input_num] = SBUF ; //计算计数目标数
Input_num++ ; //序号积累
if(SBUF==‘!‘) //输入的有效结束标志为‘!’
{
InputOver = 1; //输入已结束
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-03-05 10:03  串口舵机控制器\
     文件       97300  2011-02-03 18:43  串口舵机控制器\Last Loaded 串口舵机控制器.DBK
     文件        1347  2011-02-09 17:31  串口舵机控制器\串口舵机控制器.c
     文件       97300  2011-02-05 17:45  串口舵机控制器\串口舵机控制器.DSN
     文件         174  2011-02-10 11:51  串口舵机控制器\串口舵机控制器.plg
     文件         742  2011-02-05 17:45  串口舵机控制器\串口舵机控制器.PWI
     文件       44928  2011-02-09 17:31  串口舵机控制器\串口舵机控制器.uvopt
     文件       13284  2011-02-03 18:58  串口舵机控制器\串口舵机控制器.uvproj
     文件       44928  2011-02-03 18:58  串口舵机控制器\串口舵机控制器_uvopt.bak
     文件           0  2011-02-03 18:44  串口舵机控制器\串口舵机控制器_uvproj.bak

评论

共有 条评论