使用单片机AT89S52设计一台微型程控搅拌机

news/2024/11/25 23:52:21/

概述

之前在大学实验课上做过的一个设计题目,使用单片机AT89S52 / AT89C51控制直流电机进行高/低速正/反转,另有红、黄、绿LED灯指示电机状态,具体实现功能如下:
打开电源1s后:
电机高速正传5s,
暂停1s,
电机高速反转5s,
暂停1s
电机低速正传10s,
暂停1s,
电机低速反转10s,
暂停1s
电机高速正传5s,
暂停1s,
电机高速反转5s,
电机停转,搅拌结束。

思路与元器件选用

  • 使用AT89S52最小系统,通过keil编写C语言代码,3个端口控制指示灯,1个端口控制电机开/关,1个端口控制电机正/反转
  • 接入三极管放大电流,达到驱动电机的目的
  • 采用继电器实现H桥控制,完成开/关和正/反转
  • PWM调速,实现高/低速运转

电路图

使用proteus绘制,如图
在这里插入图片描述

代码实现


```c
//声明:未使用太多的子函数,直接码在主函数上了
#include <reg51.h>   //导入8051特殊功能寄存器定义及其可寻址位定义sbit led_green = P1^0;	 //定义 变量led_green 控制P1.0引脚
sbit led_yellow = P1^1;	 //定义 变量led_yellow 控制P1.1引脚
sbit led_red = P1^2;	 //定义 变量led_red 控制P1.2引脚
sbit Direction = P1^3;	 //定义 变量Direction (电机正/反转)控制P1.3引脚
sbit OnOff = P1^4;   //定义 变量OnOff(电机开/关)控制P1.4引脚
unsigned int i,j;
/*
ms级延时函数 delayMS,12MHz晶振,用于等待
参数:ms,i,j   	返回值:无
*/
void delayMS(unsigned int ms)  
{unsigned int i,j;for(i=0;i<ms;i++)	   for(j=0;j<150;j++);
}/*
电机低速函数 LowSpeed
参数:   	返回值:无
*/
void LowSpeed()
{OnOff = 1;delayMS(100);	//方波信号,占空比50%,周期200msOnOff = 0;delayMS(100);
}void LowSpeedL() //低速正转10s
{led_red = 1;led_yellow = 1;for(j=0;j<5;j++){led_green = 0; for(i=0;i<5;i++){LowSpeed();}led_green = 1;for(i=0;i<5;i++){LowSpeed();}}
}void LowSpeedR() //低速反转10s
{led_green = 1;led_yellow = 1;for(j=0;j<5;j++){led_red = 0; for(i=0;i<5;i++){LowSpeed();}led_red = 1;for(i=0;i<5;i++){LowSpeed();}}
}/*
暂停灯效函数 PauseLight ,1s 4下闪烁
参数:   	返回值:无
*/
void PauseLight()
{led_green = 1; led_red = 1;led_yellow = 0;delayMS(250);led_yellow = 1;delayMS(250);	led_yellow = 0;delayMS(250);led_yellow = 1;delayMS(250);	
}/*
主函数,调用其他子函数实现功能
*/
void main()
{led_green = 0; //绿灯亮led_yellow = 0;//黄灯亮led_red = 0;	 //红灯亮OnOff = 0;delayMS(1000); //打开电源1s后:OnOff = 1;	 //接通电机,高速Direction = 0; //正转led_green = 0; //仅绿灯亮led_yellow = 1;led_red = 1;	 delayMS(5000); //电机高速正转5sOnOff = 0;	 //中断电机PauseLight();  //暂停1sOnOff = 1;	 //接通电机,高速Direction = 1; //反转led_green = 1; //仅红灯亮led_yellow = 1;led_red = 0;delayMS(5000); //电机高速反转5sOnOff = 0;	 //中断电机PauseLight();  //暂停1sDirection = 0; //正转LowSpeedL();   //低速正转10sOnOff = 0;	 //中断电机PauseLight();  //暂停1sDirection = 1; //反转LowSpeedR(); //低速反转10sOnOff = 0;	 //中断电机PauseLight();  //暂停1sOnOff = 1;	 //接通电机,高速Direction = 0; //正转led_green = 0; //仅绿灯亮led_yellow = 1;led_red = 1;	 delayMS(5000); //电机高速正转5sOnOff = 0;	 //中断电机PauseLight();  //暂停1sOnOff = 1;	 //接通电机,高速Direction = 1; //反转led_green = 1; //仅红灯亮led_yellow = 1;led_red = 0;delayMS(5000); //电机高速反转5sOnOff = 0;Direction = 0; //停转
}

结语

本文或有瑕疵,见谅


http://www.ppmy.cn/news/258479.html

相关文章

双行星搅拌机的运用

龙鑫双行星搅拌机是一种万能搅拌分散设备&#xff0c;有高速分散、行星自传、行星公转三种复杂的运行&#xff0c;使物料在釜体内迅速分散研磨均匀&#xff0c;同时具有分散均匀、无死角、出料方便等优点。它广泛应用于高粘度、膏体状物料的混炼、搅拌、硫化、分散、研磨、重新…

2021-2027全球与中国厨房用食品搅拌机市场现状及未来发展趋势

本报告研究全球与中国市场厨房用食品搅拌机的产能、产量、销量、销售额、价格及未来趋势。重点分析全球与中国市场的主要厂商产品特点、产品规格、价格、销量、销售收入及全球和中国市场主要生产商的市场份额。历史数据为2016至2020年&#xff0c;预测数据为2021至2027年。 主要…

搅拌机学习

点选 鼠标右键 反点选 a 再按A全部点选再按a全取消 移动画面 鼠标中建 移动摄影机 鼠标中间shift 建立另一个视窗 鼠标移动到右上角变十字 shiftc 移动场景回中间 7 变上试图 5 变平视图&#xff0c;&#xff08;不透明&#xff09; 1 变前视图 3 变侧视图 ctr…

开源新型电磁式磁力搅拌机stm32f103

磁力搅拌器是用于液体混合的实验室仪器&#xff0c;主要用于搅拌或同时加热搅拌低粘稠度的液体或固液混合物。其基本原理是利用磁场的同性相斥、异性相吸的原理&#xff0c;使用磁场推动放置在容器中带磁性的搅拌子进行自旋运动&#xff08;市场上的搅拌子式的磁力搅拌均为此种…

Vue2的50个知识点

Vue2的50个知识点 原文地址&#xff1a;https://mp.weixin.qq.com/s/rqoZ5KWqT_1QAx91bJMeIg 1、Vue的优点&#xff1f;Vue的缺点&#xff1f; 优点&#xff1a; 渐进式组件化开发虚拟dom响应式数据单页面路由数据与视图分开 缺点&#xff1a; 单页面不利于seo不兼容IE首…

PyCaret初学者指南

&#x1f680;分类 PyCaret的分类模块是一个监督机器学习模块&#xff0c;用于将元素分类到组中。 目标是预测离散和无序的类别标签。一些常见的用例包括预测客户违约&#xff08;是或否&#xff09;、预测客户流失&#xff08;客户将离开或留下&#xff09;、发现疾病&#x…

水中声源级SL的求解应用举例

水中声源级SL的求解应用举例 在水声学中&#xff0c;经常会遇到声源级的概念&#xff0c;并根据声源级的大小估计其他重要参数&#xff0c;本文举例说明声源级的概念和定义。 一、声源级的定义 声源级用来描述声音辐射源所产生声信号或噪声在1m距离处的声强量级。其定义为 S …

小米3刷android 6.0,安卓6.0版MIUI7曝光:小米3/小米4/小米Note将尝鲜

IT之家讯 12月4日消息&#xff0c;由于可以刷入Win10 Mobile系统&#xff0c;小米手机4在近段时间颇受关注。而在此之前&#xff0c;因为适配该机的MIUI7版本为Android 4.4内核&#xff0c;也引得不少用户吐槽和抱怨。现在&#xff0c;来自小米内部人士的最新消息显示&#xff…