六足仿生机器人实验室开放项目结项报告-基于STC12C5A60S2单片机的六足机器人_第1页
六足仿生机器人实验室开放项目结项报告-基于STC12C5A60S2单片机的六足机器人_第2页
六足仿生机器人实验室开放项目结项报告-基于STC12C5A60S2单片机的六足机器人_第3页
六足仿生机器人实验室开放项目结项报告-基于STC12C5A60S2单片机的六足机器人_第4页
六足仿生机器人实验室开放项目结项报告-基于STC12C5A60S2单片机的六足机器人_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

淮北师范大学实验室开放项目总结报告基于STC12C5A60S2单片机的六足机器人学院:物理与电子信息学院负责人:韩润小组成员:史浩东史良东陆家双张莹莹康强强指导老师:方振国

一、项目重述1.1项目名称:智能六足机器人1.2项目背景及意义:背景:在社会迅速发展的今天,单片机的的运用已经渗透到我们生活的每个角落,也似乎很难找到哪个领域没有单片机的足迹。智能仪表、医疗器械,导弹的导航装置,智能监控、通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,汽车的安全保障系统,动控制领域的机器人,数码像机、电视机、全自动洗衣机的控制,电话机以及程控玩具、电子宠物等等,这些都离不开单片机。意义:单片机的学习、开发与应用将对于现代社会的发展,经济的繁荣,和提高满足人类日益增长的物质文化需求有着至关重要的作用。也成就了一批又一智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。学习单片机是社会发展的必然需求,也是我们现代高级技工所必须要掌握的技能。1.3项目内容:以51单片机为控制器的核心,利用单片机内部中断产生PWM波控制舵机。利用开环函数组成的动作组使六足做仿生动作,制作出了动作灵活、价格低廉以及模块化结构的六足机器人。该机器人能够严格按三角步态进行行走,实现诸如直线、转弯、躲避障碍物和追踪物体等行走功能。

二、方案简介本项目可细分为控制部分、机械部分、恒流源部分、超声波检测部分。控制部分采用STC12C5A60S2单片机为核心处理器。通过PWM波使舵机转动,机械部分采取合理的机械构造,实现机器人在行走的情况下的平稳。恒流源部分采取LM7805稳压芯片为单片机和舵机供电,由于舵机在运转的过程中会有较大的电流波动。因此采用恒流电路进行恒流。超声波壁障采用超声波遇故障反射的原理。实现对物体识别和规避。

