当前位置: 首页 > news >正文

《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所示。


screenshot

2.程序框图及代码

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


screenshot

程序代码如下:

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源程序的书写格式自由度较高,灵活性很强,有较大的任意性。其要点如下。

  • 一般情况下,每个语句占用一行。
  • 不同结构层次的语句,从不同的起始位置开始,即在同一结构层次中的语句,缩进同样的字数。
  • 表示结构层次的大括号通常写在该结构语句第一个字母的下方,与结构化语句对齐,并占用一行。

相关文章:

  • 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——2.3 本章小结...
  • 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第1课1.1节开始在Adobe Photoshop中工作...
  • MySQL 大数据量快速插入方法和语句优化
  • 《C++入门经典(第5版•修订版)》——6.8 作业
  • 《Adobe Premiere Pro CC经典教程(彩色版)》——1.4 Premiere Pro界面概述
  • 《树莓派开发实战(第2版)》——2.4 为树莓派配置网络名称
  • 《实施Cisco统一通信管理器(CIPT2)》一1.5 可用性方面面临的挑战
  • 《跨境电商 —— 阿里巴巴速卖通实操全攻略》一一2.4 淘代销
  • 《社会智能与综合集成系统》—第1章1.1节认知科学的发展
  • 《像计算机科学家一样思考Python》——3.13 使用from导入模块
  • 《MySQL DBA修炼之道》——1.2MySQL 的基础架构和版本
  • 定制并发类(七)实现ThreadFactory接口生成自定义的线程给Fork/Join框架
  • 《Python游戏编程快速上手》——2.2 计算表达式
  • 《Adobe Flash CS4中文版经典教程》——1.9 预览影片
  • 运营前线2:一线运营专家的运营方法、技巧与实践02 内容运营,取标题的这6招你得会...
  • php的引用
  • $translatePartialLoader加载失败及解决方式
  • [NodeJS] 关于Buffer
  • 78. Subsets
  • css选择器
  • CSS中外联样式表代表的含义
  • EventListener原理
  • Javascript 原型链
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 利用DataURL技术在网页上显示图片
  • 巧用 TypeScript (一)
  • 深入浅出Node.js
  • 算法-图和图算法
  • 小程序测试方案初探
  • #pragma 指令
  • #预处理和函数的对比以及条件编译
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (三)Honghu Cloud云架构一定时调度平台
  • (十一)手动添加用户和文件的特殊权限
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (正则)提取页面里的img标签
  • (转)C#调用WebService 基础
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • *1 计算机基础和操作系统基础及几大协议
  • .NET Core中的去虚
  • @ResponseBody
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [1] 平面(Plane)图形的生成算法
  • [Android]通过PhoneLookup读取所有电话号码
  • [BUG] Authentication Error
  • [BZOJ] 2044: 三维导弹拦截
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强
  • [C语言]一维数组二维数组的大小
  • [EFI]Lenovo ThinkPad X280电脑 Hackintosh 黑苹果引导文件