51单片机设计方案TOP10(一)

最新更新时间:2013-05-22来源: 互联网关键字:51单片机  设计方案 手机看文章 扫描二维码
随时随地手机看文章
基于MCS-51单片机的智能机器人迷宫车设计

  机器人应当具有几个特征:移动功能,执行功能、感觉和智能。目前全世界各国举办的涉及硬件,软件仿真的机器人大赛不下20余类。各种各样的机器人比赛都有一个共同的宗旨:培养科学创新精神,激发思维的想象力,鼓励理论与实践的结合。不仅如此,现在已经有越来越多的自动控制产品已经介入生产,在农业、工业上都有广泛的应用。新的工作方式将大大的缩短了人工作业的时间,并且减轻了人的体力劳动的支出。走迷宫的微型机器鼠主要是基于自动引导小车(Auto Guided Vehicle,AGV)的原理,实现机器鼠识别路线,判断并自动躲避障碍,选择正确的行进路线走出迷宫。在此选择制作一个简易的行进装置,使其能顺利的走避障或是迷宫。为了实现小车识别路线,判断并自动躲避障碍,选择正确的行进路线,障碍判断采用单光束反射取样红外传感器,驱动电机采用直流电机,控制核心采用MCS-51单片机。控制上采用分时复用技术,仅用一块单片机实现了信号采集、线路判断、电机控制等功能。迷宫由16×16个区组成。起点设在拐角处,终点设在中央,占4个区。每个区为180 mm×180 mm大小,间壁高为50 mm,厚度为12 mm,侧面涂白色,底面涂黑色,如图1所示。

  1 迷宫车控制系统的总体设计方案

  迷宫车由墙壁传感器、单片机控制板、动力及转向系组成的,控制框图如图2所示。

  迷宫车采用轮式移动方式。优点是:结构和控制简单而且技术成熟。从选定电动机转速和轮胎直径,可以简单地计算出小车的速度。但是,有关路面的阻力或上坡的驱动转矩等成为重要的因素。考虑这点,在轮胎上使用无线遥控车的塑胶轮胎。如图3所示,前轮1为万向脚轮或球形轮,后轮2和后轮3为独立驱动轮,利用它们的转速差实现转向。这种组合的特点是机枢组合容易,而且当2个驱动轮以相同速度、相反方向转动时车体能绕2个驱动轮连线的中点自转,值得注意的是自转中心与车体中心不一致。

  迷宫车车身材料的选择。迷宫车使用的材料大部分用于结构,一般应采用金属材料。迷宫车承载和运动不应产生严重的变形和断裂,从力学角度讲即具有足够的强度。迷宫车负载小,自重轻,对寿命的要求不高。因此,选用铁皮。

  1.1 迷宫车控制电路的设计

  控制电路主要由电机驱动电路,单片机接口电路,电源电路和传感器电路组成。控制框图如图4所示。

  (1)红外线光感电路传感器通过发光二极管发出红外线,若有障碍物在前方,红外线会被反射回来,被感光三极管接收,单片机程序对信号进行比较处理,按设定的动作要求向后轮的两个电机发出控制命令,控制小车行进。

  (2)电机驱动电路采用89S51单片机,通过L293D芯片来控制两个驱动电机动作。89S51根据红外传感器对外界进行探测后反馈回来的信号,依据迷宫车探路算法,判定迷宫车行进方向,分别向左右两个驱动电机发出控制指令,该信号经L293D芯片驱动后,直接控制相应电机动作,使迷宫车按既定动作进行前进、后退、转向。

关键字:51单片机  设计方案 编辑:神话 引用地址:51单片机设计方案TOP10(一)

上一篇:基于嵌入式的自动售货机设计与实现
下一篇:51单片机设计方案TOP10(二)

推荐阅读最新更新时间:2023-10-12 20:45

