单片机应用技术项目教程项目11调速水泵

上传人:tian****1990 文档编号:81734307 上传时间:2019-02-22 格式:PPT 页数:34 大小:1.10MB
返回 下载 相关 举报
单片机应用技术项目教程项目11调速水泵_第1页
第1页 / 共34页
单片机应用技术项目教程项目11调速水泵_第2页
第2页 / 共34页
单片机应用技术项目教程项目11调速水泵_第3页
第3页 / 共34页
单片机应用技术项目教程项目11调速水泵_第4页
第4页 / 共34页
单片机应用技术项目教程项目11调速水泵_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《单片机应用技术项目教程项目11调速水泵》由会员分享,可在线阅读,更多相关《单片机应用技术项目教程项目11调速水泵(34页珍藏版)》请在金锄头文库上搜索。

1、项目11: 调速水泵,知识目标: 1了解PWM调速原理; 2了解常用D/A转换的原理、技术指标; 3掌握常用D/A转换芯片的使用方法; 4掌握DAC器件的三种工作方式。 技能训练目标: 1熟练掌握常用D/A转换芯片与单片机的接口方法; 2学会对D/A转换程序设计方法;,调速水泵,设计要求: 利用DAC0832输出05V模拟电压对水泵进行速度调节,使水泵的扬程、流量相应改变。,本系统功能由硬件和软件两大部份协调完成,硬件部分主要由单片机最小系统、DAC0832芯片组成的 D/A转换电路、电源电路、I-V放大电路等组成。 其中AT89C52主要完成外围硬件的控制以及一些运算功能;D/A转换电路主要

2、是将单片机产生的波形从数字形式转化为模拟形式,以电流的形式输出;I-V放大电路是由LM324构成的两级运放,主要作用是一是将DAC0832的输出电流转换成输出电压(单极性),二是提高输出信号的电压和功率,使之能够驱动水泵正常工作;电源电路主要是由7805芯片组成的电源电路,主要功能是给单片机最小系统以及D/A转换电路供电,外接电源为220伏的交流电。本系统还应提供12V直流电源给运放LM324,24V直流电源给水泵。,总体设计方案,应用软件采用模块化设计方法。系统软件主要由主程序、D/A转换功能函数、延时子程序等模块组成。,图11-2 系统软件结构框图,D/A转换器的作用,将数字量转换为模拟量

3、,以便操纵控制对象。,D/A转换器的主要技术指标分辨率,分辨率是指最小输出电压(对应于输入数字量最低位增1所引起的输出电压增量)和最大输出电压(对应于输入数字量所有有效位全为1时的输出电压)之比 例如,4位DAC的分辨率为1/(24-1)=1/15=6.67%(分辨率也常用百分比来表示)。8位DAC的分辨率为1/255=0.39%。显然,位数越多,分辨率越高。,D/A转换器的主要技术指标转换精度,D/A转换精度分为绝对和相对转换精度,一般是用误差大小表示。 绝对转换精度是指满刻度数字量输入时,模拟量输出接近理论值的程度。它和标准电源的精度、权电阻的精度有关。相对转换精度指在满刻度已经校准的前提

4、下,整个刻度范围内,对应任一模拟量的输出与它的理论值之差。它反映了DAC的线性度。通常,相对转换精度比绝对转换精度更有实用性 相对转换精度一般用绝对转换精度相对于满量程输出的百分数来表示,有时也用最低位(LSB)的几分之几表示。例如,设VFS为满量程输出电压5V,n位DAC的相对转换精度为0.1%,则最大误差为0.1%VFS=5mV;若相对转换精度为1/2LSB,LSB=1/2n,则最大相对误差为1/2n+1VFS,D/A转换器的主要技术指标转换速率/建立时间,转换速率实际是由建立时间来反映的。建立时间是指数字量为满刻度值(各位全为1)时,DAC的模拟输出电压达到某个规定值(比如,90%满量程

5、或1/2LSB满量程)时所需要的时间。 建立时间是D/A转换速率快慢的一个重要参数。很显然,建立时间越大,转换速率越低。不同型号DAC的建立时间一般从几个毫微秒到几个微秒不等。若输出形式是电流,DAC的建立时间是很短的;若输出形式是电压,DAC的建立时间主要是输出运算放大器所需要的响应时间。,D/A转换器的主要技术指标非线性误差,D/A转换器的非线性误差定义为实际转换特性曲线与理想特性曲线之间的最大偏差,并以该偏差相对于满量程的百分数度量。转换器电路设计一般要求非线性误差不大于1/2LSB,D/A转换器的主要技术指标输出极性和范围,D/A转换器输出范围与参考电压有关。对电流输出型,要用转换电路

