51红外循迹小车报告(舵机版)最终版

合集下载

红外循迹小车c程序(舵机小车)

红外循迹小车c程序(舵机小车)

#include<reg52.h>sbit servo=P2^5;uint control=12;uint jishu;uint pianchu;sbit zuo11=P3^4; //为0为左边正转sbit zuo12=P3^5; //为1为左边正转sbit you21=P3^6; //为1为右边正转sbit you22=P3^7; //为0为右边正转uint sp,speed=3;uint ji=1,guang,bi; //判断循迹寻光变量uint stop1,stop2,stop3;void delay(uint a){uint b,c;for(b=a;b>0;b--)for(c=115;c>0;c--);}void qianjin() //可以当做延时函数来用{// P3=0x0f;// delay(speed);P3=0xf9;}void initial_T0(){TMOD=0x21;TH1=0x8c;TL1=0x8c;EA=1;ET1=1;TR1=1;}void xunji(){if(P1==0x00){qianjin();}// if(P1==0x20)// {// //加速// qianjin();// speed=2;// qianjin();// qianjin();// }if(P1==0x10){//左转qianjin();control+=1;qianjin();while(P1!=0x20){if(P1==0x08){//大角度左转qianjin();qianjin();control+=1;while(P1!=0x10){// if(P1==0x00) //偏出跑道,小车停止// {// speed=10000;// }pianchu++;if(pianchu>=20000){break;}}control-=1;qianjin();qianjin();}pianchu++;if(pianchu>=20000){break;}}pianchu=0;control-=1;qianjin();qianjin();}if(P1==0x40){//右转qianjin();control-=1;qianjin();while(P1!=0x20){if(P1==0x80){//大角度右转qianjin();control-=1;qianjin();while(P1!=0x40){// if(P1==0x00) //偏出跑道,小车停止// {// speed=10000;// }pianchu++;if(pianchu>=20000){break;}}qianjin();control+=1;qianjin();}pianchu++;if(pianchu>=20000){break;}}pianchu=0;qianjin();control+=1;qianjin();}}void main(){initial_T0();P1=0xf8;while(1){stop1=P1;if(stop1==stop2){stop3++;}else{stop3=0;}xunji();if(P1==0x80||P1==0x08||stop3>10000){P3=0x00;while(1);}stop2=P1;}}void T0_waytwo() interrupt 3 {if(jishu<control)servo=1;elseservo=0;jishu++;jishu=jishu%160;}。

51红外循迹小车报告(舵机版)最终版要点

51红外循迹小车报告(舵机版)最终版要点

简易教程前言往届全国大学生电子设计竞赛曾多次出现了集光、机、电于一体的简易智能小车题目,此次,笔者在通过多次论证、比较与实验之后,制作出了简易小车的寻迹电路系统。

整个系统基于普通玩具小车的机械结构,利用小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。

系统分为检测、控制、驱动三个模块。

首先利用光电对接收管和路面信号进行检测,然后经过比较器处理,对软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

智能小车能在画有黑线的白纸“路面”上行驶,这是由于黑线和白纸对光线的反射系数不同,小车可根据接收到的反射光的强弱来判断“道路”---黑线,最终实现简单的循迹运动。

个人水平有限,有错误不足之处,还望各位前辈同学多多包含,指出修正,完善。

谢谢!李学云王维2016年7月27号目录前言 (1)第一部分硬件设计 (1)1.1 车模选择 (1)1.2传感器选择 (1)1.3 控制模块选择 (2)第二部分软件设计及调试 (3)2.1 开发环境 (3)2.2总体框架 (3)2.3 舵机程序设计与调试 (3)2.3.1 程序设计 (3)2.3.2 调试 (3)2.3.3 程序代码 (4)2.4 传感器调试 (5)2.4.1 传感器好坏的检测 (5)2.4.2 单片机能否识别信号并输出信号 (5)2.5 综合调试 (7)附录1 (9)第一篇舵机(舵机及转向控制原理) (9)1.1概述 (9)1.2舵机的组成 (10)1.3舵机工作原理 (11)1.4舵机使用中应注意的事项 (12)1.5如何利用程序实现转向 (12)1.6舵机测试程序 (13)附录2 (14)第二篇光电红外传感器 (14)2.1传感器的原理 (14)2.2红外光电传感器ST188 结构图 (15)2.3传感器的选择 (15)2.4传感器的安装 (16)2.5使用方法 (16)2.7红外传感器输入输出调试程序 (17)一、课题任务及要求用360°连续舵机设计一个自动循迹小车,可以自动行驶并检测到地面黑色轨迹,沿着黑色轨迹行驶.二、小车行驶基本原理小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。