三、设计过程3.1STC89C51功能介绍:89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间为外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器读取外部ROM数据。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,单片机读取内部程序存储器。(扩展有外部ROM时读取完内部ROM后自动读取外部ROM)。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2开关电路及恒流源部分:开关三极管电路利用三极管工作于截止区和饱和区,相当于电路的切断和导通的特性,被广泛应用于各种开关电路中,如常用的开关电源电路、驱动电路、高频振荡电路、模数转换电路、脉冲电路及输出电路等。本次设计用两个NPN型小功率三极管s8050构成三极管开关电路,能够有效地隔绝恒流源电路对单片机芯片的损害。LM317是应用最为广泛的电源集成电路之一,它不仅具有固定式三端稳压电路的最简单形式,又具备输出电压可调的特点。此外,还具有调压范围宽、稳压性能好、噪声低、纹波抑制比高等优点。lm317是可调节3端正电压稳压器,在输出电压范围1.2伏到37伏时能够提供超过1.5安的电流,此稳压器非常易于使用。构成的电路如下:3.3舵机行走步态设计(1)三角步态。三角步态也称交替三角步态,是“六足纲”昆虫最常使用的一种步态,也被誉为最快速有效的静态稳定步态。大部分六足机器人都是从仿生学的角度出发使用这一步态。昆虫三角步态的移动模式较简单,非常适合步行架构的机器人的直线行走,行进速度也比较快。本论文也采用这种步态实现机器人的直线行走,该步态的具体方式将会在后文中具体给出。(2)跟导步态。通常,三角步态的研究通常都局限在平坦地面,并且假设对于不平地面也是合理的。然而随着1974年Sun首先提出了跟导步态的概念,并于1983年由Tsai成功地把这种步态应用于俄亥俄州立大学的电动六足机器人中,这些为跟导步态的研究和发展,为提高机器人在不平地面上的行走速度奠定了基础。对于六足机器人来说,跟导步态的重点是选择前两足下一步的落点,而一对中足和一对后足的下一步落点由当前前足和中足的立足点决定。跟导步态每次只需要选择前两足的立足点,因而具有控制简单,稳定性较好,越沟能力强等特点,所以特别适合多足步行机在不平地面行走时采用。(3)交替步态。与跟导步态类似,为了充分发挥六足机器人相对于轮式机器人在复杂地形的行走优势,交替步态成为新兴的六足机器人研究的重点。这种单腿交替行走步态,也被称为五角步态。在交替步态中,各腿的运动可分为抬升和前进两个部分。当某腿的相邻各腿均已触地时,该腿开始运动,并给其相邻各腿发出信号。同样,在该腿触地时,也会给相邻各腿发出触地信号。这样,一旦整个六足系统进入行走状态,这种顺次的步态运行状态就可以一直维持下去。由于各腿等待其相邻腿触地的时间取决于其相邻腿的动作及其触地位置,因而,对于崎岖不平的地面而言,这种步态本身是不可预测的。然而,对于理想的平整地面而言,各腿的运动周期应该是一致的,故而此时的交替步态实质上等同于三角步态,这己在实验中得到证实根据实验及研发,采用了三角步态。六足仿生机器人采用六足昆虫的行走步态,步行时把6条足分为两组,以一边的前足后足与另一边的中足为一组,形成一个三角架支撑机体。因此在同一时间,只有一组的3条足起支撑作用,前足用爪固定物体后拉动虫体前进,中足用以支撑并举起所属一边的身体,后足则推动机体前进,同时使机体转向。行走时机体向前,并稍向外转,3条足同时行动,然后再与另一组3条足交替进行。直线行走时的步态如图3.2所示。机器人开始运动时左侧的2号腿和右侧的4、6号腿抬起,准备向前摆动,另外3条腿1、3、5处于支撑状态,支撑机器人本体确保机器人的原有重心位置处于3条支撑腿所构成的三角形内,使机器人处于稳定状态不至于摔倒,见图3.2(a),摆动腿2、4、6向前跨步,见图3.2(b),支撑腿1、3、5一面支撑机器人本体,一面在小型直流驱动电机和皮带传动机构的作用下驱动机器人本体,使机器人机体向前运动一个半步长S,见图3.2(c);在机器人机体移动到位时,摆动腿2、4、6立即放下,呈支撑态。使机器人的重心位置处于2、4、6三条支撑腿所构成的三角形稳定区内,原来的支撑腿1、3、5已抬起并准备向前跨步,见图3.2(d)摆动腿1、3、5向前跨步,见图3.2(e),支撑腿2、4、6此时一面支撑机器人本体,一面驱动机器人机体使机器人机体向前运动一个步长S,见图3.2(f),如此不断重复步态a-b-c-d-e-f-a,循环往复实现机器人不断向前运动。图3.23.4总原理图:注:电路模块较多,故较多采用网络标号的方法来实现电路图的物理连接。3.5PCB电路图:

四、项目总结本次项目设计中,首先对六足机器人的机械构造进行了深入的讨论最终确定了三角步态的六足结构,采用每脚三个舵机来模仿蜘蛛的足关节。而后在舵机的选取方面采用了目前性价比较高的MG996舵机及全铝合金制的机身和关节等。其次,前期采用STC89C51单片机模拟驱动舵机,由于STC89C52单片机的IO口驱动电流无法驱动MG996舵机,因此采用了STC12C5A60S2单片机驱动。舵机的信号是由单片机提供,其工作电压是外部供电。有效的减轻单片机的负载且提高单片机运行的稳定性。机械结构也是六足机器人重要的考虑部分,机械构造的稳定是完成后续动作的基础,机械的缓震方面也是要做到细致。保证机械的流畅运行。

