《51单片机应用开发范例大全(第3版)》——1.4 【实例19】P1口控制直流电动机实例-阿里云开发者社区

开发者社区> 异步社区> 正文

《51单片机应用开发范例大全(第3版)》——1.4 【实例19】P1口控制直流电动机实例

简介:
+关注继续查看

本节书摘来异步社区《51单片机应用开发范例大全(第3版)》一书中的第1章,第1.4节,作者:张杰 , 宋戈 , 黄鹤松 , 员玉良,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 【实例19】P1口控制直流电动机实例

利用P1口,编制程序输出一串脉冲,经放大后驱动小电动机,改变输出脉冲的电平及持续时间,达到使电动机正转、反转、加速、减速、停转之目的。

1.实例概述
可以通过74HC244输入开关量数据来控制小直流电动机的转动,实现正转4种转速,反转4种转速及停转。电路及连线如图1-31所示。

图1-31中P1.0连接74HC244的2A2。两个输出通过两个74HC32连接直流电动机电源。小直流电动机原理是:转动方向是由电压来控制的,电压为正则正转,电压为负则负转。转速大小则是由输出脉冲的占空比来决定的,正向占空比越大则转速越快,反向转则占空比越小转速越快,如图1-32所示。

a40fb564be0f25ac8dfdc5d7b8764ebd63d411de

2.程序框图及代码
在编写代码前,最好先把程序流程图画出来,这样可以使得编写的代码更加简洁有效。实例程序的流程图如图1-33所示。

cb9a71e75a18d16ce664ca2d38f1f025f00101c1

程序代码如下:

sfr p1=0x90;
sbit p10=p1^0;
sbit p11=p1^1;

void main ()
{
int i, m;
int j=100;
int k=20;

// 正快转
for (i=0; i<100; i++)
{
P10=1;
for (j=0; j<50; j++)
      {
           m=0;
      }
}
P10=0;
for (j=0; j<10; j++)
     {
          m=0
     }
//正慢转
for (i=0; i<100; i++)
{
P10=1;
for (j=0; j<10; j++)
   {
      m=0
   }
}
p10=0;
for (j=0; j<50; j++)
      {
           m=0
      }
// 负快转
for (i=0; i<100; i++)
{
p11=1;
for (j=0; j<50; j++)
     {
       m=0;
     }
}
p11=0;
for (j=0; j<10; j++)
     {
        m=0;
     }

// 负慢转
for (i=0; i<100; i++)
{
p11=1;
for (j=0;j<10;j++)
     {
         m=0;
     } 
}
p11=0
for (j=0; j<50; j++)
     {
         m=0;
     }
}```
Cx51源程序是一个ASCII文件,可以用任何标准的ASCII文本编辑器来编写,例如记事本、写字板等。

C源程序的书写格式自由度较高,灵活性很强,有较大的任意性。其要点如下。

一般情况下,每个语句占用一行。
不同结构层次的语句,从不同的起始位置开始,即在同一结构层次中的语句,缩进同样的字数。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
11938
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载