书中该节讲述的电路通过ADC芯片将电位器的阻值转换为电压量,然后使用单片机输出PWM进行电路控制。本电路也可扩展应用至需要模拟量输入与输出的场合。
目录
一、系统设计思路
书中使用的系统方案如图1-1所示:
图1-1 系统方案框图
系统使用了电位器->ADC采集电路->单片机PWM输出->电机驱动电路的方案。使用电位器的模拟量作为输入,用使用ADC芯片将之转换为数字信号,用ADC芯片采集后控制产生PWM波,最后使用电机驱动电路驱动电机工作。
二、各模块电路分析
模块电路如图2-1所示
图2-1 整体电路图
2.1电路构成
电路比较简单,由单片机、ADC芯片与电动机驱动电路构成。
51单片机的P1端口引脚与ADC芯片输出端相连,用于采集数字化后的模拟量。采集后再由P3.7引脚输出PWM波。由于仿真软件没有电位器和可调电阻这样的器件,所以书中使用了一个恒压源代替电位器做模拟输入。
驱动电路部分,书中使用了两级NPN三极管驱动电机。
2.2工作状态分析
电路工作是数据流向如下:
1、电位器调节产生的电压输入到ADC芯片的IN0端口
2、ADC采集芯片将模拟量转换为数字量并在OUT端输出
3、单片机采集转换后的数字信号
4、单片机根据数字信号产生PWM波,控制电机旋转
三、程序分析
3.1 变量定义
#include <reg51.h>
#include <stdio.h>
sbit EOC = P2^6;
sbit START = P2^5;
sbit OE = P2^7;
sbit CLK = P2^4;
sbit PWM = P3^7;
unsigned char ad_data;
图3-1 程序头文件及变量定义
程序的变量定义如图3-1所示。程序使用ad_data存储采样后的值;sbit(位定义)配置的变量,名称和电路图中一致。此处不做赘述。
3.2 延时程序