欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的多功能测量系统.docx

    • 资源ID:16821580       资源大小:1.43MB        全文页数:30页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的多功能测量系统.docx

    1、基于单片机的多功能测量系统目录一、总体方案设计: 3二、单元模块设计 31.基于ICL8038的信号发生器的设计 32.放大整形电路的设计 53.峰值检波电路设计 64.基于MC34063的稳压电源的设计 7三.软件设计 81系统软件流程 82中断服务子程序 9四、系统调试 101.硬件调试 10(1)电源模块 10(2)正弦波产生模块 11(3)峰值检波模块 11(4)放大整形模块: 122.软件测试 13(1)ADC0809测量电压值 13(2)频率测量 13(3)占空比测量 143.软、硬件联调 14五. 结论 15参考文献: 15附录: 15附1:元器件明细表: 15附2:仪器设备清单

    2、 15附3:程序清单 16一、总体方案设计:以单片机为核心,设计并制作一种符合要求的多功能测量系统,其系统框图如下:自制正弦波发生器,频率1KHz10KHz可调,幅度1Vp-p2Vp-p可调。自制峰值检波电路和ADC转换电路,使之通过单片机编程后能显示出正弦波发生器所产生的幅度峰峰值,显示分辨率0.02V,显示准确度尽量高。自制放大整形电路,使之通过单片机编程后能显示出正弦波发生器所产生的正弦信号的频率,显示分辨率0.01KHz,显示准确度尽量高。测量并显示矩形波信号的频率和占空比的功能,频率为100Hz1KHz,占空比为10%90%,其中矩形波信号由仪器产生,其幅度满足TTL的电平范围。稳压

    3、电源1是由外界提供的12v直流稳压电源,自制满足要求的高效率“稳压电源2”模块,在12v的基础上,通过降压和反转将12V转换为正负5V(可调)的稳压直流电源能为运放LM324供电。二、单元模块设计1.基于ICL8038的信号发生器的设计ICL8038是一个能够输出三种波形的精密型集成电路,只需要调整外部的相关电容,电阻值就可以产生方波,三角波,正弦波低失真的脉冲信号。在外界温度变化时产生低的频率漂移,工作变化周期宽,占空比可调,具有较高的电平输出范围,容易使用的特点。具有电源电压范围宽,稳定度高,精度高等特点。只需调节外部阻容值达到改变振荡频率的目的。其电路图如下:频率和占空比的调节另一部分三

    4、角波、正弦波和方波的状态是:则由此两部分可得到波形的频率为:通过改变RA和RB的阻值即可以改变t1,t2的值,从而调节方波的占空比。当RA=RB=R时,频率f为:运算放大电路实现调幅运算放大电路如图所示,在此我们选用性能较优的运放OP27。采用反向运算放大器的电路接法,运算放大倍数为:则输出电压为:从而实现正弦波幅度可调。2.放大整形电路的设计由于输入的信号是正弦波。而后面的计数电路要求被测信号为矩形波,所以需要设计一个整形电路将正弦波转化成矩形波。在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过放大衰减处理。当输入信号电压幅度较大时,通过输入衰减电路将电压幅度降低。当输入信号

    5、电压幅度较小时,前级输入衰减为零时若不能驱动后面的整形电路,则调节输入放大的增益,时被测信号得以放大。根据上述分析,放大电路放大整形电路采用高频晶体管3DG100与74LS00等组成。其中3DG100为NPN型高频小功率三极管,组成放大器将输入频率为fx的周期信号如正弦波、三角波及方波等波形进行放大。与非门74LS00构成施密特触发器,它对放大器的输出波形信号进行整形,使之成为矩形脉冲。具体放大整形电路如图所示。 放大整形电路3.峰值检波电路设计输出初始值为0,当待测信号幅度高于0时,前级的运放输出高(相当于比较器),二极管导通。后级运放相当于跟随器,输出跟随输入的增大,同时电容充电。当待测信

    6、号幅度大于输出时,二极管导通,输出跟随输入,电路工作在“跟随状态”。当待测信号幅度小于输出时,二极管截止,但由于电容之前充电,存储的能量是之前最大幅度时的,因此后级跟随器依然保持之前的最大幅度,电路工作在“保持状态”。4.基于MC34063的稳压电源的设计降压电源变换器电路采用MC34063芯片作为其电路构成的核心部分,用以对12V的输入电压经过降压电源电路降至5V;定时电容Ct用以控制振荡器的频率,电感L和电阻R1、R2则是用以控制输出端电压;调节电感L的电感量以及电阻R2与R1比值即可控制输出端的电压输出,该电路设计则是输出端的电压降至5V;且要求在输出端带负载时的电压压降在00.5V之间

    7、,同时要求输出端的纹波尽量小。12V转5V电路如下图所示:12V转5V电路如下图所示:Vout=(1+R4/R5)*1.25V 三.软件设计1系统软件流程系统软件设计采用模块化设计方法。整个系统由初始化模块,信号频率测量模块,自动量程转换和显示模块等模块组成。系统软件流程如图所示。Key=1 Key=2 Key=3 2中断服务子程序T0中断服务子程序流程如图所示。测频时,定时器T0 工作在定时方式,每次定时50mS ,则T0 中断20 次正好为1秒,即T0用来产生标准秒信号,定时器T0 用作计数器,对待测信号计数,每秒钟的开始启动T0 ,每秒钟的结束关闭T0 ,则定时器T0 之值乘以分频系数就

    8、为待测信号的频率。T0中断服务子程序定时计数器T1工作在计数方式, 对信号进行计数,计数器1中断流程图如图所示。计数器1中断服务子程序四、系统调试本正弦波产生与测量系统调试包括系统软、硬件联合调试。硬件调试包括电源模块、正弦波发生器模块,峰值检波模块,放大整形模块、ADC模块等模块,软件调试就是通过修改程序,使频率测量、幅值测量与显示切换功能完善,提高测量精度。使用软件仿真,调试仿真结果,同时使用数字万用表和示波器测试输出电压值和输出波形,调试出正确的软硬件电路。1.硬件调试(1)电源模块将+12V直流电通过电路变成+5V与-5V直流电输出,输出直流电电压值稳定(2)正弦波产生模块自制正弦波发

    9、生器,频率1KHz10KHz可调,幅度1Vp-p2Vp-p可调。(3)峰值检波模块通过峰值检波电路检测正弦波电压最高值,通过调试输出信号稳定,毛刺较少且幅度在100mv之内。(4)放大整形模块:正弦波通过放大整形电路后输出方波。输出的方波峰峰值在4.35.4V之间,满足单片机测量需求,且波形稳定,频率与正弦波频率一致。2.软件测试(1)ADC0809测量电压值将电压信号输出ADC0809进行数据采集并返回单片机,经由1602液晶显示。显示数值稳定,精度高。(2)频率测量通过程序调试,可以测量100Hz到10KHz之间的方波频率,显示分辨率0.01KHz,且误差较小。(3)占空比测量通过调试,可

    10、以测量占空比10%90%之间的方波信号,测量误差在1%之内。3.软、硬件联调软、硬件联调过程中,硬件电路运行稳定,具有良好的带负载能力;软件程序数据测量准确、精度高,各功能间切换稳定、流畅。五. 结论由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。参考文献:模拟电子线路基础,吴运昌著,广州:华南理工大学出版社,2004年;数字电子技术基础,阎石著,北京:高等教育出版社,1997年;数据结构与算法,张晓丽等著,北京:机械工业出版社,2002年;单片机原理及应用,李建忠著,西安:西安电子科技大学,2002年;附录:附1:元器件明细表:1、 ICL8038

    11、2、 C513、 LM3244、 OP275、 MC340636、 AD08097、 液晶1602附2:仪器设备清单1、 低频信号发生器 2、 数字万用表 3、 失真度测量仪4、 数字示波器5、 稳压电源附3:程序清单#include#define uchar unsigned char#define uint unsigned int #define ufloat unsigned float sbit E=P25; /1602使能引脚sbit RW=P11; /1602读写引脚 sbit RS=P10; /1602数据/命令选择引脚sbit S=P24;sbit START=P23;sbi

    12、t EOC=P20;sbit OE=P21;sbit CLOCK=P22;sbit k1=P35; /独立按键sbit k2=P36; /独立按键sbit k3=P37; /独立按键uchar Count = 0;uchar Key_Value=0;uint a=0;uint f;uint tt,t,tl,zhan,t1,t2;long tll=0,ttt=0;uint n=0;uint h=12,m=1,s=1,ss=0;uint data0809;uint z;/* 延时子程序,延时时间为 1ms * x*/void Delay_1ms(uint i)/1ms延时 uchar x,j; f

    13、or(j=0;ji;j+) for(x=0;x=148;x+); /* 延时,延时时间大概为140US。*/void delay() int i,j; for(i=0; i=50; i+) for(j=0; j=2; j+);/* 1602命令函数*/void wcmd(uchar del) P0 = del; RS = 0; RW = 0; E = 0; delay(); E = 1; delay();/* 1602写数据函数*/void write(uchar del) P0 = del; RS = 1; RW = 0; E = 0; delay(); E = 1; delay();/*

    14、1602初始化,请参考1602的资料*/void L1602_init(void) wcmd(0x01); wcmd(0x38); wcmd(0x0c); wcmd(0x06); wcmd(0xd0);/* 改变液晶中某位的值,如果要让第一行,第五个字符显示b ,调用该函数如下 L1602_char(1,5,b)*/void L1602_char(uchar hang,uchar lie,char sign) uchar a; if(hang = 1) a = 0x80; if(hang = 2) a = 0xc0; a = a + lie - 1; wcmd(a); write(sign);

    15、/* 改变液晶中某位的值,如果要让第一行,第五个字符开始显示ab cd ef ,调用该函数如下 L1602_string(1,5,ab cd ef;)*/void L1602_string(uchar hang,uchar lie,uchar *p) uchar a,b=0; if(hang = 1) a = 0x80; if(hang = 2) a = 0xc0; a = a + lie - 1; while(1) wcmd(a+); b+; if(*p = 0)|(b=16) break; write(*p); p+; /* 时间显示*/void shijian() if(Key_Valu

    16、e=4) if(m=0) m=60; else m=m-1; Key_Value=0; if(Key_Value=5) m=m+1; if(m=60) m=0; Key_Value=0; if(Key_Value=6) if(m=0) m=60; else h=h-1; Key_Value=0; if(Key_Value=7) h=h+1; Key_Value=0; L1602_char(1,15,s%10+48); L1602_char(1,14,s/10%10+48); L1602_char(1,13,:); L1602_char(1,12,m%10+48); L1602_char(1,1

    17、1,m/10%10+48); L1602_char(1,10,:); L1602_char(1,9,h%10+48); L1602_char(1,8,h/10%10+48);/* AD初始化及刷新 */void adc0808_init() START=0; START=1; START=0; while(EOC=0); OE=1; data0809=P0; OE=0; z=(data0809*500.0)/255; /*定时器的初始化,11.0592MZ晶振 T0计数 T1计时*/void Time0_Init() TMOD=0x15; TH1=(65536-45900)/256; TL1=

    18、(65536-45900)%256; EA=1; ET1=1; TR1=1; void Time1_Init() TH0=0; TL0=0; TR0=1; /* 中断1 和中断3*/void Time0_Int() interrupt 3 TH1=(65536-45900)/256; TL1=(65536-45900)%256; Count+; ss+; if(Count=2) f=(TH0*256+TL0); f=(f*10)+10; TH0=TL0=0; a=a+1; Count=0; CLOCK=!CLOCK; if(ss=20) ss=0; s+; if(s=60) s=0; m+;

    19、if(m=60) m=0; h+; if(h=24) h=0; /* 名称 : Main()* 功能 : 主函数* 输入 : 无* 输出 : 无*/void main() L1602_init(); Time0_Init(); L1602_string(1,1,9-3-7); while(1) shijian(); /* 频率 */ if(k1=0) k1=1; Time0_Init(); L1602_char(2,8,f/1000%10+48); L1602_char(2,10,f/100%10+48); L1602_char(2,11,f/10%10+48); L1602_string(1

    20、,1,9-3-7); L1602_string(2,12, KHz ); L1602_string(2,1,freq: ); L1602_char(2,9,.); /* 幅值 */ if(k2=0) k2=1; adc0808_init(); L1602_string(2,1,Vp-p: ); L1602_char(2,9,.); L1602_string(2,12,V ); L1602_char(2,8,z/100+48); L1602_char(2,10,z/10%10+48); L1602_char(2,11,z%10+48); /* 占空比 */ if(k3=0) k3=1; L160

    21、2_string(2,1,zhan: ); L1602_string(2,14,% ); while(n200&k1!=0&k2!=0) if(k1=0|k2=0) break; TMOD = 0x11; TH0=0x00; TL0=0x00; while(S=1&k1!=0&k2!=0); TR0=1; while(S=0&k1!=0&k2!=0); tl=(TH0*256+TL0); tll=tll+tl; while(S=1&k1!=0&k2!=0); TR0=0; t=(TH0*256+TL0); ttt=ttt+t; n+; if(n=200) n=0; tll=tll/200; ttt=ttt/200; zhan=100-(tll*100)/ttt; L1602_char(2,12,zhan/10%10+48); L1602_char(2,13,zhan%10+48);


    注意事项

    本文(基于单片机的多功能测量系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开