单片机控制光耦开关继而控制电机转动

实验二 单片机控制光耦开关继而控制电机转动

  • 一、功能实现

通过开关控制单片机输出高低电平,继而控制光耦和继电器开关,从而实现控制电机转动。

  • 二、电路原理

当单片机检测到开关闭合时(P1.2引脚检测到低电平),单片机会输出一个高电平(P2.2引脚置高),故后面连接的三极管导通,光电耦合器导通,从而使后面电路的三极管导通,继电器闭合,所以电机开始转动。同理,当单片机检测到开关断开时(P1.2引脚检测到高电平),单片机会输出一个低电平(P2.2引脚置低),故后面连接的三极管截止,光电耦合器断开,从而使后面电路的三极管截止,继电器断开,所以电机停止转动。使用光电耦合器件实现了隔离作用,避免后面的电路对前面的电路产生影响,使用继电器是因为提高驱动能力,为电机提供足够大的电流。

  • 三、电路原理图

  • 四、物料清单(小器件未计成本)

  • 五、仿真工具选择论述

现有的主流仿真工具有Altium Designer、Multisim、Proteus、Cadence、LTspice、Electronic Workbench、Matlab、TINA-TI、Infineon Designer。此次仿真我使用Proteus,Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件,支持电路图设计、PCB 布线和电路仿真。Proteus 支持单片机应用系统的仿真和调试,使软硬件设计在制作 PCB 板前能够得到快速验证,不仅节省成本,还缩短了单片机应用的开发周期。Proteus 是单片机工程师必须掌握的工具。Proteus 软件分为 ARES 和 ISIS 模块,ARES 用来制作 PCB,ISIS 用来绘制电路图和进行电路仿真。

  • 六、仿真结果

1、开关闭合时仿真,电机转动(最终达到500转/s)

2、开关断开时,电机停止转动

  • 程序代码

//单片机:AT89S52

//系统晶振:12MHz

#include <reg52.h>

#define uchar unsigned char

#define uint  unsigned int

//引脚定义

sbit switch_1=P1^2;

sbit motor=P2^2;

//功能:延时1毫秒

//入口参数:x

//出口参数:

void Delay_xms(uint x)

{

  uint i,j;

  for(i=0;i<x;i++)

    for(j=0;j<112;j++);

}

//功能:电机开

void Motor_On(void)

{

motor=1;

}

//功能:电机关

void Motor_Off(void)

{

motor=0;

}

//主函数

void main(void)

{

Delay_xms(50);//等待系统稳定

motor=0;

while(1)

{

  if(switch_1==0)

  {

     Motor_On();

       Delay_xms(1000);

  }

   if(switch_1==1)

  {

     Motor_Off();

       Delay_xms(1000);

  }

}

}

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小蜗牛,大大梦想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值