当前位置: 首页 > news >正文

网站开发简述电子插件加工厂生产线

网站开发简述,电子插件加工厂生产线,h5免费模板下载,企业文化经典句子引言 在嵌入式系统领域,51单片机因其简单易用、成本低廉的特点,一直是入门学习的理想平台。今天我将分享一个基于51单片机的多功能智能小车项目,它集成了按键PWM调速、障碍物跟踪、红外循迹和数码管显示四大功能。这个项目不仅涵盖了嵌入式开…

引言

在嵌入式系统领域,51单片机因其简单易用、成本低廉的特点,一直是入门学习的理想平台。今天我将分享一个基于51单片机的多功能智能小车项目,它集成了按键PWM调速障碍物跟踪红外循迹数码管显示四大功能。这个项目不仅涵盖了嵌入式开发的核心技术点,也是理解实时控制系统的绝佳案例。

项目概述

该智能小车系统通过以下硬件和软件模块协同工作:

  • 主控制器:STC89C52RC(经典51内核单片机)

  • 驱动模块:L298N电机驱动板

  • 感知模块:红外循迹传感器×3,超声波测距模块

  • 交互模块:4位共阴数码管,独立按键×3

  • 电源模块:18650锂电池组(7.4V)

关键硬件说明

  1. L298N驱动电路

    • 双H桥设计,可同时控制两个直流电机

    • 支持PWM调速和正反转控制

    • 最大输出电流2A,满足小车动力需求

  2. 红外循迹传感器

    • 基于TCRT5000反射式红外传感器

    • 检测距离2-10mm可调

    • 数字输出(0/1)简化处理逻辑

  3. 超声波测距

    • HC-SR04模块,测量范围2cm-400cm

    • 精度可达3mm

    • 用于障碍物检测和跟踪

软件架构

主程序流程图

核心模块实现

1.  按键检测

  采用状态机思想在定时器中断中利用中断周期跳转时间进行消抖

