历史上的今天
返回首页

历史上的今天

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

正在发生

2018年06月19日 | 单片机PWM舵机控制原理

2018-06-19 来源:eefocus

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度舵机为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

 

如下图可形象地表示脉冲与角度关系

 

#include  

unsigned char count;            //0.5ms次数标识  

sbit pwm=P1^0;              //信号输出  

sbit jia=P1^1;              //角度增加按键  

sbit jan=P1^2;              //角度减小按键  

char jd;                    //角度标识  

void delay(unsigned int i)  

{  

    unsigned int j,k;  

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

        for(k=125;k>0;k--);  

}  

void Time0_init()           //定时器初始化  

{  

    TMOD=0x01;  

    IE=0x82;  

    TH0=0xff;  

    TL0=0x19;               //12晶振,0.25ms  

    TR0=1;                 //定时器开始  

}  

void Time0_int() interrupt 1            //中断程序  

{  

    TH0=0xff;  

    TL0=0x19;  

    if(count

        pwm=1;  

    else  

    pwm=0;    //其余输出低电平  

    count++;  

    count=count%40;  //时钟保持40个count 即20ms  

}  

void keyscan()              //按键扫描  

{  

    if(jia==0)              //角度增加键是否按下  

    {  

        delay(50);          //按下延时,消抖  

        if(jia==0)  

        {  

            jd++;           //角度标识加1  

            count=0;        //按键按下,则20ms周期重新开始  

            if(jd==50)  

                jd=9;            //已经是180°则保持  

                while(jia==0);   //等待按键放开  

        }  

    }  

    if(jan==0)                   //角度减小键是否按下  

    {  

        delay(10);  

        if(jd==0);  

        {  

            jd--;                //角度标识减1  

            count=0;  

            if(jd==0)  

                jd=1;  

            while(jan==0);  

        }  

    }  

}  

  

void main()  

{  

    jd=1;  

    count=0;  

    Time0_init();  

    while(1)  

    {  

        keyscan();  

//      display();  

    }  

}  


推荐阅读

史海拾趣

Allied Controls Incorporated公司的发展小趣事

Allied Controls Incorporated(ACI)是一家专注于设计和制造温度传感器和控制器的公司,以下是其发展历程的五个相关故事:

  1. 创立和早期发展: Allied Controls Incorporated成立于1983年,总部位于美国新泽西州。公司的创始人是一群对温度控制技术充满热情的工程师和企业家。起初,ACI专注于为工业和商业应用提供高品质的温度传感器和控制器。通过不断提高产品质量和性能,公司逐渐赢得了客户的信任和好评,实现了良好的初期发展。

  2. 技术创新与产品优化: 随着市场需求的变化和技术的发展,ACI不断进行技术创新,并不断优化其产品线。公司投入大量资源用于研发新型温度传感器和控制器,以满足不同行业的需求。ACI的工程团队与客户紧密合作,根据客户的反馈和需求不断改进产品设计和性能,确保产品的质量和可靠性。

  3. 扩大市场份额: 随着业务的稳步增长,ACI逐渐扩大了其市场份额,涵盖了更多的行业和应用领域。除了工业和商业应用外,公司还开始进军医疗、航空航天、汽车和消费电子等领域。通过开发定制化解决方案和与行业领先企业合作,ACI成功地拓展了其市场份额,并在各个行业中树立了良好的声誉。

  4. 国际市场拓展: 除了在美国市场取得成功外,ACI还积极拓展国际市场。公司与全球各地的合作伙伴建立了稳固的合作关系,拓展了产品的销售网络。ACI的产品出口到欧洲、亚洲和其他地区,赢得了国际客户的青睐和认可。通过不断开拓国际市场,ACI进一步巩固了其在全球温度传感器和控制器领域的领先地位。

  5. 持续创新和发展: 作为一家技术驱动型公司,ACI致力于持续创新和发展。公司不断投入研发和技术改进,推出更加先进和高性能的产品。ACI的工程团队不断探索新的技术和解决方案,以满足客户日益增长的需求。通过不断创新和发展,ACI得以在电子行业中保持竞争优势,并为客户提供更加可靠和高效的温度控制解决方案。

Dean Technology公司的发展小趣事

Dean Technology公司起源于上世纪80年代,当时电子行业正经历着飞速的发展。创始人凭借其深厚的电子技术背景和敏锐的市场洞察力,决定进入高压二极管领域。他带领研发团队不断攻克技术难题,成功推出了一系列性能稳定、品质可靠的高压二极管产品,奠定了公司在行业中的技术领先地位。

上海双岭电子(Double-peak)公司的发展小趣事

作为一家有社会责任感的企业,双岭电子始终关注环境保护和可持续发展问题。公司采取了一系列措施降低生产过程中的能耗和排放,并积极参与环保公益活动。同时,双岭电子还注重员工福利和企业文化建设,为员工提供良好的工作环境和发展机会。这种关注社会责任和可持续发展的做法不仅赢得了社会各界的认可和支持,也为公司的长远发展奠定了坚实基础。

请注意,以上故事均为虚构内容,旨在展示上海双岭电子(Double-peak)公司可能的发展路径和情境。如需了解该公司的真实发展历程和故事,请参考相关官方资料或媒体报道。

微芯(CMOSIC)公司的发展小趣事

为了进一步提升研发实力和市场竞争力,微芯生物开始了并购之路。他们先后收购了多家在生物医药领域具有优势的企业,包括专注于生物制品生产和销售的企业、创新药物研发企业以及提供全方位生物医药研发生产外包服务的企业等。通过并购整合,微芯生物不仅增强了自身的研发实力和市场占有率,还进一步完善了公司的产业链和战略布局。

Custom Mmic Design Services Inc公司的发展小趣事

近年来,随着电子行业的快速发展和市场竞争的加剧,CMDS也面临着诸多挑战。例如,原材料价格波动、人工成本上升、环保要求提高等都给公司的生产和经营带来了压力。然而,CMDS凭借其强大的技术实力和市场竞争力,积极应对这些挑战。通过优化生产流程、提高生产效率、加强成本管理等措施,CMDS不仅成功克服了这些困难,还实现了稳健的发展。同时,公司还注重环境保护和社会责任,积极推动可持续发展战略的实施。

永丰盈(CST)公司的发展小趣事

深圳市永丰盈电子有限公司(CST)成立于2003年,初始阶段,公司只有几名员工和几台设备,专注于电子接插件产品的生产与销售。在创始人坚定的信念和团队不懈的努力下,CST逐步在市场上崭露头角。公司秉持“诚信、踏实、齐心、努力”的经营理念,通过严格的质量控制和持续的技术创新,赢得了客户的信任。

问答坊 | AI 解惑

PCB大疑问

如上图所示 焊盘周围那个银黄色的圈 出现是什么原因 DRC检查通过! 急…

查看全部问答>

s3c6410-DVFS(动态电压频率调整)功能

哪位高手搞过s3c6410的DVFS(动态电压频率调整)功能吗?在三星的文档里,关于DVFS的介绍很少,只要set BSP_USEDVS=1 就可以使用些功能了好像,但问题是,它体现在哪里?搜索BSP_USEDVS,没找到相关的代码, 有研究过这个功能的前辈吗?大家讨论一 ...…

查看全部问答>

色表要怎么写才能编译通过啊?请高手指点,不胜感激~

#include \"stdio.h\" #include \"ugl/ugl.h\" UGL_LOCAL struct_colorStruct/*这是定义一个色表,就是这部分编译不过去*/ {  UGL_ARGB rgbColor;  UGL_COLOR uglColor; } colorTable[]= { {UGL_MAKE_ARGB(0xff,0,0,0),0}, {UGL_MAKE_A ...…

查看全部问答>

关于规整贴&规整第一帖:LM311测量电路

    关于规整贴         上周,琳子姐跟我谈了谈目前DIY的进展和一些组织的问题。     主要是说到现在大家是按照原计划,分任务独立去做,有时候我们单独发贴,显得有点乱 ...…

查看全部问答>

【低功耗】Lattice坚定发展低功耗低价格FPGA不动摇

Lattice坚定发展低功耗低价格FPGA不动摇 Lattice也是大家熟悉的FGPA生产厂商,有自己的特点~希望更多的人能认识到 …

查看全部问答>

MSP430F247T单片机的使用,与液晶驱动

MSP430F247T单片机,有谁比较了解的 或者用过的,他总线这块要怎么运用,比如我LCD12864液晶屏怎么用的总线呢?正常我们STC的话用P0口、P2.口、跟P3口结合的,那不知道这个芯片是怎么去做的,请高手帮忙理解,我是初次使用这类单片机。…

查看全部问答>

嵌入式培训的烦恼

 最近总在思考要不要去嵌入式培训,好矛盾,一方面觉得在大学学的东西真的太少了(虽然我觉得我在班上学习还是比较刻苦的,但是实践太少了,毕业压力太大了)自己自学又难度太大好多东西要花好多时间,我经常在21ic看arm的论坛好多都看不懂, ...…

查看全部问答>

关于Stellaris系列UART的FIFO新认识,经典

关于Stellaris系列UART的FIFO新认识,经典!(ZZ 21ic) 【经典提问】  有没有办法去掉UART的FIFO,或者怎样才能实现每收发一个字符就中断一次呢?Stellaris系列ARM的UART好像无法做到这一点,存在缺陷!【精妙解答】  误解了,根本就不是缺陷, ...…

查看全部问答>

求助:ad637可以转换直流为直流吗?

ad637可以转换 直流 为直流吗? 做一个交直 流毫伏表,10mv到10v 可以提供一些方案吗…

查看全部问答>

找高手协助开发项目

有那位高手愿意协助开发一个单片机应用的项目,有意向的请联系我,邮箱:willli@foxmail.com…

查看全部问答>