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

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

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

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

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

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

程序代码如下:

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

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

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

《51单片机应用开发范例大全(第3版)》——第2章 单片机接口的扩展

第2章 单片机接口的扩展 51单片机应用开发范例大全(第3版) 单片机输入/输出(I/O)接口是单片机和外部设备之间信息交换和控制的桥梁.它可以实现和不同外部设备的速度匹配,可以改变数据传送的方式,也可以改变信号的性质和电平等,可以根据不同的外设需要对输入/输出(I/O)接口进行扩展.本章主要结合具体的实例进行讲解,主要包括以下内容: 基本器件实现端口扩展: 扩展芯片实现端口扩展: cpld实现端口扩展.

《51单片机应用开发范例大全(第3版)》——导读

前 言 本书延续了之前两版的风格,书中内容安排基本一致,只是替换了某些应用实例和综合实例.本书内容仍然注重51单片机的技术实际应用,以提高读者的工程实践和开发能力为宗旨. 本书通过18个单片机C语言基础实例.79个单片机技术应用实例和3个综合实例,总计100个实例来讲解单片机的C语言基础知识和单片机开发应用技术.读者可以通过本书的实例快速掌握单片机的开发技术以及开发技巧. 本书分为14章,每章内容安排如下. 第1章介绍了51单片机的基础知识,主要讲解单片机的基本概念.硬件结构特点及应用,单片机的

《51单片机应用开发范例大全(第3版)》——第1章 单片机C语言开发基础 1.1 MCS-51单片机硬件基础

第1章 单片机C语言开发基础 单片微型计算机(Single Chip Micro Computer)现已正名为微控制器(MCU,Micro Controller Unit),单片机的称谓只是其习惯称呼.它把组成微型计算机的各功能部件(包括中央处理单元CPU.随机存储器RAM.只读存储器ROM.I/O接口电路.定时器/计数器以及串行口等)集成在一块电路芯片上.由于单片机的硬件结构与指令系统的功能都是按工业控制要求而设计的,因此常用在工业检测.控制装置中. 1.1 MCS-51单片机硬件基础 MCS

《51单片机应用开发范例大全(第3版)》——1.2 Keil Vision2

1.2 Keil Vision2 MCS-51单片机的开发除了需要硬件的支持以外,同样离不开软件.CPU真正可执行的是机器码,用汇编语言或C等高级语言编写的源程序必须转换为机器码才能运行,转换的方法有手工汇编和机器汇编两种,前者目前已极少使用.机器汇编是指通过汇编软件将源程序变为机器码的编译方法.这种汇编软件称为编译器.本节将向大家介绍目前十分流行的Keil Vision2. 1.2.1 Keil Vision2集成开发环境介绍 Keil Vision2是一个集成开发环境(Intergrated

《51单片机应用开发范例大全(第3版)》——1.1 MCS-51单片机硬件基础

1.1 MCS-51单片机硬件基础 MCS-51是指美国Intel公司生产的一系列单片机的总称.这一系列单片机包括很多种,如8031.8051.8751.8032.8052.8752等.其中8051是最早.最典型的产品,该系列其他单片机都是以8051为核心发展起来的,都具有8051的基本结构和软件特征.8051单片机内部包含了作为微型计算机所必需的基本功能部件,各部件相互独立地集成在同一块芯片上.其基本功能特性如下: 8位CPU: 32条双向可独立寻址的I/O线: 4KB程序存储器(ROM),外

《51单片机应用开发范例大全(第3版)》——2.1 基本器件实现端口扩展实例

2.1 基本器件实现端口扩展实例 目前,比较常用的串行口转换并行口的专用芯片有74LS165.CD4014等,并行口转换串行口的专用芯片有74LS164.CD4094等. 2.1.1 [实例20]用74LS165实现串口扩展并行输入口 一些低速的并行设备,如果直接和单片机连接,则浪费了宝贵的端口资源:如果先经过并行转换,然后以串行方式送入数据,则可以节省I/O端口.本设计就是通过74LS165,利用单片机串口,实现8位并行数据的输入. 1.74LS165与单片机接口电路设计74LS165有多种封

《51单片机应用开发范例大全(第3版)》——2.3 CPLD实现端口扩展

2.3 CPLD实现端口扩展 单片机与大规模CPLD有很强的互补性.单片机具有性价比高.功能灵活.易于实现人机对话和良好的数据处理能力等优点:CPLD/FPGA则具有高速度.高可靠性以及开发便捷.灵活等优点.以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中已经被广泛应用. 单片机与CPLD/FPGA的接口方式一般有两种,即总线方式与独立方式. 1.总线方式 单片机以总线方式与CPLD/FPGA进行数据与控制信息通信有如下优点. (1)速度快.其通信工作时序是纯硬件行为,对于MCS-5

《51单片机应用开发范例大全(第3版)》——1.3 C51基础知识

1.3 C51基础知识 1.3.1 C51控制语句 C51语言中,有相关的控制语句,用以实现选择结构与循环结构. 选择控制语句:if语句和switch-case语句. 循环控制语句:for语句.while语句和do-while语句. 转移控制语句:break语句.continue语句和goto语句. 1.选择控制语句 在C51语言中选择结构主要是利用if语句和switch-case语句来实现的. (1)if语句的3种常用形式. C51语言中分支结构主要是应用if语句来实现的,if语句是对给定条件

《51单片机应用开发范例大全(第3版)》——2.2 扩展芯片实现端口扩展

2.2 扩展芯片实现端口扩展 用串口扩展I/O口非常实用,但是串口是按位读取的,输入的数据必须重组后才能使用,速度受到限制,同时还需要严格的时钟配合. 在有些场合,利用串口扩展I/O口不是很理想,比如BCD码的输入及多组速率较高的并行数据的输入.所以,用并行数据端口扩展I/O口也是很有必要的. 2.2.1 [实例24]用8243扩展I/O端口 BCD码由四位二进制数组成,有些设备直接以BCD码的形式收发数据.如果这类接口的设备比较多,就需要扩展4位并行接口.本设计利用单片机4个I/O接口,扩展成