




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学单片机原理与应用课程设计说明目录摘要I1.设计原理12.系统硬件设计12.1电阻分压以及阻抗匹配模块12.2 有效值检波模块22.3ADS1115电压检测模块32.4单片机控制及显示模块32.5系统整体原理图43程序框图54资源分配表55源程序65.1主程序65.2液晶显示程序75.3 ADS1115启动程序116性能分析196.1实物测试图196.2测量数据分析207总结与体会21参考文献2222摘要有效值能直接反应交流信号的能量大小,具有简单的叠加性,计算起来方便,对于研究功率、噪声、失真度、频谱纯度等有十分重要的作用。因此,有效值在实际应用中使用十分广泛。本文主要介绍了对50
2、HZ正弦交流信号有效值的测量方法的设计与实现。根据要求,测量电路由电阻分压网络、基于OPA277的阻抗匹配模块、基于AD637的有效值检测模块以及基于ADS1115的电压测量模块组成,控制部分选用STC89C52单片机,所测量的有效值通过LCD1602显示。关键词:有效值、AD637、STC89C52单片机武汉理工大学单片机原理与应用课程设计说明1. 设计原理图1 系统整体结构图由图1系统整体框图可知,此测量有效值系统主要由分压网络、阻抗匹配、有效值检波、电压测量、单片机控制以及液晶显示等模块组成。题目要求的输入信号输入范围为015V,这远远大于一般有效值检波以及AD转换芯片的输入电压值,因此
3、,在前级需要加一级电阻分压网络,将输入信号的幅值衰减一般,使其适合测量。本系统选用的有效值检波模块基于AD637芯片,AD637是一个高精度RMS-DC转换芯片,但其输入阻抗较小,在信号输入前通过一级运算放大器进行阻抗匹配,提升电路整体的稳定性,经过AD637的转换,输出对应交流信号的直流有效值,在单片机的控制下,ADS1115进行电压检测,并将检测的值返回给单片机通过LCD1602显示。此系统对控制芯片的要求并不高,选用52单片机足以实现所需求的功能。单片机首先对内部定时器以及LCD1602进行初始化后,进入等待模式,当达到所设定的时间时,进入中断开启ADS1115进行电压值的测量,并将测量
4、值通过LCD1602显示,之后退出中断等待下一次中断的来临。2. 系统硬件设计2.1电阻分压以及阻抗匹配模块由于题目所要求的电压范围为015V,大于一般芯片的测量范围,因此采用两个10K的电阻进行分压,使输入信号衰减一半,如图2所示,衰减后的信号通过OPA277进行阻抗匹配,以提升系统整体的稳定性。图2 电阻分压及阻抗匹配电路2.2 有效值检波模块为了实现对有效值的检测,需先将交流信号转化成直流有效值,如图3所示,在此系统中,选用AD637完成此功能。AD637是一款完整的高精度、单芯片均方根直流转换器,可计算任何复杂波形的真均方根值。它提供集成电路均方根直流转换器前所未有的性能,精度、带宽图
5、3 有效值检波电路和 动态范围与分立和模块式设计相当。AD637提供波峰因数补偿方案,允许以最高为10的波峰因数测量信号,额外误差小于1%。宽带宽允许测量200 mV均方根、频率最高达600 kHz的输入信号以及1 V均方根以上、频率最高达8 MHz的输入信号。片内缓冲放大器既可以用作输入缓冲,也可以用于有源滤波器配置。该滤波器可以用来降低交流纹波量,从而提高精度。满足题目对精度0.01V,误差小于0.02V的要求。2.3 ADS1115电压检测模块经过前级AD637的转换,输入ADS1115的信号为直流有效值,ADS1115是具有16位分辨率的高精度模拟到数字转换器(ADC),其数据传输通过
6、一个兼容串行接口,四个从地址,由2.0V至5.5V单电源供电。 ADS1115可以执行转换速率高达每秒860个样本(SPS)。板载PGA的ADS1115提供从电源的输入范围为±256mV的低,允许大型和小型的信号进行高分辨率测量。如图4所示,使用ADS1115测量电压,足以满足精度的要求。图4 ADS1115电压检测电路图2.4单片机控制及显示模块系统的控制部分由52单片机实现,单片机具有体积小,操作方便,应用灵活,运行稳定准确等特点,现以广泛应用于各领域。此系统对控制部分要求不高,在单片机最小系统的基础上增加一些基本外设即可。如图5所示,最小系统由单片STC89C52、复
7、位电路、振荡电路组成,振荡电路为单片机工作提供时钟源,但程序跑飞的时候,可通过控制电路使程序从头开始执行。图中与单片机相连的是LCD1602液晶显示屏,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5*7或者5*11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。通过单片机控制LCD1602可显示设定的英文字符和数字等信息。图5 单片机控制及显示电路2.4 系统整体原理图如图6所示,是此系统的整体电路图。图6 系统整体电路图3程序框图如图7所示,是此系统的程序流
8、程框图。图7 程序流程图4 资源分配表为实现此系统,单片机的资源分配如表1所示。表1 单片机资源分配表资源用途P0.0控制ADS1115时钟引脚P0.1控制ADS1115数据引脚P0.5控制LCD1602使能引脚P0.6控制LCD1602读写引脚P0.7控制LCD1602功能选择引脚P2向LCD1602写入数据定时器0设定一定时间,间歇性的开启ADS1115进行转换5 源程序5.1 主程序#include "LCD1602.h"#include "ads1115.h"char i=0,flag;char show_zifu="Design by
9、 lq"float resultdata=0;void set_time() /定时1ms EA = 1; TMOD |= 0X01; TH0 = (65536-1000)/256; TL0 = (65536-1000)%256;EA = 1;ET0 = 1; TR0 = 1;TF0 = 0;void main() lcd_init(); set_time(); for(i=0;i<12;i+) lcd_sendcmd(0x80+i); lcd_senddat(show_zifui); lcd_sendcmd(0xc0); lcd_senddat('V'); l
10、cd_sendcmd(0xc1); lcd_senddat(':'); while(1)if(flag = 1) resultdata = AD_last(0) *2; lcd_show_float(0xc2,resultdata);flag = 0;void inter() interrupt 1 static uint j=0; j+; while(j=200) flag = 1; j=0; TH0 = (65536-1000)/256;TL0 = (65536-1000)%256;TR0 = 1;TF0 = 0;5.2液晶显示程序#ifndef _LCD1602_H_#d
11、efine _LCD1602_H_#include <reg52.h>#define uint unsigned int #define uchar unsigned char/*各IO口声明*/sbit LCD1602_EN=P05; sbit LCD1602_RW=P06;sbit LCD1602_RS=P07;#define lcd_DATA P2/* 各io口定义值的替换*/#define LCD1602_EN_H LCD1602_EN = 1#define LCD1602_EN_L LCD1602_EN = 0#define LCD1602_RW_H LCD1602_RW
12、 = 1 #define LCD1602_RW_L LCD1602_RW = 0#define LCD1602_RS_H LCD1602_RS = 1 #define LCD1602_RS_L LCD1602_RS = 0/*子函数名*/void delay(uint s);void lcd_input_byte(uchar byte);void lcd_sendcmd(uchar cmd);void lcd_senddat(uchar dat);void lcd_init();void lcd_show_float(uchar add,float num);/*/#endif#include
13、 "LCD1602.h"void delay(uint s) uint i,j; for (i=0;i<s;i+) for (j=1;j<=110;j+) ;void lcd_input_byte(uchar byte) LCD1602_RW_L; lcd_DATA = byte; LCD1602_EN_L; LCD1602_EN_H; delay(10); void lcd_sendcmd(uchar cmd) LCD1602_RS_L; lcd_input_byte(cmd); void lcd_senddat(uchar dat) LCD1602_RS_H
14、; lcd_input_byte(dat);void lcd_init() lcd_sendcmd(0x38); /*设置2行数据,5*7数据*/ lcd_sendcmd(0x38); lcd_sendcmd(0x08); /*显示关闭*/ lcd_sendcmd(0x01); /*显示清屏*/ lcd_sendcmd(0x06); /*显示光标移动设置*/ lcd_sendcmd(0x0c); /*显示开及光标移动*/ delay(50);void lcd_show_float(uchar add,float num) uchar temp6="00.00V",i; in
15、t show_num; show_num = num * 100; /保留两位小数 temp0 = show_num /1000 +'0' temp1 = show_num /100%10 +'0' temp3 = show_num /10%10 +'0' temp4 = show_num %10 +'0' for(i=0;i<6;i+) lcd_sendcmd(add + i); lcd_senddat(tempi); 5.3 ADS1115启动程序/*ADS1115驱动程序头文件*/#include <reg52.
16、h>/定义头文件#define uchar unsigned char #define uint unsigned int #define u8 unsigned char#define u16 unsigned int#define ulong unsigned long void delay_1115(uint ms);void AD_Start(void);void AD_Stop(void);void Send_byte(uchar byte);uint Read_byte(void);void AD_Config(uchar channel);void Point(void);
17、u16 Read_result(void);float AD_last(uchar channel_ad);/*ADS1115 AD1 驱动程序*/#include <reg52.h>/定义头文件#include "ads1115.h"sbit AD1115_SCL=P00; sbit AD1115_SDA=P01; #define SCL_H AD1115_SCL = 1 #define SCL_L AD1115_SCL = 0 #define SDA_H AD1115_SDA = 1#define SDA_L AD1115_SDA = 0uchar Init
18、data4;u16 result=0;void delay_1115(uint ms) u16 a; while(ms-) a=120; while(a-); /*函数名称:void AD_Start(void)函数功能:ADS1115开始通信信号返回值:无*/void AD_Start(void) SDA_L; delay_1115(2); SCL_H; delay_1115(1); SDA_H; delay_1115(2); SDA_L; SCL_L; delay_1115(2);/*函数名称:void AD_Stop(void)函数功能:ADS1115结束通信信号返回值:无*/void
19、AD_Stop(void) SDA_L;SCL_H;SDA_H;/*函数名称:void Send_byte(uchar byte)函数功能:ADS1115单字节传输返回值:无*/void Send_byte(uchar byte)uchar i;for(i=0;i<8;i+) if(byte<<i)&0x80) /从高位开始传 SDA_H; else SDA_L; SCL_H; delay_1115(1); SCL_L;SDA_H;SCL_H;delay_1115(1);SCL_L; / delay_ms(1); /*函数名称:void Read_byte(void)
20、函数功能:ADS1115 read a byte 返回值:temp */uint Read_byte(void)uchar temp=0,flag;uchar i;for(i=0;i<8;i+) temp=temp<<1;SCL_L; delay_1115(1);SCL_H;delay_1115(1); flag = P0;if( flag & 0x02) /数据位为1temp|=0x01; delay_1115(1); SCL_L; / ACK 结束时序delay_1115(1);SDA_L;SCL_H;delay_1115(1);SCL_L; SDA_H;retu
21、rn temp; /*函数名称:void AD_Config(uchar channel)函数功能:ADS1115 channel choose 返回值:无 */ void AD_Config(uchar channel) uchar channel_code=0;uchar i; switch(channel)case 0:channel_code=0xc2;break;/通道0配置寄存器的高8位 case 1:channel_code=0xd2;break;/通道1case 2:channel_code=0xe2;break; /通道2case 3:channel_code=0xf2;br
22、eak; /通道3 default: break; Initdata0=0x90;/ address and write command 地址为0x90Initdata1=0x01;/ points to Config registerInitdata2=channel_code; / congfig the high byte ,choose the channelInitdata3=0xe3; /speed:860sps , SCL_H;AD_Start();for(i=0;i<4;i+) Send_byte(Initdatai); delay_1115(1);AD_Stop();
23、/*函数名称:void Point(void)函数功能:ADS1115 write to pointer register 返回值:无 */void Point(void) /配置pointer registerSCL_H;AD_Start();Send_byte(0x90);delay_1115(1);Send_byte(0x00);delay_1115(1);AD_Stop();delay_1115(1); /*函数名称:uchar Read_result(void)函数功能: read ADS1115's conversation result 返回值:result */u16
24、Read_result(void)uchar result_L=0,result_H=0; SCL_H;AD_Start();delay_1115(1);Send_byte(0x91);delay_1115(1);delay_1115(1);result_H=Read_byte();delay_1115(1);result_L=Read_byte();delay_1115(1);AD_Stop(); result=result_H*256+result_L; /即高位结果向左移8位与低8位构成一个字return result; /*函数名称:uchar AD_last(void)函数功能: g
25、et the last result 返回值:last */float AD_last(uchar channel_ad)float last2=0;u16 last1=0;AD_Config(channel_ad);/选择通道delay_1115(5);Point();delay_1115(5);last1=Read_result(); /正值最大为0x7fff,选取FS为4.096 last2=4.096*(last1/32768.0); return last2;6性能分析6.1实物测试图图8 系统实物图图9 输入1Vpp信号测量图 图10 输入5Vpp信号测量图图11输入10Vpp信号
26、测量图图12 输入15Vpp信号测量图图8为整套系统实物图,主要由电源模块、峰值有效值转换模块、A/D电压检测模块以及单片机控制模块组成。图9至图12为实测的数据,分别对应峰峰值为1V、5V、10V、15V时,本系统所检测的有效值通过LCD1602显示。6.2测量数据分析表2 实际测量数据与理论值分析表输入(Vpp)1234567理论值(V)0.350.701.061.411.772.122.47检测值(V)0.340.691.051.411.752.102.46误差(V)0.010.010.0100.020.020.01输入(Vpp)9101112131415理论值(V)3.183.543.894.244.604.955.30检测值(V)3.183.553.914.264.614.955.30误差(V)00.010.020.020.0100由表2数据可知,对于50HZ幅值在015Vpp的正弦交流信号,本系统能有效测量其有效值,测量显示的分辨率为0.01V,误差随输入信号幅值的不同略有变化,总体控制在0.02V内,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石材开采中的环境保护措施考核试卷
- 有色金属压延加工环境风险评估考核试卷
- 疫苗抗病毒感染机制考核试卷
- 股权投资中的Pre-IPO策略考核试卷
- 羧甲基纤维的市场前景分析考核试卷
- 稀土金属加工企业发展战略考核试卷
- 电视广播多频段接收器与转换技术考核试卷
- 职业技能成长策略分享会议考核试卷
- 热电联产技术发展趋势考核试卷
- 矿山污染物排放与环保标准考核试卷
- T-COFA 0021-2022 渔用油电混合多旋翼无人机安全检查和维 护保养要求
- 2025贵州毕节市七星关区招聘城市社区工作者186人笔试备考题库及答案解析
- 2025届河北省“五个一”名校联盟高三下学期4月联考化学试题(含答案)
- 山东省泰安市2025届高三二轮模拟检测考试政治(泰安二模)(含答案)
- 2025-2030中国环境监测发展分析及发展趋势与投资前景研究报告
- 2025年教师资格证面试结构化模拟题:教师心理健康维护试题集
- 大疆精灵4 RTK无人机操作与测绘培训指南
- 2025届江苏省南京一中高三第二次模拟考试物理试卷含解析
- 初中语文第16课《有为有不为》课件-2024-2025学年统编版语文七年级下册
- 2025年内蒙古化工职业学院单招职业技能考试题库必考题
- 2024-2025下学期高二化学鲁科版期中必刷题之化学键与物质的性质
评论
0/150
提交评论