循迹小车报告

循迹小车报告

循迹小车设计报告学校:定西师范高等专科学校产品名称:循迹小车日期:二〇一一年八月十八日摘要:本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。

小车以AT89C51 为控制核心, 用单片机产生PWM波,控制小车速度。

利用红外光电传感器对路面白色轨迹进行检测,并将路面检测信号反馈给单片机。

单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着白色轨迹自动行驶,实现小车自动寻迹的目的。

循迹小车的电路系统包括电源模块、单片机模块、传感器模块、电机驱动模块。

一、工作原理:1.利用红外采集模块中的红外发射接收对管检测路面上的轨迹将轨迹信息送到单片机2.单片机通过输入的信息分别控制小车左右两个电机的转速,用来控制小车的方向3.最终完成智能小车可以按照路面上的白色轨迹运行二、设计方案该车采用红外传感器对白色路面进行道路检测,把采集到的信号传给AT89C51单片机,AT89C51单片机根据收到的信号判断小车当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车姿态的控制。

三、硬件模块设计:3.1 电源模块:电源采用自制直流稳压电源,通过对220V的交流电压的变压,整流、滤波、稳压,分别输出12V和5V的直流电压。

用来给小车各模块供给所需电压。

电源电路如图:3.2电机驱动模块:电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。

是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。

L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。

5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB 接控制使能端,控制电机的停转。

红外寻迹小车实验报告

红外寻迹小车实验报告

重庆交通大学计算机与信息学院综合性设计性实验报告班级:电子信息工程专业2013 级01 班姓名(学号):杨云森(631306020101)实验项目名称:红外循迹智能小车实验项目性质:设计性实验所属课程:电子设计实践实验室(中心):现代电子实验中心指导教师:李星星实验完成时间: 2016 年 6 月 17日一、实验目的学习智能小车的制作流程,加深对单片机开发的理解和应用二、实验内容及要求做好单片机外扩,电源模块,寻迹模块,驱动模块四块板子,使小车能够正常的循迹。

三、实验原理这里的循迹是指小车在地板白纸上循黑线行走,通常采取的方法是红外探测法。

激光探测法,即利用激光激光在黑白颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射激光,当激光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则激光被吸收,小车上的接收管接收不到激光。

单片机就是否收到反射回来的激光为依据来确定黑线的位置和小车的行走路线。

激光探测器探测距离可以比较远,一般有60cm 左右。

1. 单片机最小系统单片机最小系统采用5V供电,并接有指示灯, 5mA左右电流足以驱动LED,LED 导通电压1.7V左右,因此配上1K电阻;蜂鸣器由8550驱动,1N4007二极管起到保护左右。

单片机根据接收的按键输入数据和传感器输出电平信号,输出一定脉冲数控制电机A和电机B的转动,从而控制小车的运动。

2. 电源电路设计智能车控制系统中,不同电路模块需要的工作电压和电流容量各不相同。

芯片需要提供5V的工作电压,而电机所需的电压为9V,本设计中用到的是9V的电源供电,然后通过三端稳压器LM7805将电压变换为5V电压供给电路系统。

电源系统的电路图如图所示。