五、附录全部程序:#include<stc12c5a60s2.h>#include"servo.h"#include<intrins.h>sbitled=P4^2;uchartime0_count,led_count; //最小值为0最大值190度到190度/***************函数申明**************************/voidDelay1ms(void); //@12.000MHzvoidDelay_ms(unsignedintx);voidtime_configuration();/************步态程序******************************/voidGesture0_ShenZhan(void); //机体伸展voidGesture1_ZhanLi(void);//机体站立姿态voidGesture2_ShouSuo(void);//机体收缩voidGesture3_JinShi(void); //进食姿态voidGesture4_SanZuZhanLi(void);voidGesture5_SiZuZhanLi(void);voidLeft_Gait(void);//左转动作voidRight_Gait(uinttime); //右转动作voidForword_Gait(uinttime); //前进动作voidBack_Gait(void); //后退动作/*********主函数*********************************/voidmain(){ /***********所有IO口设置为推挽输出*********/P1M1=0x00; P1M0=0xff; P0M1=0x00; P0M0=0xff; P2M1=0x00;P2M0=0x81; time_configuration();Gesture0_ShenZhan();Delay_ms(500);Delay_ms(500);while(1){ Forword_Gait(200);}}/*////////////4足站立////////////*///定稿voidGesture5_SiZuZhanLi(void){ Angle_Servo_1=7;//左前 Angle_Servo_2=0; Angle_Servo_4=4;//左中 Angle_Servo_5=12; Angle_Servo_7=7;//左后 Angle_Servo_8=8; Angle_Servo_16=13;//右前 Angle_Servo_17=0; Angle_Servo_13=16;//右中 Angle_Servo_14=12; Angle_Servo_10=13;//右后 Angle_Servo_11=12; Delay_ms(500); Delay_ms(500); Angle_Servo_3=8; Angle_Servo_6=8; Angle_Servo_9=12; Angle_Servo_18=8; Angle_Servo_15=8; Angle_Servo_12=8;}/*////////////3足站立////////////*///定稿voidGesture4_SanZuZhanLi(void){ Angle_Servo_1=10;//左前 Angle_Servo_2=0; Angle_Servo_3=0; Angle_Servo_7=10;//左后 Angle_Servo_8=19; Angle_Servo_9=19; Angle_Servo_13=10;//右中 Angle_Servo_14=0; Angle_Servo_15=0; }/***********************************函数名称:voidForword_Gait(unsignedinttime)函数功能:前进步态转换角度:30度***********************************/voidForword_Gait(unsignedinttime){/*----------135抬起---------------*///1 //左前足抬起 Angle_Servo_1=7; Angle_Servo_2=7;Angle_Servo_3=13; //左后足抬起 Angle_Servo_7=7; Angle_Servo_8=7; Angle_Servo_9=9; //右中足抬起 Angle_Servo_13=11; Angle_Servo_14=11; Angle_Servo_15=9;///*****延时*******/ Delay_ms(time);/*----------135前移---------------*///2 //左前足 Angle_Servo_1=7; Angle_Servo_2=7;Angle_Servo_3=14; //左后足 Angle_Servo_7=7; Angle_Servo_8=7; Angle_Servo_9=10; //右中足 Angle_Servo_13=11; Angle_Servo_14=11; Angle_Servo_15=8;///*****延时*******/ Delay_ms(time);/*----------135放下--------------*///2 //左前足 Angle_Servo_1=9; Angle_Servo_2=9;Angle_Servo_3=14; //左后足 Angle_Servo_7=9; Angle_Servo_8=9; Angle_Servo_9=10; //右中足 Angle_Servo_13=11; Angle_Servo_14=11; Angle_Servo_15=8;///*****延时*******/ Delay_ms(time);/*----------246抬起---------------------------------------------*/ //右前足抬起 Angle_Servo_10=11; Angle_Servo_11=11; Angle_Servo_11=3; //右后足抬起 Angle_Servo_16=11; Angle_Servo_17=11; Angle_Servo_18=11; //左中足抬起 Angle_Servo_4=9; Angle_Servo_5=9; Angle_Servo_6=9; ///*****延时*******/ Delay_ms(time);/*----------246前移135归位---------------------------------------------*/ //右前足 Angle_Servo_10=11; Angle_Servo_11=11; Angle_Servo_12=2; //右后足 Angle_Servo_16=11; Angle_Servo_17=11; Angle_Servo_18=10; //左中足 Angle_Servo_4=7; Angle_Servo_5=7; Angle_Servo_6=8; //归位 //左前足 Angle_Servo_1=9; Angle_Servo_2=9;Angle_Servo_3=14; //左后足 Angle_Servo_7=9; Angle_Servo_8=9; Angle_Servo_9=7; //右中足 Angle_Servo_13=9; Angle_Servo_14=9; Angle_Servo_15=9;///*****延时*******/ Delay_ms(time);/*----------246放下----------------*/ //右前足 Angle_Servo_10=9; Angle_Servo_11=9; Angle_Servo_12=2; //右后足 Angle_Servo_16=9; Angle_Servo_17=9; Angle_Servo_18=10; //左中足 Angle_Servo_4=9; Angle_Servo_5=9; Angle_Servo_6=8;///*****延时*******/ Delay_ms(time);/*----------135抬起-------------*/ //左前足抬起 Angle_Servo_1=7; Angle_Servo_2=7;Angle_Servo_3=14; //左后足抬起 Angle_Servo_7=7; Angle_Servo_8=7; Angle_Servo_9=7; //右中足抬起 Angle_Servo_13=11; Angle_Servo_14=11; Angle_Servo_15=9;///*****延时*******/ Delay_ms(time);/*----------135前移246归位-------------*/ //归位 //右前足 Angle_Servo_10=9; Angle_Servo_11=9; Angle_Servo_12=3; //右后足 Angle_Servo_16=9; Angle_Servo_17=9; Angle_Servo_18=11; //左中足 Angle_Servo_4=9; Angle_Servo_5=9; Angle_Servo_6=9;///*****延时*******/ Delay_ms(time);}/*////////////机体进食状态////////////*/voidGesture3_JinShi(void){ Angle_Servo_4=3;//左中 Angle_Servo_5=9; Angle_Servo_6=5; Angle_Servo_7=9;//左后 Angle_Servo_8=7; Angle_Servo_9=7; Angle_Servo_13=10;//右中 Angle_Servo_14=5; Angle_Servo_15=9; Angle_Servo_10=5;//右后 Angle_Servo_11=7; Angle_Servo_12=7;/*---------运动------------------*/ ///落下 Angle_Servo_1=4;//左前 Angle_Servo_2=1; Angle_Servo_3=7; Angle_Servo_16=10;//右前 Angle_Servo_17=14; Angle_Servo_18=7;// Delay_ms(300);////抬起// Angle_Servo_1=6;// Angle_Servo_16=10;// // Angle_Servo_2=0;// Angle_Servo_17=0;//// Angle_Servo_3=19;// Angle_Servo_18=19;// Delay_ms(300);/*--------------------------------*/}/*////////////机体收缩////////////*///定稿voidGesture2_ShouSuo(void){ Angle_Servo_1=7;//左前 Angle_Servo_2=1; Angle_Servo_4=7;//左中 Angle_Servo_5=1; Angle_Servo_7=7;//左后 Angle_Servo_8=1; Angle_Servo_16=7;//右前 Angle_Servo_17=14; Angle_Servo_13=7;//右中 Angle_Servo_14=14; Angle_Servo_10=7;//右后 Angle_Servo_11=14; Delay_ms(500); Angle_Servo_3=1; Angle_Servo_6=1; Angle_Servo_9=1; Angle_Servo_18=17; Angle_Servo_15=17; Angle_Servo_12=17;}/*////////////机体站立////////////*///定稿voidGesture1_ZhanLi(void){ Angle_Servo_1=7;//左前 Angle_Servo_2=7; Angle_Servo_3=7; Angle_Servo_4=7;//左中 Angle_Servo_5=7; Angle_Servo_6=7; Angle_Servo_7=7;//左后 Angle_Servo_8=7; Angle_Servo_9=7; Angle_Servo_16=7;//右前 Angle_Servo_17=7; Angle_Servo_18=7; Angle_Servo_13=7;//右中 Angle_Servo_14=7; Angle_Servo_15=7; Angle_Servo_10=7;//右后 Angle_Servo_11=7; Angle_Servo_12=7;}/*////////////机体伸展////////////*///定稿voidGesture0_ShenZhan(void){ Angle_Servo_1=9;//左前 Angle_Servo_2=9; Angle_Servo_3=14; Angle_Servo_4=9;//左中 Angle_Servo_5=9; Angle_Servo_6=9; Angle_Servo_7=9;//左后 Angle_Servo_8=9; Angle_Servo_9=7; Angle_Servo_10=9;//右前 Angle_Servo_11=9; Angle_Servo_12=3; Angle_Servo_13=9;//右中 Angle_Servo_14=9; Angle_Servo_15=9; Angle_Servo_16=9;//右后 Angle_Servo_17=9; Angle_Servo_18=11;}/***********************************函数名称:voidLeft_Gait(void)函数功能:左转步态转换角度:30度***********************************/voidLeft_Gait(void){}/***********************************函数名称:voidLeft_Gait(void)函数功能:右转步态转换角度:30度***********************************/voidRight_Gait(uinttime){/*----------组1抬起-------------------------------------------*/ //左前足抬起 Angle_Servo_1=7;//11恢复初始角度左前足内圈舵机 Angle_Servo_2=2;//9抬高30度左前足中圈舵机Angle_Servo_3=4;//11往下30度左前足外圈舵机 //左后足抬起 Angle_Servo_7=10;//14恢复初始角度左后足内圈舵机 Angle_Servo_8=12;//13抬高30度左后足中圈舵机 Angle_Servo_9=11;//12往下30度左后足外圈舵机 //右中足抬起 Angle_Servo_13=9;//13恢复初始角度右中足内圈舵机 Angle_Servo_14=2;//9抬高30度右中足中圈舵机 Angle_Servo_15=4;//11往下30度左后足外圈舵机/*----------组2右转---------------------------------------------*/ Angle_Servo_16=5;//12左转30度右前足内圈舵机 Angle_Servo_10=5;//12左转30度右后足内圈舵机 Angle_Servo_4=6;//13左转30度左中足内圈舵机 /*****延时*******/ Delay_ms(time);/*----------组1落下-------------------------------------------*/ //左前足落下 Angle_Servo_2=5;//9恢复初始角度左前足中圈舵机Angle_Servo_3=3;//11恢复初始角度左前足外圈舵机 //左后足落下 Angle_Servo_8=9;//13恢复初始角度左后足中圈舵机 Angle_Servo_9=12;//12恢复初始角度左后足外圈舵机 //右中足落下 Angle_Servo_14=5;//9恢复初始角度右中足中圈舵机 Angle_Servo_15=3;//11恢复初始角度右中足外圈舵机 /*----------组2抬起---------------------------------------------*/ //右前足抬起 Angle_Servo_16=8;//12恢复初始角度右前足内圈舵机 Angle_Servo_17=2;//9抬高30度右前足中圈舵机 Angle_Servo_18=4;//11往下30度右前足外圈舵机 //右后足抬起 Angle_Servo_10=8;//12恢复初始角度右后足内圈舵机 Angle_Servo_11=2; //9抬高30度右后足中圈舵机 Angle_Servo_12=4;//11往下30度右后足外圈舵机 //左中足抬起 Angle_Servo_4=9;//13恢复初始角度左中足内圈舵机 Angle_Servo_5=2; //9抬高30度 左中足中圈舵机 Angle_Servo_6=4; //11往下30度 左中足外圈舵机/*****延时*******/ Delay_ms(time);/*----------组1右转-------------------------------------------*/ //机体右转 Angle_Servo_1=4;//11左转30度左前足内圈舵机 Angle_Servo_7=7;//14左转30度左后足内圈舵机 Angle_Servo_13=6;//13左转30度右中足内圈舵机/*----------组2落下---------------------------------------------*///右前足落下 Angle_Servo_17=5;//9恢复初始角度右前足中圈舵机 Angle_Servo_18=4;//11恢复初始角度右前足外圈舵机 //右后足落下 Angle_Servo_11=5;//9恢复初始角度右后足中圈舵机 Angle_Servo_12=4;//11恢复初始角度右后足外圈舵机 //左中足落下 Angle_Servo_5=5;//9恢复初始角度左中足中圈舵机 Angle_Servo_6=3;//11恢复初始角度左中足外圈舵机/*****延时*******/Delay_ms(time);}/***********************************函数名称:voidLeft_Gait(void)函数功能:后退步态转换角度:30度***********************************/voidBack_Gait(void){}/********定时器函数配置****************************/voidtime_configuration(){TMOD=0X01;TH0=0XFF; //0.125MSTL0=0X83;ET0=1;TR0=1;EA=1;time0_count=0;}voidtime0()interrupt1{/*********************定时计数单元*******************************/TH0=0XFF; //0.125MSTL0=0X83;time0_count++;if(time0_count>160)time0_count=0;//20MSif(time0_count==160){led_count++;if(led_count==4){led_count=0;led=~led;}}/*****************************************************************///头/*----------------舵机19----------------------------*/if(time0_count<=Angle_Servo_Head+4){SERVO_Series_Head=1;}else{SERVO_Series_Head=0;}/****************左边腿变量********************///左前/*----------------舵机1----------------------------*/if(time0_count<=Angle_Servo_1+4){SERVO_Series_1=1;}else{SERVO_Series_1=0;}/*----------------舵机2----------------------------*/if(time0_count<=Angle_Servo_2+4){SERVO_Series_2=1;}else{SERVO_Series_2=0;}/*----------------舵机3----------------------------*/if(time0_count<=Angle_Servo_3+4){SERVO_Series_3=1;}else{SERVO_Series_3=0;}//左中/*----------------舵机1----------------------------*/if(time0_count<=Angle_Servo_4+4){SERVO_Series_4=1;}else{SERVO_Series_4=0;}/*----------------舵机2----------------------------*/if(time0_count<=Angle_Servo_5+4){SERVO_Series_5=1;}else{SERVO_Series_5=0;}/*----------------舵机3----------------------------*/if(time0_count<=Angle_Servo_6+4){SERVO_Series_6=1;}else{SERVO_Series_6=0;}//左后/*----------------舵机1----------------------------*/if(time0_count<=Angle_Servo_7+4){SERVO_Series_7=1;}else{SERVO_Series_7=0;}/*----------------舵机2----------------------------*/if(time0_count<=Angle_Servo_8+4){SERVO_Series_8=1;}else{SERVO_Series_8=0;}/*----------------舵机3----------------------------*/if(time0_count<=Angle_Servo_9+4){SERVO_Series_9=1;}else{SERVO_Series_9=0;}/****************右边腿变量********************///右前/*----------------舵机1----------------------------*/if(time0_count<=Angle_Servo_16+4){SERVO_Series_16=1;}else{SERVO_Series_16=0;}/*----------------舵机2----------------------------*/if(time0_count<=Angle_Servo_17+4){SERVO_Series_17=1;}else{SERVO_Series_17=0;}/*----------------舵机3----------------------------*/if(time0_count<=Angle_Servo_18+4){SERVO_Series_18=1;}else{SERVO_Series_18=0;}//右中/*----------------舵机1----------------------------*/if(time0_count<=Angle_Servo_13+4){SERVO_Series_13=1;}else{SERVO_Series_13=0;}/*----------------舵机2----------------------------*/if(time0_count<=Angle_Servo_14+4){SERVO_Series_14=1;}else{SERVO_Series_14=0;}/*----------------舵机3----------------------------*/if(time0_count<=Angle_Servo_15+4){SERVO_Series_15=1;}else{SERVO_Series_15=0;}//右后/*----------------舵机1----------------------------*/if(time0_count<=Angle_Servo_10+4){SERVO_Series_10=1;}else{SERVO_Series_10=0;}/*----------------舵机2----------------------------*/if(time0_count<=Angle_Servo_11+4){SERVO_Series_11=1;}else{SERVO_Series_11=0;}/*----------------舵机3----------------------------*/if(time0_count<=Angle_Servo_12+4){SERVO_Series_12=1;}else{SERVO_Series_12=0;} }/*************毫秒延时*******************************/voidDelay1ms(void) //@12.000MHz{ unsignedchari,j; _nop_(); _nop_(); i=12; j=168; do { while(--j); }while(--i);}voidDelay_ms(unsignedintx){for(;x>0;x--){Delay1ms();}}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用\t"_bl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论