历史上的今天
返回首页

历史上的今天

今天是:2025年01月24日(星期五)

正在发生

2018年01月24日 | 基于89C2051产生PWM信号来控制直流电机调速程序

2018-01-24 来源:eefocus

本例程利用2051的T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试。接L298N时相应的管脚上最好接上10K的上拉电阻。 
/* 晶振采用11.0592M,产生的PWM的频率约为91Hz */ 

#include 
#include 
#define uchar unsigned char 
#define uint unsigned int 
sbit en1=P1^0; /* L298的Enable A */ 
sbit en2=P1^1; /* L298的Enable B */ 
sbit s1=P1^2; /* L298的Input 1 */ 
sbit s2=P1^3; /* L298的Input 2 */ 
sbit s3=P1^4; /* L298的Input 3 */ 
sbit s4=P1^5; /* L298的Input 4 */ 
uchar t=0; /* 中断计数器 */ 
uchar m1=0; /* 电机1速度值 */ 
uchar m2=0; /* 电机2速度值 */ 
uchar tmp1,tmp2; /* 电机当前速度值 */ 

/* 电机控制函数 index-电机号(1,2); speed-电机速度(-100—100) */ 
void motor(uchar index, char speed) 

if(speed>=-100 && speed<=100) 

if(index==1) /* 电机1的处理 */ 

m1=abs(speed); /* 取速度的绝对值 */ 
if(speed<0) /* 速度值为负则反转 */ 

s1=0; 
s2=1; 

else /* 不为负数则正转 */ 

s1=1; 
s2=0; 


if(index==2) /* 电机2的处理 */ 

m2=abs(speed); /* 电机2的速度控制 */ 
if(speed<0) /* 电机2的方向控制 */ 

s3=0; 
s4=1; 

else 

s3=1; 
s4=0; 





void delay(uint j) /* 简易延时函数 */ 

for(j;j>0;j--); 


void main() 

uchar i; 
TMOD=0x02; /* 设定T0的工作模式为2 */ 
TH0=0x9B; /* 装入定时器的初值 */ 
TL0=0x9B; 
EA=1; /* 开中断 */ 
ET0=1; /* 定时器0允许中断 */ 
TR0=1; /* 启动定时器0 */ 
while(1) /* 电机实际控制演示 */ 

for(i=0;i<=100;i++) /* 正转加速 */ 

motor(1,i); 
motor(2,i); 
delay(5000); 

for(i=100;i>0;i--) /* 正转减速 */ 

motor(1,i); 
motor(2,i); 
delay(5000); 

for(i=0;i<=100;i++) /* 反转加速 */ 

motor(1,-i); 
motor(2,-i); 
delay(5000); 

for(i=100;i>0;i--) /* 反转减速 */ 

motor(1,-i); 
motor(2,-i); 
delay(5000); 




void timer0() interrupt 1 /* T0中断服务程序 */ 

if(t==0) /* 1个PWM周期完成后才会接受新数值 */ 

tmp1=m1; 
tmp2=m2; 