3.电机驱动电路设计电路采用PWM(脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。

通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。

基于51单片机的智能红外遥控书法小车的设计

基于51单片机的智能红外遥控书法小车的设计

基于51单片机的红外遥控书法小车课程设计题目名称:基于51单片机的红外遥控书法小车的设计专业班级:测控1402班学生姓名:赵向前学号: 201423030211 指导教师:周刚刘林芝单片机系统课程设计任务书目录1系统概述 (1)2方案论证 (2)2.1 使用普通直流减速电机 (2)2.2 使用四象八拍步进电机 (2)3硬件设计 (3)3.1系统的原理方框图 (3)3.1.1. 12V直流电源 (3)3.1.2 5V稳压模块 (4)3.1.3.控制系统模块 (4)3.1.4. 红外接收模块 (5)3.1.5. 步进电机驱动 (6)3.1.6. 步进电机 (6)3.2主电路 (8)3.3. I/O分配 (8)3.3. I/O连线图 (8)4软件设计 (8)4.1流程图 (9)4.2源程序 (9)5系统调试 (28)6.使用方法 (28)7.设计心得 (28)参考文献 (29)1系统概述该小车是我在练字时无意间蹦出的一个想法,于是我就想让小车按照固定的轨迹行走,并使其驱动一杆毛笔,不就能让小车也能写出富有艺术的毛笔字了吗?基于这样的构想,我就设计方案制作一辆智能书法小车,后来设计完成后我又加上了红外遥控,于是就做成了最终的基于STC89C52RC单片机的智能红外遥控书法小车。

该作品所要实现的功能如下:1.按照固定的轨迹行走2.能够驱动毛笔写字3.实现红外遥控启动4.非工作模式下进入掉电模式实现低功耗长待机5.使用步进电机控制小车运行速度使其能够平稳稳定运行6.电流失控报警功能,使用LED灯泡实现对总电流及各个模块电流运转情况进行监控显示,电流平稳时,LED灯常亮,当电流出现异常巨大变动时,LED灯闪烁示警各模块参数:1.12V直流总电源供电2. 稳压模块使用L7805器件将12V电源转化为直流5V电源为各个模块供电3. 使用STC89C52RC单片机作为控制芯片4. 使用ULN2003芯片作为步进电机驱动5. 使用28BYT-48-5VDC永磁式直流5V四相八拍减速步进电机作为发动机6. 使用28BYT-48-5VDC永磁式直流5V四相八拍减速步进电机作为毛笔驱动2.方案论证2.1方案一:采用普通直流减速电机直流减速电机作为最常用的直流电机又有着控制简单,速度快等特点,但是在我们的智能书法小车上如果使用这种电机的话,就会出现很多的问题,其中,速度过快,很难精确地控制小车的位移,其次,普通直流减速电机的力矩较小,难以实现快速改变其运动轨迹的要求,所以,总的来说,使用普通直流减速电机并不合适,将之摒弃。

51单片机-循迹小车项目报告(完整)

51单片机-循迹小车项目报告(完整)

宜宾职业技术学院《单片机系统设计》项目设计报告项目设计题目:智能寻迹小车系部:电子信息与控制工程系班级:电子XXXX 班组号:第四组小组成员:XXX指导教师:XXX2017年10月10日目录一、引言 (3)二、方案论证 (4)三、小车车体设计 (7)四、硬件系统设计 (8)1、单片机最小系统 (8)2、循迹电路 (9)3、电机驱动电路 (9)五、软件系统设计 (12)六、系统的制作、仿真与调试 (14)七、总结 (15)一、引言当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。

现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。

作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。

无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。

但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。

为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。

基于51单片机的寻迹小车设计报告

基于51单片机的寻迹小车设计报告

寻迹小车摘要:以C8051F单片机作为微空机器,设计出一种寻迹小车,通过红外传感器检测黑带信号,利用单片机输出PWM脉冲控制两组直流电机正反转和转动的速度,使小车沿着还带行走。

关键词:寻迹,检测,传出信号。

1.方案论证与选择1.1电机驱动芯片的选择方案一:采用内部集成H桥式芯片L298驱动电路。

方案二:采用分立元件的H桥驱动电路。

由于采用内部集成H桥式芯片每一组PWM波用来控制一个电机的速度,而另外两个I/O口可以控制电机的正反转,控制比较简单,电路也很简单,一个芯片内包含有8个功率管,这样简化了电路的复杂性,所以采用方案一。

1.2传感器的选择方案一:采用发光二极管发光,用光敏二极管接收。

当发光二极管发出的可见光照射到黑带时,光线被黑带接收,光敏二极管检测到信号,呈现高阻抗,使输出端为低电平。

当发光二极管发出的可见光照射到地面时,它发出的可见光反射回来被光敏二极管检测到时,起阻抗迅速降低,此时输出端为高电平。

但是由于光敏二极管受环境中可见光影响较大,电路中的电压不太稳定。

方案二:利用红线发射管发射红线,红外线二极管进行接收。

采用四组红外光敏耦合三极管发射和接收红外信号,外面课见光对接收的信号影响较小。

接收的红外信号转化为电压信号经过LM393进行比较,产生高电平或低电平输出,信号返回给C8051F单片机.方案三:采用光敏电阻接收可见光检测。

四组光敏电阻用于检测可见光信号。

当光敏电阻检测到黑带时,输出端为低电平,当光敏电阻没有检测到黑带时,输出端为高电平,信号返回给单片机,通过单片机控制电机的转向。

光敏电阻易受环境的影响,电压稳定性较差。

综上比较,本设计才用方案二。

2.硬件设计2.1元器件明细表:(1) C8051单片机×1(2) 298带散热片×1(3) 7805带散热片×2(4) TCR5000 ×8(5) LM393 ×4(6)定位器×9(7) 1602显示屏×1(8)开关×1(9)电容:470uF ×110uf ×2104 ×4(9)电阻:EN4007 ×8150Ω×125.1K ×8200Ω×1(10)发光二极管×11(11)三极管×1(12)蜂鸣器×1(13)其他:导线,排线,排针,杜邦头,杜邦针2.2单元电路设计:2.11单片机最小系统电路2.12驱动电路2.13寻迹电路2.14电源电路2.15显示屏电路2.16蜂鸣器电路2.17指示灯电路VDD +5150VSS3、软件设计主控芯片为C8051F120,编程由C语言实现,程序流程如下:4.系统测试4.1单元电路的检测:4.11驱动电路的检测5V、12V、接地分别接好,使能1使能2接口接5V,A口接5V,B口接地,C口接5V,D口接地,然后用万用电表测01和02,03和04的输出电压是否为12V(可有小偏差),然后交换A,B接口,测01和02,03和04的输出电压是否反向,最后断开使能1和使能2接口,测01和02,03和04的输出电压是否为0V.4.12寻迹电路的检测先把电路接通,用照相机观察TCRT5000是否发光,再把万用表调到20V档位,正接线柱接输出,负接线柱接负极,看电压表示数是否5V(可有小偏差),用白纸挡上四个TCRT5000后,看电压是否有明显变化,最好低电压为1V以下。

51循迹小车程序实验报告

51循迹小车程序实验报告

竭诚为您提供优质文档/双击可除51循迹小车程序实验报告篇一:智能循迹小车实验报告摘要本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。

本次设计采用sTc公司的89c52单片机作为控制芯片,传感器模块采用红外光电对管和比较器实现,能够轻松识别黑白两色路面,同时具有抗环境干扰能力,电机模块由L298n芯片和两个直流电机构成,组成了智能车的动力系统,电源采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能。

关键词智能小车单片机红外光对管sTc89c52L298n1绪论随着科学技术的发展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断发展。

在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹。

2设计任务与要求采用mcs-51单片机为控制芯片(也可采用其他的芯片),红外对管为识别器件、步进电机为行进部件,设计出一个能够识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规则的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。

3方案设计与方案选择3.1硬件部分可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电源模块。

3.1.1单片机模块为小车运行的核心部件,起控制小车的所有运行状态的作用。

由于以前自己开发板使用的是ATmeL公司的sTc89c52,所以让然选择这个芯片作为控制核心部件。

sTc89c52是一种低损耗、高性能、cmos八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。

其程序和数据存储是分开的。

3.1.2传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息。

阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。

方案二:使用光电传感器来采集路面信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易教程前言往届全国大学生电子设计竞赛曾多次出现了集光、机、电于一体的简易智能小车题目,此次,笔者在通过多次论证、比较与实验之后,制作出了简易小车的寻迹电路系统。

整个系统基于普通玩具小车的机械结构,利用小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。

系统分为检测、控制、驱动三个模块。

首先利用光电对接收管和路面信号进行检测,然后经过比较器处理,对软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

智能小车能在画有黑线的白纸“路面”上行驶,这是由于黑线和白纸对光线的反射系数不同,小车可根据接收到的反射光的强弱来判断“道路”---黑线,最终实现简单的循迹运动。

个人水平有限,有错误不足之处,还望各位前辈同学多多包含,指出修正,完善。

谢谢!李学云王维2016年7月27号目录前言 (1)第一部分硬件设计 (1)1.1 车模选择 (1)1.2传感器选择 (1)1.3 控制模块选择 (2)第二部分软件设计及调试 (3)2.1 开发环境 (3)2.2总体框架 (3)2.3 舵机程序设计与调试 (3)2.3.1 程序设计 (3)2.3.2 调试 (3)2.3.3 程序代码 (4)2.4 传感器调试 (5)2.4.1 传感器好坏的检测 (5)2.4.2 单片机能否识别信号并输出信号 (5)2.5 综合调试 (7)附录1 (9)第一篇舵机(舵机及转向控制原理) (9)1.1概述 (9)1.2舵机的组成 (10)1.3舵机工作原理 (11)1.4舵机使用中应注意的事项 (12)1.5如何利用程序实现转向 (12)1.6舵机测试程序 (13)附录2 (14)第二篇光电红外传感器 (14)2.1传感器的原理 (14)2.2红外光电传感器ST188 结构图 (15)2.3传感器的选择 (15)2.4传感器的安装 (16)2.5使用方法 (16)2.7红外传感器输入输出调试程序 (17)一、课题任务及要求用360°连续舵机设计一个自动循迹小车,可以自动行驶并检测到地面黑色轨迹,沿着黑色轨迹行驶.二、小车行驶基本原理小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。

通常采取的方法是红外探测法。

红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

三、总体设计方案通过51单片机,在“while(1){}”里面不断扫描外部输入I/O口,若能读到高电平,则输出相应的舵机控制程序。

(要求:51 I/O口TTL门输入电压3.5V以上为高电平,1.2V以下为低电平。

读取引脚时,先置1再读取).第一部分硬件设计1.1 车模选择本教程选择带有两舵机和一万向轮的车模。

舵机型号:SM-S4303R(360°旋转舵机).其原理及详细操作说明,见附录1.车模实物如图1.1.图1.11.2传感器选择本教程选择ST188 红外对管光电传感器,使用左、前、右分布的三个传感器(前伸为了检测十字路口)。

传感器应用电路图如图1.2。

光电传感器原理详情,请看附录2->传感器篇。

图1.2应用原理:红外探测法红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。

在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。

1.3 控制模块选择因为循迹小车,只需要做简单的输入输出操作,普通51单片机都能实现其功能.本教程选用是51单片机型号为STC89C52RC的最小系统板(有引脚引出的)。

本教程里的程序理论上具有51内核的单片机都可使用。

最小系统原理图,如图1.3.图1.3 51最小系统原理图1.4 供电扩展版为了控制的稳定,舵机直接从电源VCC串个二极管供电。

这里采用简单的电源扩展,将5V电源引入扩展板,再引出供给电机和控制模块。

(这里最好把二极管接上,消除电机感性对单片机的影响)注意:当舵机与控制板供电电源不同时,两边必须共地,数字信号才能同步。

否则控制信号会发生混乱,导致无法控制。

第二部分软件设计及调试2.1 开发环境Keil C51 v9.54a、stc-isp-15xx-v6.85H、USB-TLL 51下载器(烧录程序用)2.2总体框架2.3 舵机程序设计与调试2.3.1 程序设计通过了解,知道89S51单片机自身没有PWM接口,故使用定时器模拟产生PWM波,进行舵机速度调试。

使用51单片机的定时器T0工作在方式1,赋予初值“TH0=(65535-100)/256; TL0=(65535-100)%256;”定时0.1ms(晶振频率12MHz),用count计数200,产生50HZ的脉冲频率(舵机最适频率)。

设全局变量LS、RS来控制占空比,从P1.0 P1.1输出PWM信号,两口外接舵机。

附:1.脉冲产生原理:周期20ms,定时1.2ms为高电平,其他时间为低电平.即可产生占空比为6%(一周期内高电平占比)的脉冲信号.2.pwm控制舵机原理,可理解为一个高电平舵机一动,给的多动的快,但有范围。

2.3.2 调试调试目的:得到正反转占空比范围。

我的调试数据为: 正转范围0.5%~6%(即:LS=1,LS=12)反转范围6.5%以上(即:LS>=13)2.3.3 程序代码/******************************************************51单片机舵机调试程序调试参数: 1.定时器定时0.1ms,计数200,定时20ms(50HZ). (360°左舵机为例): 频率50HZLS=12 (即占空比%6),电机正转最慢*******************RS=13 (即占空比%6.5),电机正转最慢****************//*提示:1.调试舵机时,最好单独供电(控制信号与电源供电分离).2.控制信号与供电电源必须共地。

*//*****************作者:李学云2016.7.23****************/(......排版好乱)#include "reg52.h"#define uchar unsigned charuchar count=0,LS=2,RS=15; //count: 定时计数LS:左路舵机脉宽调试sbit pwm_L=P1^0; //左路电机输出sbit pwm_R=P1^1;void init(){pwm_L=0; //占空比控制变量初始化pwm_R=0;//定时器,初始化,定时器T0工作方式1TMOD=0x01;TH0=(65535-100)/256; //基准定时时间为0.1msTL0=(65535-100)%256;EA=1;ET0=1;TR0=1;}void main(){init();while(1){ }}void timer0() interrupt 1 //定时器T0中断服务函数, 1 为T0中断号,3 为T1中断号{TH0=(65535-100)/256;TL0=(65535-100)%256;count++;if(count<=LS) {pwm_L=1;} else {pwm_L=0;}if(count<=RS) {pwm_R=1;} else {pwm_R=0;}count=count%200; //定时20ms 频率50hz}2.4 传感器调试2.4.1 传感器好坏的检测给传感器通上电,使传感器高度在0.3mm-10mm,并来回的在黑白线间移动,同时用万用表检测,看在黑线时,电压输出是否大于 3.5V,白线时电压是否低于1.2V。

2.4.2 单片机能否识别信号并输出信号三路传感器分别接到单片机P1.5 P1.6 P1.7口,P0口接8个LED灯。

下好程序,接好线,通电并移动传感器在黑白之间(高度0.5mm左右),观察P0.5 P06 P0.7口LED是否有闪烁,有则单片机能识别信号并输出信号。

/******三路红外光电传感器测试程序*********//*****P0口接上一排LED灯做指示用*********//****现象:单片机能识别到传感器信号,则对应P0.5 P06 P0.7口LED闪烁,否则只有P0.1 P02 P0.3闪烁。

***********/#include "reg52.h"#define uchar unsigned charuchar count=0,LS=0,RS=0;sbit pwm_L=P1^0; //左路电机输出sbit pwm_R=P1^1;sbit k1=P1^5;sbit k2=P1^6;sbit k3=P1^7;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;sbit led4=P0^5;sbit led5=P0^6;sbit led6=P0^7;void delay(uchar k){uchar i;for(;k>0;k--)for(i=0;i<=128;i++);}void init(){pwm_L=0;pwm_R=0;P1=0xff;TMOD=0x01;TH0=(65535-100)/256;TL0=(65535-100)%256;EA=1;ET0=1;TR0=1;}void main(){init();while(1){if(k1==1) {LS=0; RS=5;led1=0;delay(100);led1=1;} if(k2==1) {LS=16;RS=0;led2=0;delay(100);led2=1;} if(k3==1) {LS=0; RS=5;led3=0;delay(100);led3=1;}if(k1==0) {LS=16;RS=0;led4=0;delay(100);led6=1;} if(k2==0) {LS=0; RS=5;led5=0;delay(100);led5=1;} if(k3==0) {LS=16;RS=0;led6=0;delay(100);led6=1;} }}void timer0() interrupt 1{TH0=(65535-100)/256;TL0=(65535-100)%256;count++;if(count<=LS) {pwm_L=1;} else {pwm_L=0;}if(count<=RS) {pwm_R=1;} else {pwm_R=0;}count=count%200;}第三部分综合调试3.1综合调试3.1.1接线3.1.2 调试程序接线:P2.0 P2.1分别接舵机pwm输入线。

相关文档
最新文档