我用AT89C51连接电机驱动芯片L298N,控制直流伺服电动机的转速,正传反转不是问题,关键是电机转速有要求

作者&投稿:鄞莎 (若有异议请与网页底部的电邮联系)
怎样用89c51和l298n控制一个普通直流电机的转速和正反转~

#include
sbit K1 =P0^0; //PWM值增加键
sbit K2 =P0^1; //PWM值减少键
sbit pwm=P1^0;
sbit pwm1=P1^2;
unsigned char PWM=0x7f ; //赋初值
/*********************************************************/
void delayms(unsigned char ms) // 延时子程序
{
unsigned char i ;
while(ms--)
{
for(i=0 ; i<114 ; i++)
;
}
}
/*********************************************************/
void main()
{
TMOD=0x21;//timer1为8位定时器,timer0为16位定时器方式1
TH0=0xfe; //1ms延时常数
TL0=0x66; //频率调节

TH1=PWM; //脉宽调节
TL1=0; //每次定时器中断,TL1会自动装载

EA=1;
ET0=1;
ET1=1;
TR0=1;

while(1)
{
do{
if(PWM!=0xff)
{
PWM++ ;
delayms(10);
}
}while(K1==0);

do{
if(PWM!=0x01)
{
PWM-- ;
delayms(10);
}
}while(K2==0);

}
}

/*********************************************************/
void timer0() interrupt 1 //定时器0中断服务程序 (频率)
{
TR1=0; //先把定时器1关掉
TH0=0xfe; //1ms延时常数
TL0=0x66; //频率调节

TH1=PWM;
TR1=1;

pwm=0; //启动输出
pwm1=0; //启动输出
}

/*********************************************************/
void timer1() interrupt 3 //定时器1中断服务程序 (脉宽)
{
TR1=0 ;
pwm=1 ; //结束输出
pwm1=1 ; //结束输出
}
/*********************************************************/

调整定时时间就行,输出正反电平

L298N能实现pwm平滑调速,主要通过in1和in2,in3,in4口通pwm波来实现。
不是通过pwm调节占空比,是通过单片机来生成不同占空比的pwm波。不同占空比的pwm波(TTL电平)通过L298N的输入in口,转换成电压较高的pwm波加到电机上就相当于控制了电机的供电电,就实现了调速。 你生成pwm的占空比越大输出的电压就越大。 还有单纯的开环控制是不能实现转速恒定的,干扰一来就转速就变了,开环只针对负载和工作状况相对不变的情况下。你只能调节占空比来观察在多少占空比时达到了。要不然你就加转速闭环吧,加一个速度传感器,做个闭环控制。。


74hc573与AT89C51怎么连
我不同意楼下的说法,我觉得应该把AT89C51的某个8位I\/O口接到74HC573的8位D口,至于锁存器的使能端和锁存端就按你的控制信号的来源接到单片机的某个I\/O口上 ,是用单片机来控制这个系统,51产生控制信号,然后通过锁存器送到外电路,锁存器的输出端Q0到Q7是接外部电路 ...

