历史上的今天
今天是:2025年06月01日(星期日)
2021年06月01日 | 51单片机仿真实例 ,直流电机的正反转演示实例
2021-06-01 来源:eefocus
简介:基于proteus的51单片机仿真实例之直流电机的正反转演示实例。本例运行时,按下相应的按键,电机即可产生正转、反转、停止的效果。同时相应的LED指示灯也会点亮。
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、需要注意的是,本例仅仅只是演示电机的正反转和停止的控制。在实际应用中,这种电路是不能稳定可靠的工作的。具体实际应用电路,请参考相关资料。
3、在keil c51中新建工程ex73,编写如下程序代码,编译并生成ex73.hex文件
// 直流电机模拟演示
#include #include sbit K1 = P3^0;//定义3个按键对应的引脚,正转 sbit K2 = P3^1;//反转 sbit K3 = P3^2; //停止 sbit LED1 = P0^0;//定义3个LED对应的引脚 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; } } } 4、在proteus中新建仿真文件ex73.dsn,电路原理图如下所示 5、将ex73.hex文件载入at89c51中,启动仿真,观察运行结果。下图是程序运行时,电机正转结果
史海拾趣
|
射频识别是一种非接触的自动识别新技术,它成功地实现了多目标的跟踪与识别,以非接触性、识别速度快、可以多卡识别等优于其他自动识别技术的特性受到广泛重视。 近年来,超高频频段射频识别系统应用的要求推动了超高频读写器和电子标签的研究和开 ...… 查看全部问答> |
|
随着时代的发展,以及用户对安全防范要求的日益提高,监控光端机在安防领域得到越来越广泛的运用,视频监控已成为一种普通的需求。下面就视频监控系统的构建和未来发展趋势展开探讨。互联网技术及应用的飞速发展影响到了视频监控领域,利用廉价的IP ...… 查看全部问答> |
|
产品规格: 1. 处理器与内存 ? CPU:S3C6410,主频667M ? RAM:128M ? FLASH:1Gbit ? MicroSD卡 ...… 查看全部问答> |
|
本人有一套cadence(allegro)使用教程共7CD,包括cadence破解软件和内部视频讲义,(网上是下不来的,就是有也不完全)这份讲义很经典,声音和画面都非常清晰,是初学者不可多得的教程,您如果觉得看书比较慢和比较痛苦就看看视频教程吧,相信您能得 ...… 查看全部问答> |
|
为什么我的程序在运行后,我查看寄存器的值都是0啊,看不到变化。 比如我查看寄存器PE_ODR的值,程序暂停后,我watch寄存器PE_ODR的值总是为0x00,而实际上我用示波器测的话,是0xaa,跟我设定的一样。 我想问一下,是不是用SWIM接口,只能 ...… 查看全部问答> |
|
#include \"hw_types.h\"#include \"hw_memmap.h\"#include \"hw_ints.h\"#include \"hw_gpio.h\"#include \"hw_pwm.h\"#include \ ...… 查看全部问答> |