6、将其转换成电压,故输出范围与转换电路有关。 输出极性有双极性和单极性两种。,典型D/A转换器件DAC0832,D/A转换器的种类非常多,本项目以美国国家半导体公司生产的DAC0832为例来介绍它们的使用方法。 DAC0832是具有两个输入数据寄存器的8位双缓冲器DAC,单电源供电。芯片内带有资料锁存器,可与数据总线直接相连。电路有极好的温度跟随性,使用了COMS电流开关和控制逻辑而获得低功耗、低输出的泄漏电流误差。芯片采用R-2RT型电阻网络,对参考电流进行分流完成D/A转换。转换结果以一组差动电流IOUT1和IOUT2输出。 DAC0832主要性能参数:分辨率8位; 转换时间1s;参考电压1

7、0V;单电源+5V+15v;功耗20mW。,典型芯片-DAC0832介绍,DAC0832是一个八位D/A转换器,转换时间1微秒,结构如下:,DAC0832功能分析,DI0-DI7:转换数据输入 CS:片选信号,因此,DAC0832可以有三种工作形式:直通、单级锁存、两级锁存。,DAC0832和单片机的连接,一个处于直通方式,另一个处于受控的锁存方式,单缓冲方式的接口(1),LE1受控,LE2直通,单缓冲方式的接口(2),两个输入寄存器同时受控的方式,LE1、LE2同时受控,双缓冲方式的接口和应用,两个锁存器都接成受控锁存方式。,你知道它与第二种单缓冲方式的区别吗?,DAC0832的应用,D/A

8、转换器在实际中经常作为波形发生器使用,通过它可以产生各种各样的波形。它的基本原理如下:利用D/A 转换器输出模拟量与输入数字量成正比这一特点,通过程序控制CPU向D/A转换器送出随时间呈一定规律变化的数字,则D/A转换器输出端就可以输出随时间按一定规律变化的波形。,产生锯齿波,根据右图编程,DAC0832的地址为7FFFH。从DAC0832输出端分别产生锯齿波、三角波和方波。如果要使DAC0832输出电压是逐渐上升的锯齿波,只要让单片机从P0.0P0.7输出不断增大的数据即可。 由于DAC0832相当于片外存储器,因此可以采用由“ABSACC.H”头文件所定义的指令“XBYTEunsigned

9、 int”来实现对DAC0832的寻址 如: #define DAC0832 XBYTE0x7FFF,产生锯齿波,参考程序: /* * 文件名:ex1.C * 摘要:产生锯齿波 */ #include /定义单片机的头文件 #include /定义绝对地址访问 #define uchar unsigned char #define DAC0832 XBYTE0x7FFF /* * 函数名称:main() 主函数 * 函数功能:启动D/A转换,输出锯齿波 */ void main( ) uchar i; while(1) for (i=0;i0xff;i+) /形成锯齿波输出值,最大为255 D

10、AC0832=i; /DA转换 ,产生三角波,参考程序: /* * 文件名:ex2.C * 摘要:产生三角波 */ #include #include /定义绝对地址访问 #define uchar unsigned char #define DAC0832 XBYTE0x7FFF /* * 函数名称:main() 主函数 * 函数功能:启动D/A转换,输出三角波 */ void main() uchar i; while(1) for (i=0;i0;i-) DAC0832=i; ,产生方波,参考程序: /* * 文件名:ex3.C * 摘要:产生方波 */ #include #includ

11、e /定义绝对地址访问 #define uchar unsigned char #define DAC0832 XBYTE0x7FFF /* * 函数名称:delay子函数 * 函数功能:延时 */ void delay( ) /延时函数 uchar i; for (i=0;i0xff;i+) ; /* * 函数名称:main() 主函数 * 函数功能:启动D/A转换,输出方波 */ void main() uchar i; while(1) DAC0832=0; /输出低电平 delay( ); /延时 DAC0832=0xff; /输出高电平 delay( ); /延时 ,【活动一】 硬件

12、电路设计,调速水泵系统电路图,【活动二】软件设计,1、算法分析与流程图,本程序主要由主程序、D/A转换子程序、延时子函数等模块组成。,DAC0832输出模拟电压的流程图,主程序的工作是进行D/A转换并输出转换后的电压值。 如果要使DAC0832输出产生05V模拟电压,只要改变DAC0832的输出数字量,输出的电压就会发生变化。,2、烟雾检测程序分析,参考程序: #include /包含单片机寄存器的头文件 sbit add=P12; /每按一次加速一次 sbit reduce=P13; /每按一次减速一次 /* * 函数名称:main() 主函数 * 函数功能:扫描按键,根据按键按下的键进行调试水泵控制电压的输出 */ void main() unsigned char i; i=0; P2=0; while(1) if(add)=0) /判断是否加速键按下 if(add=0) delay(2); /延时去抖,delay(xms)参见前面项目。 if(i=255) /判断是否超出DAC0832的最大输出数据字节 i=250; /如果超出则按最大值换算 i=i+5; /每次启动DAC0832转换值为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号