历史上的今天
返回首页

历史上的今天

今天是:2025年06月19日(星期四)

正在发生

2018年06月19日 | 51单片机PWM程序详解

2018-06-19 来源:eefocus

#include     //程序是基于KEIL-C51编写,引入8051头文件

sbit P10=P1^0;

sbit P11=P1^1;

unsigned int scale;   //占空比控制变量

void main(void)       

{ unsigned int n;     //延时循环变量

    TMOD=0x02;        //定时器0,工作模式2(0000 0010),8位定时

    TH0=0x06;         //定时250us(12M晶振)

    TL0=0x06;         //预置值

    TR0=1;            //启动定时器0

    ET0=1;            //启动定时器0中断

    EA=1;             //开启总中断

  while(1)   

  { 

        for(n=0;n<50000;n++);    //延时一段时间

        scale++;                 //占空比控制变量加一

        if(scale==10)  scale=0;  //达到循环的效果

  } 


timer0() interrupt 1             //定时器0中断程序 

    static  unsigned int  tt ;   //tt用来保存当前时间在一个时钟周期的位置

    tt++;                        //每中断一次,即每经过250us,tt的值自加1

    if(tt==10)                   //中断10次定时2.5ms,

    { 

        tt=0;                    //使tt=0,开始新的周期,达到循环的效果

        P10=0;                   //点亮LED

    } 

    if(scale>=tt)                //如果占空比与中断次数相同时,此时输出高电平

    P10=1;                       //熄灭LED灯


    /*

    前面的程序是将占空比设置成了10个等级,scale=1时维持高电平的时间

    是1/10个PWM周期(这里是2.5ms),因为scale<=tt的时间段是低电平点亮LED灯的,

    scale>=tt的时间是熄灭LED灯的,通过改变一个周期内高低电平维持的时间长短

    就可以控制LED灯的亮度或者是电机的转速了,这就是PWM的工作原理

    */

PWM原理: 
这里写图片描述

参考文章:单片机中PWM的原理与控制程序

对程序稍作修改变为对电机的转速控制,在proteus8.4仿真如下: 
这里写图片描述


推荐阅读

史海拾趣

Great American Electronics公司的发展小趣事

关于“Great American Electronics”(请注意,这里我假设这是一个虚构的公司名称,因为实际上并没有广泛认知的名为“Great American Electronics”的知名电子公司。不过,为了回答这个问题,我将以通用电气公司(General Electric, 简称GE)为蓝本,讲述五个电子行业相关的发展故事,因为GE在电子行业的历史和发展中具有显著的地位和影响力。)

1. 电气时代的开创者

故事背景:通用电气公司(GE)的起源可以追溯到美国发明家托马斯·阿尔瓦·爱迪生。1878年,爱迪生成立了爱迪生电灯公司,并在新泽西州的门洛帕克实验室发明了第一只商用白炽灯。1882年,爱迪生照明公司在纽约建造了美国第一个中央发电站,开启了电气时代。尽管爱迪生并未直接参与GE的成立,但他的贡献为GE的后续发展奠定了坚实的基础。

关键事件:爱迪生将电力商业化,使电力成为了一种可以广泛应用的能源形式。这一创举不仅改变了人们的生活方式,也为GE在电气行业的崛起提供了历史性的机遇。

2. 合并与转型的里程碑

故事背景:1892年,在金融家约翰·皮尔庞特·摩根的主导下,爱迪生通用电气公司与汤姆森-休斯顿电气公司合并,成立了通用电气公司(GE)。这一合并标志着GE从单一的电力业务向多元化发展的转型。

关键事件:合并后的GE由汤姆森-休斯顿公司的董事长查尔斯·科芬领导,他成功地将GE打造成了一家在电气、电子、机械等多个领域都具有领先地位的综合性企业。科芬的管理理念和组织结构设计为GE日后的长期发展奠定了坚实的基础。

3. 科研与创新的典范

故事背景:在查尔斯·科芬的领导下,GE建立了美国第一家研究实验室,并致力于推动科技创新和产品研发。这一举措使得GE在多个技术领域取得了重大突破。

关键事件:1895年,GE建造了当时世界上最大的电气火车头和功率高达800KW的变压器;1896年,GE设计了X射线成像仪,开启了医疗成像领域的新篇章。这些创新成果不仅展示了GE的技术实力,也为公司带来了丰厚的商业回报。

4. 战争与扩张的机遇

故事背景:两次世界大战为GE提供了巨大的发展机遇。在战争期间,GE凭借其强大的生产能力和技术实力,为军队提供了大量的电气设备和武器装备。

关键事件:第一次世界大战后,GE在新兴的电工技术部门——无线电方面居于统治地位;第二次世界大战则使GE的产量和利润额急剧增长。战争期间的扩张不仅增强了GE的市场地位,也为公司带来了丰富的技术积累和人才储备。

5. 全球化与多元化的战略

故事背景:进入20世纪后半叶,GE开始实施全球化和多元化战略,通过并购和合作等方式不断拓展业务范围和市场版图。

关键事件:在杰克·韦尔奇的领导下,GE从一家制造企业转变为以服务业和电子商务为导向的企业巨头。韦尔奇推行的“六西格玛”质量标准、全球化和电子商务战略几乎重新定义了现代企业。同时,GE还通过收购阿尔斯通、贝克休斯等知名企业进一步巩固了其在轨道交通、电力电网、油气等领域的领先地位。如今,GE已经成为全球最大的提供技术和服务业务的跨国公司之一,在电子行业中具有举足轻重的地位。

GMT(致新科技)公司的发展小趣事
检查定时电路中的连接线是否松动或断裂。如果连接线有问题,应及时修复或更换。
FerriShield公司的发展小趣事

为了进一步推动技术创新和产品研发,FerriShield积极寻求与高校和研究机构的合作。公司与多所知名大学建立了产学研合作关系,共同开展新材料、新工艺的研究和开发。这些合作不仅提升了FerriShield的技术实力,还为公司培养了一批高素质的研发人才。

Advanced Monolythic Ceramics公司的发展小趣事

在快速发展的同时,FerriShield始终不忘履行社会责任。公司积极参与环保事业,推动绿色生产和可持续发展。此外,FerriShield还设立了奖学金和助学金,支持贫困地区的青少年接受教育。这些举措体现了FerriShield作为行业领导者的责任与担当。

以上五个故事均基于FerriShield公司的发展历程和事实描述,展现了其在电子行业中的成长和进步。

Applied Engineering Products (AEP)公司的发展小趣事

随着公司规模的扩大和产品种类的增多,AEP公司意识到质量管理的重要性。公司引进了一套先进的质量管理体系,从原材料采购、生产过程到产品出厂,每一个环节都进行严格的质量控制。同时,公司还加强了对员工的培训和管理,确保每一名员工都能严格按照质量标准进行操作。这一举措大大提高了AEP公司的产品质量和客户满意度,为公司的长期发展奠定了坚实基础。

Hanghsing Enterprise Co Ltd公司的发展小趣事

随着公司规模的扩大和产品种类的增多,AEP公司意识到质量管理的重要性。公司引进了一套先进的质量管理体系,从原材料采购、生产过程到产品出厂,每一个环节都进行严格的质量控制。同时,公司还加强了对员工的培训和管理,确保每一名员工都能严格按照质量标准进行操作。这一举措大大提高了AEP公司的产品质量和客户满意度,为公司的长期发展奠定了坚实基础。

问答坊 | AI 解惑

ARM教材(浙江大学)

这绝对是内部资料,分享下…

查看全部问答>

【藏书阁】锁相与频率合成技术

本书讲述模拟与数字锁相环及频率合成器的理论,组成,性能测试和设计,对单环数字式频率合成器,集成电路频率合成器,微计算机控制的频率合成器等作了详细的 阐述. 本书供各类高校本科生作专业课教材用.…

查看全部问答>

wince 驱动如何发送自定义消息??

我想实现在驱动中发送自定义消息。为什么总是无法接收到,也不知道是否发送。 使用SendMessage()函数。 SendMessage(HWND_BROADCAST,WM_COPYDATA ,(WPARAM)(&g_KeyCode),(LPARAM)(&g_KeyCode)); WM_COPYDATA的响应函数根本记不响应。 难道win ...…

查看全部问答>

把iptables移植到linux内核

在宿主机Red Hat Linux 9.0上安装iptables-1.3.6是可以用的,但我修改了内核路径和可执行文件路径到ARM文件系统后烧到板子(内核是Linux-2.6.8.1)上,使用iptables命令时出现bash: /sbin/iptables: cannot execute binary file,我想知道为什么在宿主机 ...…

查看全部问答>

新手问一个EVC很白痴的问题,给予100分

对话框上加了一个编辑框,定义这个编辑框的成员变量为m_now;再按扭里写了当前时间获取的代码SYSTEMTIME tm;     GetSystemTime(&tm);但是怎么把tm的值赋给m_now啊,我做了好几种办法都不对,大家帮帮我啊 …

查看全部问答>

紧急求助:pxa270下SDIO wifi模组的驱动 Marvell 8686

请问谁能发给我一份在PXA270下可以使用的SDIO WIFI模组的驱动,模组型号是USI的WM-G-MR-09,模组使用的芯片是Marvell 8686. 我手里有厂商给的驱动,名称是:SD-8686-WM60-ARMV4I-9.70.3.p23-38.p44.CAB,但是这份是基于PXA310和wince6.0的驱动,我 ...…

查看全部问答>

请教版主,关于fsmc功能地址复用功能的疑惑

版主你好,请问fsmc功能的地址总线复用是不是就对nor而言的,那个8位数据宽度设置是不是对nor是无效的,只能是16位或者32位。复用的时候模式是不是选择D模式…

查看全部问答>

MC34063问题

本帖最后由 paulhyde 于 2014-9-15 04:02 编辑 我们用MC34063做了一个DC-DC降压模块,但是输出不是很稳定,开关稳压为什么会不稳定的?  …

查看全部问答>

惊艳网友!宅男10天自制“iPad”

花费800元,感动女友,惊艳网友都说大学毕业是校园爱情的一道坎,很多恋人由于毕业分隔两地,不能见面就很容易分手。最近有一个大四学生为避免这个爱情魔咒,专门为女友自制了一台平板电脑,可以每天视频聊天。女友晒出这台电脑的照片,引来了无数 ...…

查看全部问答>