|
1、运行时,按下相应的按键,电机即可产生正转、反转、停止的效果。同时相应的 LED 指示灯也会点亮。
当 P1.0 输出低电平时:Q3,Q2 截止,Q7,Q1 导通,电机左端输出高电平;
P1.1 输出高电平时:Q8,Q4 截止,Q6,Q5 导通,电机右端输出低电平,此时,电机正转。
反之,当 P1.0 输出高电平时:Q3,Q2 导通,Q7,Q1 截止,电机左端输出低电平;
P1.1 输出低电平时:Q8,Q4 导通,Q6,Q5 截止,电机右端输出高电平,此时,电机反转。
当 P1.0 输出低电平时;P1.1 输出同时也输出低电平:电机两端均为高电平,电机停止转动。
2、需要注意的是,本例仅仅只是演示电机的正反转和停止的控制。在实际应用中,这种电路是不能稳定可靠的工作的。
具体实际应用电路,需要参考相关资料。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
按下 正转按键 电机正转
正转
按下 反转按键 电机反转
反转
按下 停止按键 电机停止
停止转动
停止仿真
代码:
- #include <reg52.h>
- #include <intrins.h>
- // 定义 3 个按键对应的引脚
- sbit K1 = P3^0; // 正转
- sbit K2 = P3^1; // 反转
- sbit K3 = P3^2; //停止
- // 定义 3 个 LED 对应的引脚
- sbit LED1 = P0^0;
- sbit LED2 = P0^1;
- sbit LED3 = P0^2;
- //定义电机的两个引脚
- sbit MA = P1^0;
- sbit MB = P1^1;
- void main(void) {
- LED1 = 1; // 开始 3 个 LED 全部熄灭
- LED2 = 1;
- LED3 = 1;
-
- while (1) {
- if (K1 == 0) { // 判断那个按键按下
- while (K1 == 0); // 直到按键松开才进入下一步处理
- LED1 = 0;
- LED2 = 1;
- LED3 = 1;
- MA = 0; // 正转
- MB = 1;
- }
- if (K2 == 0) {
- while (K2 == 0);
- LED1 = 1;
- LED2 = 0;
- LED3 = 1;
- MA = 1; // 反转
- MB = 0;
- }
- if (K3 == 0) {
- while (K3 == 0);
- LED1 = 1;
- LED2 = 1;
- LED3 = 0;
- MA = 0; // 停止
- MB = 0;
- }
- }
- }
复制代码
压缩包解压后的文件夹结构
文件夹内容
Proteus8工程文件 路径
Proteus8工程
hex文件 路径
hex文件
Keil4工程文件 路径
Keil4工程
源文件 路径
源文件
各个文件所在文件夹压缩包51hei下载
电机正反转控制.rar
(661.88 KB, 下载次数: 65)
|
评分
-
查看全部评分
|