AT89C51与7sEG显示怎么连
断码显示器有单个的和多个的?单个的段码显示器共有8个引脚。如果你用proteuse软件的话能看到左面有七个引脚,下边有一个引脚(这种是共阴极的,共阳极的是上边有一个引脚)。下边的引脚要接地(如果是共阳极的就要接电源)。左边的7个引脚找一个I\/O口一一与其连接(最好不要找P0,需接上拉电阻...

at89c51的单片机 我的实验箱有at89c51的单片机和串行接口max232,如何在线...
at89c51不支持在线下载程序,C系列都不支持,只能用编程器烧录,如伟纳SP200,E51都行;S系列才支持在线下载程序,可以用并口线或USBASP在线下载。STC系列的51单片机可以直接用max232在线下载。连线方式可以百度图片“串口通信”就有了,程序也下样,电脑软件随便下个 “串口调试助手”软件即可。

请教高手 AT89C51单片机与时钟源的连接方式?
是晶振吗?晶振的话直接就可以连,在它的18。19管脚接上

您好,我有个问题,我用了NRF24L01与AT89C51单片机相连,我不会设置波特率...
这个是SPI接口连接,是同步通信,有时钟信号,波特率不用设置,单片机没有SPI接口,用普通IO口模拟,如果不想让传输速度过高,可以在高低电平之间加空操作语句

用at89c51单片机的定时\/计数器T0汇编语言设计
2. 电路原理图 图4.31.1 3. 系统板上硬件连线 (1). 把“单片机系统”区域中的P0.0-P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。(2). 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。(3)....

在用PT2262和AT89C51单片机做的无线发射模块中,他们间的接口怎么连?万...
PT2262数据端(10,11,12,13)、TE(14)分别接P0,先对数据端置数据码,再置TE有效。都是低电平有效

AT89C51单片机如何扩展数据存储
分别连到51单片机的低八位P0口;O较多余直接用I\/把扩展的数据存储器,片选再加译码器选通或51I\/,和高8为P2口(由低到高)

AT89C51这个电路图,和c语言程序在在这里,求解释下步骤,或者解释下按 ...
图不太清楚,看连线位置,按钮连的是外部中断0。代码中IT0=1。就是下降沿触发,按钮按下时接地,触发中断0,执行中断的代码,使得所有Led亮灭一次。当不按按钮时,只执行主函数循环中的流水灯闪烁,从低位到高位依次闪烁。(i初值1,*2就是2进制由低到高依次取1,P0&=~i,就是P0对应位取0)...

AT89C51和ADC0809连接,AT89C51和PC机连接,如何编程实现单片机控制adc080...
童鞋,恕我直言,您这个是再简单不过的设计了,你用1小时,上网找找资料,用点心,一定可以解决。程序我建议你还是自己编,毕竟你是学这个专业的。如果连这么基础的东西都搞不定,我觉得给你程序代码,恐怕你也烧不到单片机里去吧……顺便再提醒你下,你的原理图有致命的错误。AT89C51的RXD与TXD端口(...

宁晋县15614704118: 我用AT89C51连接电机驱动芯片L298N,控制直流伺服电动机的转速,正传反转不是问题,关键是电机转速有要求 -
松骅舜止: L298N能实现pwm平滑调速,主要通过in1和in2,in3,in4口通pwm波来实现. 不是通过pwm调节占空比,是通过单片机来生成不同占空比的pwm波.不同占空比的pwm波(TTL电平)通过L298N的输入in口,转换成电压较高的pwm波加到电机上就相当于控制了电机的供电电,就实现了调速. 你生成pwm的占空比越大输出的电压就越大. 还有单纯的开环控制是不能实现转速恒定的,干扰一来就转速就变了,开环只针对负载和工作状况相对不变的情况下.你只能调节占空比来观察在多少占空比时达到了.要不然你就加转速闭环吧,加一个速度传感器,做个闭环控制..

宁晋县15614704118: 求问AT89C51与L298n芯片驱动步进电机,完整的电路图 -
松骅舜止: 找L289N的(pdf的或其他的)资料,看他的经典接法,一般按经典接法去接的话都是可行的 此图供参考,还有其他的资料,看多也会乱,就按经典接法试一试吧!!pdf资料要的话吼一声!!呵呵 我的不用上拉电阻的,你分析下,电平高低由稳压管保证,IN1-IN4就是输出PWM的

宁晋县15614704118: 89C51单片机与步进电机驱动器如何连接? -
松骅舜止: 我刚做过这个实验,我用的L298驱动的,L298比ULN2003便宜点,要是用ULN2003的话,可以单路输入 单路输出,ULN2003的1,2,3,4,5,6,7引脚输入分别对应的输出是16,15,14,13,12,11,10,你是4相电机,随便选择其中的4对就行拉,然后8脚接地,9脚接12V电压,实际上ULN2003里有个反相器,所以你可以在单片机输出时接个反相器,然后再接ULN2003,而我没有接反相器,我把程序给改了改,就省去了一个芯片,只要把程序里表里的数据0变1,1变0就行拉

宁晋县15614704118: 各位兄弟AT89C51与两块驱动芯片8155如何连接 -
松骅舜止: 貌似可以 PO口除外. 我们一般把数码管正极接电源 负极接IO口.

宁晋县15614704118: 如何使用单片机at89c51驱动4位8段数码管,如果用到芯片来驱动的,电路图如何连接? -
松骅舜止: 看你将四位数码管接在单片机的哪一组输出口 例如51单片机一般都是四组八位输i/o口P0,P1,P2,P3口 一般P0口是三态i/o是要接上拉电阻的.其他接口是不用接上拉电阻的.上拉电阻一般选用1k~4k7都可以保证各管脚输出的电流小于500mA就可...

宁晋县15614704118: at89c51单片机控制步进电机
松骅舜止: 此问题已经回答过一次了.简单方法还是建议使用步进电机驱动时序产生IC--L297N之类的芯片或是其它驱动IC,用51单片机驱动时序很难产生.速度可通过给297的时钟频率确定,正反转也是通过IO口控制,接口简单,手册有详细的硬件连接图.

宁晋县15614704118: 单片机PWM直流电机调速 -
松骅舜止: 扩展一个定时芯片8253.可以有3路定时器,2s实现方法:定时器设置定时长度为50ms,在定时器中断里面计数,就是让一个变量,在这个中断里面+1,当这个变量=20的时候,就是1秒了,程序里面判断这个数是否=20,如果是,则跳转到反转...

宁晋县15614704118: 89c51单片机编程产生PWM去驱动一个5v 2.5w的直流电机,采用8050或8550三极管作为驱动,用H桥驱动! -
松骅舜止: 使用DAC芯片+单片机产生PWM波去驱动直流电机吧

宁晋县15614704118: 求AT89C51接L298N控制电机的详细电路图 并通过开关的闭合来控电动机正转 反转 大家帮帮忙 谢谢了啊 -
松骅舜止: 这个很简单的啊你用P0.1输出不同的信号就可以控制正转和反转了啊然后在用P0.0控制它的启动外面接上拉电阻和三极管在接个继电器控制启动的只要这几个东西就可以了至于程序的话很简单的呢你自己想想咯或是看看C51的书里面也有相关的例子

宁晋县15614704118: 单片机中用at89c51控制74hc595驱动双联装数码管怎么连接线路?怎么写程序? -
松骅舜止: 主要看你的数码管是共阴还是共阳的,如果是共阳那就好办,595的8个输出连数码管的7段和小数点,然后两个位选直接用8550驱动就行了,程序的思路就是先选通位,然后给595段码,然后延时再选通另外一位再给595段码延时,一直重复这个就行了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网