#include <reg52.h>
#include "key.h"sbit key_s1 = P3^0 ;sbit key_s2 = P3^1 ;sbit key_s3 = P3^2 ;sbit key_s4 = P3^3 ;struct keys key[4]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},
};
void getkey(void)
{unsigned char i;key[0].key_sta = key_s1;key[1].key_sta = key_s2;key[2].key_sta = key_s3;key[3].key_sta = key_s4;for( i=0;i<4;i++) {switch (key[i].judge_sta) {case 0:{if(key[i].key_sta==0)  key[i].judge_sta=1;}   // 第一次判断按键是否按下break;case 1:{if(key[i].key_sta==0) {key[i].judge_sta=2;key[i].single_flag=1;}else key[i].judge_sta=0;}   // 10ms(因为定时器终端周期设置为10ms)后判断按键是否真的按下break;case 2:{if(key[i].key_sta==1){key[i].judge_sta=0;}}  // 回到初始化break;}}}        
2.  PWM调速系统
unsigned char cunt,com=80;
// 定时器0初始化(10ms中断)
void  carrun(unsigned char );
void Timer0_Init(void) {		   //初始化小车TMOD &= 0xF0;   // 清除T0控制位						  TMOD |= 0x01;   // 设置T0为模式1(16位定时器)TH0 = 0xDC;     // 10ms定时初值(11.0592MHz晶振)TL0 = 0x00;ET0 = 1;        // 使能T0中断TR0 = 1;        // 启动T0
}
// 定时器0中断服务函数
void Timer0_ISR(void) interrupt 1 {TH0 = 0xDC;        // 重装初值TL0 = 0x00;	getkey();if(key[0].single_flag==1)  //检测按键按下增加占空比{if(com<100){com+=10;}else com=10;key[0].single_flag=0;key[1].single_flag=0;}if(key[1].single_flag==1)  //  按键2按下改变 车辆行驶状态{log++;log %=4;}
}// 100us中断
void Timer1_Init(void) {	   TMOD &= 0xF0;   // 清除T1控制位						  TMOD |= 0x10;   // 设置T1为模式1(16位定时器)TH1 = 0xFF;     // 10ms定时初值(11.0592MHz晶振)TL1 = 0x9C;ET1 = 1;        // 使能T1中断TR1 = 1;        // 启动T1
}
// 定时器0中断服务函数
void Timer1_ISR(void) interrupt 3 {	  //模拟pwm波TH1 = 0xFF;        // 重装初值TL1 = 0x9C;		   cunt++;cunt%=100;	   //占空比调速s2=led2;s3=led3;		//循迹s4=led4;s5=led5;	 // 跟随红外感应状态if(cunt<com)	        // 调整占空比 {carrun(0);}else{carrun(1);}
}
void  carrun(unsigned char en)
{EN1 = en;  //为1 左电机使能EN2 = en;  //为1 右电机使能
}
3.  障碍物跟踪算法

// 超声波测距函数
float Get_Distance() {unsigned int time = 0;float distance = 0;TRIG = 0;delay_us(2);TRIG = 1;delay_us(10);TRIG = 0;while(!ECHO); // 等待回波高电平TR1 = 1;      // 启动定时器1while(ECHO);  // 等待回波结束TR1 = 0;      // 停止定时器1time = TH1 * 256 + TL1;TH1 = 0;TL1 = 0;distance = time * 0.017; // 计算距离 (cm)return distance;
}// 障碍物跟踪控制
void Obstacle_Tracking() {float dist = Get_Distance();if(dist < 10) { // 前方障碍物太近 - 后退Motor_Backward();} else if(dist < 30) {// 理想跟踪距离 - 前进Motor_Forward();}else {// 寻找障碍物 - 旋转Motor_Turn_Right();}
}
4.   红外循迹算法
void Line_Tracking() {u8 track_status = (TRACK_L << 2) | (TRACK_M << 1) | TRACK_R;switch(track_status) {case 0b000: // 000 - 无线Motor_Forward();break;case 0b001: // 001 - 右偏Motor_Turn_Left();break;case 0b010: // 010 - 居中Motor_Forward();break;case 0b011: // 011 - 右偏Motor_Turn_Left();break;case 0b100: // 100 - 左偏Motor_Turn_Right();break;case 0b101: // 101 - T字路口Motor_Forward();break;case 0b110: // 110 - 左偏Motor_Turn_Right();break;case 0b111: // 111 - 十字路口Motor_Forward();break;}
}

 注:   传感器数据都在定时器中断里实时更新

实现效果 

51小车按键调速效果

51按键调速效果

51小车红外循迹效果

51小车红外循迹效果

51下车障碍物跟随效果

红外循迹

结语

通过这个51单片机智能小车项目,我们实践了:

  • 定时器中断配置

  • PWM波形生成

  • 多传感器数据融合

  • 实时控制系统设计

  • 人机交互实现

虽然51单片机资源有限,但通过精心设计仍然可以实现复杂的嵌入式系统。该项目不仅锻炼了硬件设计能力,也提升了软件优化技巧,是嵌入式开发入门的绝佳实践。

http://www.yayakq.cn/news/211784/

相关文章:

  • 广西网站建设推广wordpress资讯类主题破解版
  • 谷歌没收录网站主页 301重定向电子商务网站建设与管理实验目的
  • 电脑可以做服务器部署网站吗大连网页制作培训学校
  • 湖北省建设厅的网站销售公司简介模板
  • 济南专业网站开发公司网络广告营销方案策划
  • 网站做支付要多少钱怎样分析一个网站做的好坏
  • 青岛城市建设局网站wordpress评论内容不显示
  • 湖北省建设厅官方网站青海媒体网站建设公司
  • 做视频自媒体要投稿几个网站搜索引擎优化工具深圳
  • 湖北田源建设工程有限公司网站网站做系统叫什么名字
  • 深圳哪里网站制作用户登录
  • 仙桃网站设计公司宝安中心医院是三甲医院吗
  • 西宁建设工程官方网站培训课程设计
  • 如何查看网站做没做301跳转以下哪个选项不属于网络营销的特点
  • 小贷做网站企业解决方案参考网站
  • 江苏无锡网站推广及优化网页设计实训报告2000字
  • 昆山外贸型网站制作wordpress自动封面
  • 吉安网站制作公司排名淘宝上做网站 源代码怎么给你
  • 做网站用别人的图片黄金网站app下载免费
  • wordpress 主题nextseo属于运营还是技术
  • 深圳医疗网站建设报价保定网站建设推广公司怎么样
  • 上海高端网站建设wordpress内容管理
  • 唐山网站设计外国做图网站
  • 做家宴网站中小型网站建设与管理
  • 大庆网站设计呼和浩特网站建设电话
  • 北师大 网页制作与网站建设简述网站设计的开发流程
  • 济南网站建设第六网建赣州网站建设优化服务
  • 网站的flash怎么做网站建设 软件有哪些方面
  • 在IIs下建设一个网站html网页设计代码教程
  • 中江移动网站建设网站开发微信提现功能