AT89C51单片机在无线数据传输中的应用
一般的数字采集系统,是 通过 传感 器将捕捉的现场 信号 转换为电信号,经模/数转换器ADC采样、量化、编码后,为成数字信号,存入数据 存储器 ,或送给微处理器,或通过无线方式将数据发送给接收端进行处理。无线数据传输系统就是 样一套利用无线手段,将采集的数据由测量站发送到主控站的设备。 1 系统组成 系统组成如图1、图2所示。   系统由测量站和主控站两部分组成。测量站主要完成对现场信号的采集、存储,接收遥控 指令并 发送数据。主控站的主要工作是发送遥控指令、接收数据信息、进行数据处理和数据管理、随机显示打印等。 2 AT89C51与数字电台的串行通信 Atmel公司的AT89C51单片机,是一种低功耗、
[应用]
MCS-51单片机指令系统(1)
指令系统概述 指令是计算机用于控制各种功能部件完成的某一特定动作的指示和命令。一台计算机能识别和执行的指令集合即为其指令系统。指令系统是一套控制计算机执行操作的编码,通常称为机器语言。机器语言是计算机唯一能识别和执行的指令。指令系统由硬件决定,且不具有通用性。汇编语言可以准确地计算出控制操作时间并灵活地实施控制,及高效开发必须掌握指令系统和汇编语言。 在实际开发应用中,由于指令系统与汇编语言开发的繁琐和开发效率低则应用C语言开发或者直接应用固件集成库开发提高开发效率和时间。但是对于单片机及其他硬件开发过程,开发过程的调试和资源应用都应对于汇编和指令系统的熟悉才能真正的高效开发完成调试达到目的。 常用单位和术语 位(
[单片机]
c51单片机之外部中断实验
c51单片机之外部中断实验(利用外部中断实现按键控制显示数字实现设置、加一、减一功能) 仿真图: 代码段: #include reg52.h #define uint unsigned int #define uchar unsigned char sbit P10=P1^0; uchar a=0;//T0中断次数 char c=0; //闪烁次数 uint b=0; //外部中断(S14问 uint z; //判断减一执行后是否开启加一按键 void delay(uint z); void display(); uchar code table ={0xc0,0xf9,0xa4,0xb0,0x99,
[单片机]
c<font color='red'>51单片机</font>之外部中断实验
51单片机学习笔记(六)_串口中断通信+定时器2串口中断
51单片机默认使用定时器1作为串口通信的波特率发生器、定时器1中断通信,串口与定时器1冲突,在遇到定时器不够用的时候可以用定时器2 #include reg52.h void DelayMs(unsigned int i); void SerialInit(); void SendByte(unsigned char sbyte); void SendString(unsigned char *pstr); void main(void) { SerialInit(); while(1); //注:必需要无限循环 } /* //单片机时钟周期:11.0592MHz 以时钟1作为波特
[单片机]
基于STM32F105微控制器的双CAN冗余设计方案
控制器局域网( Contro llerA reaN etwo rk, CAN)是一种多主方式的串行通讯总线。CAN 总线具有较高的位速率, 很强的抗电磁干扰性, 完善的错误检测机制, 在汽车、制造业以及航空工业领域中得到广泛应用 。由于船舶机舱环境极为恶劣, 且船舶航行过程中维修条件不如陆上, 对CAN 通信的可靠性要求很高, 采取双CAN 冗余总线提高通信可靠性。本文提出一种基于STM32F105微控制器的双CAN 冗余设计方案。   1 硬件平台组成   STM32F105是STM icroe lectron ics公司推出的一款基于ARM Co rtex- M3内核的32位微控制器, 其内核是专门设计于满足高性能
[工业控制]
基于STM32F105微控制器的双CAN冗余<font color='red'>设计方案</font>
地铁LED照明设计方案
  1 引言   近年来。随着国民经济的迅速发展,我国汽车数量急剧增加,道路拥堵日益严重,各大城市都相继建设地下交通(地铁)。以缓解交通拥堵现象。地铁常年在地下运行对照明灯有很高的要求。不仅要求节电、高亮度、长寿命。还必须保证不间断照明。   目前,常用的白炽灯、日光灯、高压钠灯等都由交流电网供电。最佳设计的交流电网也不可避免出现停电事故。为了确保地下不间断照明。通常必须安装由整流器、蓄电池和逆变器等部分组成的应急照明电源。当电网正常供电时,交流电经整流器后变为直流电给蓄电池充电;当电网中断供电时。蓄电池通过逆变器把直流电变为交流电,给照明灯具供电。这种不间断照明系统的成本很高,同时,经过多次变换。功耗也较大。   近年
[嵌入式]
51单片机矩形键盘控制数码管显示0-F,以及LED灯的亮灭
电路图 总图 部分图1 部分图2 部分图3 元件清单 C语言程序 #include reg51.h #define uint unsigned int #define uchar unsigned char //共阳数码管编码表&LED灯 uchar code table = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //函数声明 void delay(uint time); //延时函数 void display(uchar k); //数码管显示0-F以及LED
[单片机]
51单片机矩形按键控制16个LED灯亮灭和数码管显示
电路原理图 程序 #include reg51.h #define uint unsigned int #define uchar unsigned char //函数声明 void delay(uint time); //延时函数 void display(uchar k); //数码管显示0-F以及LED灯的亮灭 uchar getKey(); //读取键盘的数值 //主程序 void main(){ uchar keyValue; while(1){ keyValue = getKey(); //读取键盘值 display(keyValue); //数码管显示&LED亮灭 } }
[单片机]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved