历史上的今天
返回首页

历史上的今天

今天是:2024年09月09日(星期一)

正在发生

2020年09月09日 | 51单片机驱动直流电机,测试可用,可调速

2020-09-09 来源:51hei

单片机源程序如下:

#include                //包含51单片机相关的头文件

#define uchar unsigned char

#define uint unsigned int


/*==================

对各个输出端口的定义

对占空比的端口定义

====================*/

sbit IN4=P1^3;                          //定义左轮前进  

sbit IN3=P1^2;                          //定义左轮后退  

sbit IN1=P1^0;                          //定义右轮前进  

sbit IN2=P1^1;                                                        //定义右轮后退

sbit ENA=P1^6;                                                     //定义右轮使能

sbit ENB=P1^7;                                                    //定义左轮使能

uint Duty_left;                                                        //定义左轮占空比

uint Duty_right;                                                //定义右轮占空比

uint i;                                                                    //中断中控制占空比变量


/*===========

ms级延时函数

=============*/

void delay(uint n)  

{

    int x,y;

        for(x=n;x>0;x--)

        for(y=115;y>0;y--);

}

/*=======

停止函数

=========*/

void tingzhi()

{

   Duty_left=0;                        //左轮占空比

   Duty_right=0;                //右轮占空比

   IN1=0;                                   

   IN2=0;                                   

   IN3=0;                                 

   IN4=0;


}


/*=======

前进函数

=========*/

void qianjin()

{  

   Duty_left=100;                         //左轮占空比

   IN4=0;

   IN3=1;

   delay(3000);

   ENB=0;

   delay(3000);

   ENB=1;

}





/*============

pwm初始化函数

==============*/

void pwm_init()               

{

    TMOD |= 0x01;        //设置定时器工作方式0x01

    TH0=(65536-1)/256; //取约150HZ,12M晶振,每次定时66us,分100次,

        TL0=(65536-1)%256;        //这样开头定义的变量正好直接表示占空比的数值

        EA=1;                          //打开总中断

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

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

}

main()

{       

   pwm_init();

   while(1)

   {

                qianjin();

   }

}

/*========

中断函数

==========*/

void T0_timer() interrupt 1

{

           i++;                 

        if(i<=Duty_right)

          ENA=1;

        else

          ENA=0;

        if(i<=Duty_left)

          ENB=1;

        else

          ENB=0;

          if(i==100)

          {

                  i = 0;

          }

    TH0=(65536-1)/256; //取约150HZ,12M晶振,每次定时66us,分100次,

        TL0=(65536-1)%256;        //这样开头定义的变量正好直接表示占空比的数值       

}


推荐阅读

史海拾趣

DBS Microwave Inc公司的发展小趣事

随着公司产品的不断成熟和技术的不断进步,DBS Microwave开始积极拓展国际市场。公司参加了多个国际电子展会,与全球各地的客户建立了联系。同时,公司还积极寻求与国际知名企业的合作机会,通过技术交流和合作研发等方式,不断提升自身的技术水平和市场竞争力。这些努力使得DBS Microwave在国际市场上取得了良好的业绩。

Amprobe公司的发展小趣事

在DBS Microwave的发展过程中,技术创新一直是其核心竞争力。公司不断投入研发资源,突破技术瓶颈,推出了一系列具有创新性的产品。例如,在XXXX年,公司成功研发出了一款高性能的微波滤波器,其性能指标在当时的市场上处于领先地位。这一创新不仅为公司赢得了大量订单,也进一步巩固了其在行业内的技术领先地位。

Gazelle Microcircuits Inc公司的发展小趣事
随着个人电脑市场的不断发展,用户对主板性能的需求也在不断变化。现代主板更加注重的是高速数据传输、稳定性、能效比等方面,而不再是传统的模拟电路或特殊模块的需求。
Elma Electronic Inc公司的发展小趣事

在Covid-19疫情期间,Elma展现了其应对挑战的能力。公司引入了良好的保护措施,并不断调整和改进以适应疫情带来的变化。同时,Elma还积极响应市场需求,为医疗领域提供了大量旋转开关等关键设备,为欧洲和东南亚的医院做出了重大贡献。此外,公司还为瑞士的客户开发和制造了消毒设备,帮助当地进行疫情防控。

以上5个故事涵盖了Elma Electronic Inc公司在电子行业发展的多个方面,展现了其强大的实力和应对挑战的能力。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

Elma Electronic Inc公司在电子封装市场拥有显著的领导地位。从VME/VME64x到Rugged COTS封装,该公司凭借其创新的设计和制造技术,成功地在多个细分市场取得了领先地位。这种领导地位不仅体现在产品的多样性上,更在于其为客户提供的高质量、可靠性和性能优异的产品。

南京绿芯(Grenergy)公司的发展小趣事

在Covid-19疫情期间,Elma展现了其应对挑战的能力。公司引入了良好的保护措施,并不断调整和改进以适应疫情带来的变化。同时,Elma还积极响应市场需求,为医疗领域提供了大量旋转开关等关键设备,为欧洲和东南亚的医院做出了重大贡献。此外,公司还为瑞士的客户开发和制造了消毒设备,帮助当地进行疫情防控。

以上5个故事涵盖了Elma Electronic Inc公司在电子行业发展的多个方面,展现了其强大的实力和应对挑战的能力。

问答坊 | AI 解惑

电子产品安全距离及其要求

所谓安全距离,就是为保护人在使用电子产品的时候,危险电压带电部分与人不能轻易接 触到,也不能让它来引起危险导致威胁人身安全。 因此必须在一般情况下,安全距离是在产品设计中最重要的部分之一。检查安全距离从设 计阶段开始。结构检查人员会 ...…

查看全部问答>

以7805为例 如何测量直流稳压器的最大输出电流

图中,7805的输入1脚接12V外加电源,3脚输出5V电压,这个用万用表的电压档一测就知道了,但是它的输出电流最大是多少呢? 答案是输出电流随负载的变化而变化,可是电流不能无限小和无限大吧?所以输出电流必定有个最小值和最大值。     ...…

查看全部问答>

高人请指点

#include #define uchar unsigned char uchar code  seg7[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar second ,minute,hour,count,m,num,num1,i,s,f; void delay() delay1s()         { ...…

查看全部问答>

我的VS2005怎么了?新建工程不行,打开工程不行(只限智能设备工程),报这样的错误"从用户数据存储中检索信息时出错。XML文档必须包含一个顶层元素".好怪!

我的VS2005怎么了?新建工程不行,打开工程不行(只限智能设备工程),报这样的错误\"从用户数据存储中检索信息时出错。XML文档必须包含一个顶层元素\".好怪!…

查看全部问答>

VISTA系统下安装 Tornado2.0后,运行时总出现 gdb error,是什么原因?

  运行Tornado时,总弹出好几个错误的对话框,标题为 gdb error!   内容为:Failed to register COM Server. Error code = ox8002801c   将对话框点掉之后 Tornado 就启动起来了,运行还算正常,但每次一启动就出 ...…

查看全部问答>

各位达人救救小弟则个

要求做一个动画控件。功能描述如下: 根据调用者的要求,决定图片显示的快慢,以及多少张图片循环显示以实现动画功能,同时根据图片要能自我缩放以匹配控件大小。控件大小由调用者决定! 有没有谁写过啊?各位达人救救我啊…

查看全部问答>

大学新生报名IT培训,职业规划从入学开始

本报讯: 日前,记者从国内著名的IT培训公司北大青鸟APTECH获悉,进入9月份以来,在一些城市出现了大量刚入学大学新生前来咨询职业培训,甚至已有人报名参加相关课程培训,在某些培训中心,这类刚入学大学新生在本阶段招生中已占到相当比例。IT职业 ...…

查看全部问答>

CS8900不能初始化,请高手指点一下

有谁做过TI的430以太网,就是easyweb那个解决方案,我的cs8900A始终不能初始化,在这个循环里跳不出来: do Write8900(ADD_PORT, PP_SelfST); // set register while (!(Read8900(DATA_PORT) & INIT_DONE)); // wait un ...…

查看全部问答>

短消息为什么没有提示音了?

RT?我觉得还是有提示音的好,这样一上线就能知道有消息了!~…

查看全部问答>

【MSP430共享】 MC430F224例程:Keys+LED演示

【例  程】://基于MC430F224开发板实验例程//软件:IAR Embedded Workbench Version: 3.42A//编写:微控设计网 www.Microcontrol.cn DC//目标板: MC430F224开发板 V1.0#include \"msp430x22x4.h\"//初级用户要习惯采用宏定义,以方便的编写 ...…

查看全部问答>