ttjq.net
当前位置:首页 >> At89C51单片机控制的直流电动机pwm调速 (两个ir2112驱动mos)的程序和protEus... >>

At89C51单片机控制的直流电动机pwm调速 (两个ir2112驱动mos)的程序和protEus...

/************头文件*********/ #include<reg51.h> #include<absacc.h> #include <intrins.h> /************************** / /********自定义变量********/ #define uint unsigned int //自定义变量 #define uchar unsigned char char gw,sw,bw,qw; uchar j; //定时次数

H桥+定时器模拟PWM波控制就行了,或者选带PWM输出的51单片机 STC系列的很多

正在做AT89S52的PWM调速,应该是一样的#include<reg52.h>#define uchar unsigned char sbit zz=P1^0; sbit fz=P1^1; sbit K1=P3^2; sbit K2=P3^3; uchar PWM,a=0; void main() { TMOD=0X01; TH0=0XFF; TL0=0XF6; TR0=1; ET0=1; EA=1;

靠,这么简单的功能还要用单片机和ADC?直接用几个电压比较器和全桥驱动电路搞定了!你要偏想用单片机做的话,好办.网上ADC0809的程序一大堆,找个ADC测量转换的子程序,直接拿过来,写点ifelseelseelse的条件选择程序,完事了.硬件电路,可以用全桥(H桥)电路驱动电机,用几个三极管搞定了,这个电路网上也一大堆,很容易的.我也是从学生过来的,把你钱收起来,都是父母的血汗,如果只是单纯应付老师学校,那是你的悲哀,真正自己学会了,我替你高兴,替中国的教育高兴!虽然我不算什么,但是我会这样.

同志 有答案了吗

用的那种,单片机.需要的话联下我,我看看我给做吧.

PWM调速关键看占空比啊,当然输入频率也是要考虑的,L298的最佳输入频率好像是100Hz.根据你的要求,可以用一个定时器是实现:先定时X毫秒,定时中断后在中断程序里:将驱动引脚置“1”,再定时Y毫秒;定时中断后在中断程序里:将驱动引脚置“0”.然后再定时X毫秒依次循环,同时时定义一个变量Z,在中断程序里记录时间:Z=Z+X+Y.当Z>2000毫秒时换转向并使Z归零.比如X=5毫秒,Y=5毫秒.z=0;z=5;z=10;z=2000,切换转向并且把z置零.

PWM调速的,#include <absacc.h>#include <reg51.h>#include <stdio.h>bit flag=1;unsigned char pwm=0;unsigned char a,b;sbit P21=P2^1;sbit P20=P2^0;void sdf() interrupt 3 using 0 //定时255us,0.063s{P1=0x00;if(flag==1) {a--; if(a==0) {flag=0;

这个程序以前做遥控小车的时候写过,很长,不过控制L298的很短的,楼主只需要控制 L298的ENA,ENB,IN1,2,3,4的高电平时间长短,也就是占空比就可以控制左右电机的速度了,原理自己百度文库很简单的,我是用定时器控制的,没办法,52单片机没PWM功能,呵呵

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.ttjq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com