if(tif(tt++; 
if(t>=100) t=0; /* 1个PWM信号由100次中断产生 */ 

推荐阅读

史海拾趣

Hmc Inc公司的发展小趣事

在2010年代初,一家名为“HyperMemory Corp”的初创公司,在硅谷的隐秘实验室中,成功研发出了HMC技术。这项技术通过三维堆叠封装技术,极大地提升了内存带宽和能效,引起了业界的广泛关注。为了加速技术的商业化进程,HyperMemory Corp与多家行业巨头,包括英特尔和美光,建立了混合内存立方联盟(HMCC)。通过共享技术资源和市场渠道,HyperMemory Corp迅速成长为HMC技术的领军企业。

Altonics公司的发展小趣事

为了确保产品的质量和稳定性,Altonics公司建立了严格的质量管理体系。公司从原材料采购到产品出厂的每一个环节都进行严格把控,确保产品质量符合行业标准。同时,公司还引入了先进的质量检测设备和方法,不断提高产品质量检测的准确性和效率。这些措施使得公司的产品在市场上赢得了良好的口碑。

Alpha (Taiwan)公司的发展小趣事

面对全球环保意识的日益增强,Alpha (Taiwan)公司积极响应号召,致力于绿色电子产品的研发和生产。公司投入大量资金研发环保材料和技术,成功推出了一系列绿色环保电子产品。这些产品不仅具有优异的性能,而且在使用过程中对环境的影响较小,符合现代社会的环保理念。此外,公司还积极参与环保公益活动,宣传环保知识,推动电子行业的绿色发展。

AEM [ American Electronic Materials]公司的发展小趣事

随着全球经济的不断发展,AEM意识到要想在激烈的竞争中保持领先地位,必须进一步拓展全球市场。于是,公司开始实施全球扩张战略,积极开拓新的市场和业务领域。

在这个过程中,AEM与多家国际知名企业建立了战略合作关系。通过合作,AEM成功进入了欧洲、亚洲等多个重要市场,进一步提升了公司的品牌影响力和市场份额。同时,这些合作也为AEM带来了更多的技术资源和市场机会,促进了公司的持续发展。

Eurofarad公司的发展小趣事

在追求经济效益的同时,Eurofarad也积极履行社会责任,注重环保和可持续发展。公司采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,Eurofarad还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了基础。

普芯达电子(Chipswinner)公司的发展小趣事

普芯达电子的“中国风”系列产品是公司发展历程中的一个重要里程碑。该系列产品经过严格的质量控制和品质检测,以其优异的性能和可靠的品质赢得了市场的广泛认可。通过一系列的市场推广活动,“中国风”品牌逐渐深入人心,成为国产集成电路产品的代表之一。同时,普芯达电子还通过不断创新和优化产品,满足了客户日益增长的需求,进一步巩固了市场地位。

问答坊 | AI 解惑

模拟电子电路的解读

通常我们头脑发热,在网上找到一个电路图准备"发烧"一下的时候,通常要将这个电路图读懂。 那么什么是"读"电路图呢?所谓的读图,就是对电路进行分析。通过读图,能够对以后的制作,特别 是生产的过程,能够少走很少的弯路是很正常的。 在 ...…

查看全部问答>

protel99se 的 插件

上传一个protel99se 的 插件,用这个插件放大缩小电路图就不麻烦了。…

查看全部问答>

想学嵌入式系统,自己做点小项目

我在学校读的是应付用电子,会画点PCB,懂得电子基础,学过一点C,一点单片机,一点汇编,一点VB,都是学了一点,谈不上熟,出来工作有五年了,基本上没怎么接触这一块,现在想学嵌入式系统,自己搞点项目,对于我这种情况还能学不,各位大哥出个注意!…

查看全部问答>

智能手机的操作系统,哪个比较人性化?

最好把塞班 WM linux 黑莓OS...乱七八糟的挨个试用一遍,哈哈 你们觉得呢?…

查看全部问答>

一种简易高精度频率信号发生器的设计与实现

一种简易高精度频率信号发生器的设计与实现…

查看全部问答>

WinCE6.0修改.cpl文件属性

包括去掉文件保护,只读,隐藏等。(用代码的哦)…

查看全部问答>

EDB的一些API没有定义的问题

平台:自己定制的wince5.0平台,非mobile 问题:CeCreateDatabaseWithProps和CeCreateSession函数未定义;本机上没有wincebase_edb.h和coredll.dll; coredll.lib和winbase.h中没有这些函数的定义。    是我定制的平台有问题,还是winc ...…

查看全部问答>

哥今天估计被忽悠了

     本来,哥明天要去某家公司实习。      然后,直到昨天我才收到那家公司给我的地址和乘车路线。中午吃完饭我就照着路线找过去,想自个看看。本来我还想就是想看看哪家公司在那座写字楼就好了。 &nbs ...…

查看全部问答>

IAR5.XX关于实时查看变量变化的功能

在STVD(调试STM8)里watch变量有"ON THE FLY"可以实时查看变量的变化。 在IAR5.XX调试STM32F103XXX不知道有没有这样的功能??? 或者类似的功能也行啊??? 请IAR EARM 高手指点!!!…

查看全部问答>

ADC10数据显示

各位请教个问题, 我用launchpad的内部ADC10采集电压, 把转换后存到ADC10MEM内的值通过液晶显示出来 ,为什么最大显示的只能够是255呢 ?按理说应该是1023才对啊,是我哪没配置好吗?…

查看全部问答>