




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称 : 数字万用表的设计专 业: 电子信息工程班 级: 0学号:姓名:指导教师 :目录1、设计任务 31.1设计目的31.2设计指标及要求32、设计思路与总体框图 33、系统硬件电路的设计 43.1主控芯片4 3.2模数转换部分3.3电阻测量输入电路63.4电压测量输入电路73、5电流输入测量电路93.6 自锁开关104、软件设计 104.1 主程序设计104.2 A/D转换子模块115、系统调试115.1硬件调试115.2硬件故障115.3硬件调试方法125.4软件调试125.5软件故障125.6软件调试方法126实验数据处理126.1实验数据126.2实验数据分析137总结与体会13
2、7.1 总结147.2体会148 参考文献149 附录程序141 、设计任务1 1 设计目的采用 A/D 转换器 ADC0804 和 STC89C51 单片机,设计一台数字多用表,能进行电 压、电流和电阻的测量,测量结果通过 LCD 液晶显示器显示,通过按键进行测量功能 转换。12设计指标及要求电压测量范围020V,测量误差约为0.05V,电流测量范围1200mA,测量误差约为30.5mA,电阻测量范围01000 Q,测量误差约为2Q。2、设计思路与总体框图1.方案选择用单片机STC89C51与ADC0804设计一个数字万用表,配合分流电阻、分压电阻、基准电阻可以测量直流电压值,直流电流、直流
3、电阻,四位数码显示。实现各级量程的直流电压测量,其量程范围为0 20(V)。实现不同量程的直流电流测量,其量程范围为0200 ( mA)。实现不同量程的电阻测量,其量程范围为0 1000 (Q)。ADC0804是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMO组件。它是逐次逼近式 A/D转换器,可以和单片机直接接口。首先,利用P1 口数据地址复用,将地址通过P1 口输入到单片机中。然后,充分利用单片机强大的运算转化功能将其转成适当的二进制信号控制数显以确保正确的显示被测量的读数。2.总体框图图一:总体框图3、系统硬件电路的设计3.1主控芯片#本电压表采用 STC89C52为
4、主控芯片,电路如下图所接:U1PIO1PHP123P134P145P156P161Pl 7SRSTgP30luP3111P321213Ll15P351617KTAL218KT AU1920|vcc40T39POO38pot37P02315P0335PL 434P0533P0632P073130却23kev327Plfi26EK25RW24RS23Iwvfl22kl21PLOPL1Pl.2Pl.iPl.4PLSPl.6Pl.7KSTP3.0CRXDIM-1TXDP12(IMDiP3.4(T0)P3.5(T1)P3.6O) 玖兀RD) XTAL?XT.AL1CCPO.O(ADO) Pt).l(AD
5、l)P0.2(AD2)P0.3(AD3)P0.4(AD4) PO.S(ADS) PO血 ADA)F07(AD7) EX(vdd) .UEiPROGPSENP2.7(A15) P2fi(A14) P2.5(ABP2.4(A12)P2.3(A11)P2.2(A10)P2.1(A?)P2O(A8)4ATS9C?!GXD3.2模拟转换部分8位,该电压表采用的 ADC0804,此芯片优点是并行输出,速率快,缺点是只有 精度不高。下来 ADC0804芯片图:3.3数字多用表电阻输入电路u?itlCTplR曲1;CS RDVCC林EVER CLKINDBOCLKOUTDBLDB22DB3DCDB4DBSAG
6、XDDBGDGXDDBFp订二.ADCCS04INI3_P10 TTph 匝12TTpiiTTP151Tp16 TFpi?RJ2 keslIKGND8GXD单片机的P2.0 P2.2引脚通过一个转换开关接地,通过判断P2.0 P2.2引脚电平的高低,决定是否进行电阻测量、电压测量或电流测量。为了方便,将数字地和模拟地都直接接 到了一起,DB0DB7为并行输出口, CS, RD,WR为控制芯片模数转换及读取芯片数 据和写数据的引脚,ADC0804可以自己产生时钟, 只要在CLKR和CLKIN端接入电阻(10K)和电容(理论为 150pf本人接的220pf),可产生脉冲信号。 VREF为参考电压端
7、,VIN+和VIN 为电压输入端。当电压加在 VIN+和VIN 端时,在 DB0DB7可输出八位到单片机,本处参考电压为5V,则当输入电压 U时,输出数据为 temp,则U/temp=5/255.R10Re 2VCC图-二所示为数字多用表的电阻测量输入电路。运算放大器的反馈电阻 Rx作为待测电阻,通过1K电阻R10接到5V电源上,那么放大器的输出电压 Rv=5*Rx/(Rp+R15+R0+Rx),将 Rv送给 ADC0804 转换后得到数字量为 Dv=Rv*255/5。单 片机读取A/D转换数据,再经过逆向运算可得Rx=Dv*(R1p+R0+R15)/(5-Dv)*255,注意此时得到的Rx是
8、二进制数,需要转化成十进制数后才能送给1602显示,程序中采取用4字节无符号除法,连续进行4次除以10的除法,依次取得 4位数值,并且电阻测量范围只保证在 01KQ范围内误差不超过 2Q,如果要测量其他电阻,则需该改Rp的值。3.4数字多用表的电压测量输入电路R2Chesder 213R233:2:KCzp Wtm: lOOpFRJ4Ke*2100Ku护肿4.58kD4R17L?左MEi210KMlU n ic1:3Wj 社9RP*t70011图-四图-四所示为数字多用表的交流电压测量输入电路,ACV量程为012V待测电压经交流电压测量图过低通滤波器滤除干扰,再经过同向放大器送给ADC0804
9、电压测量输入范围012 V, ADC084的分辨率为8位,测量误差为12/255=0.05V 。 D5为整流管,D4起保护作用。R24、C6组成平滑滤波器。C5 C4为隔直电容。Uout=Uac(有效值)图-五直流电压测量图图-五直流电压测量电路。DCV量程为 012V。Uout=R8*U/(R7+R8+R11),所以,U=(R7+R8+R11)* Uout/R8。R7和R8为分压电阻,大小都为 10M。R11为匹配电阻,保证等值分压。R13为限流电阻,大小为1Mo3.5数字万用表的电流测量输入电路JL图-六电流测量电路图图-六是数字万用表电流测量输入电路。电流测量范围为1-200mA,因为A
10、DC0804是电压转化器,必须将电压才能进行测量,这可以通过串接电阻RP来实现,注意 RP必须很小(如0.1 Q ),否则营销电流数值,由于待测电流和RL都很小,RL两端的电压也很小,必须将其放大到 ADC0804能够分辨的范围之内。R12为限流电阻,大小为 1M D2, D3为双向限幅过压保护二极管,起过流保护作用。133.6 自锁开关lixesiCHOKE1畑I三GDR1L丹+用来控制测量哪一种变量,10K的限流电阻。4、软件设计4.1主程序主程序包括初始化部分FJR43LK.CHOKfS7T3CB-Q1CEDiod4LN4CC7 S3图-七自锁开关图同时用来检测正测的信息,通过导线送入到
11、单片机。上面接调用A/D转换子程序和调用显示程序,如下图所示:164.2 A/D转换子模块:A/D转换子程序用于对 ADC0804八路输入模拟电压进行 A/D转换,并将转换的数值 存入八个相应的存储单元中,如下图:返回*5、系统调试基于单片机的数字电压表在组装好以后,便可进入系统的在线调试,起主要任务是排除样机硬件故障并完善其硬件结构,试运行所设计的程序,排除程序错误,优化程序 结构,使系统达到预期的功能,进而固化软件。5.1硬件调试单片机应用系统的硬件和软件调试时交叉进行的,但通常是先排除样机中明显的硬 件故障,尤其是电源故障,才能安全和仿真器相连,进行综合调试。5.2硬件电路故障(1)错线
12、开路短路;(2)元器件损坏(3)电源故障5.3 硬件调试方法 本设计调试中所用的调试方法是静态测试: 在样机加电之前,首先用万用表等工具,根据硬件电器原理图和装配图仔细检查样 机线路的正确性,并核对元器件的型号 规格和安装是否符合要求。第二步是加电后检 查各插件上引脚的点位,仔细测量各电位是否正常。第三步是在不加电的情况下,除单 片机以外,插上所有的元器件,最后用仿真适配器将样机的单片机插座盒仿真器的仿真 接口相连,为联机调试做准备。5.4 软件调试5.5 软件电路故障(1)当以断点或连续方式运行时,目标系统没有按规定的功能进行操作或什么结果 也没有,这是由于程序转移到意外之外或在某处死循环所
13、造成的。( 2 )结果不正确5.6 软件调试方法软件调试所使用的方法有:计算程序的调试方法, 法6、实验数据处理6.1 实验数据012 直流电压为次数 标准值 电压示值 满度误差123456789101112131415I/O 处理程序的调试法,综合调试0 12 交流电压为次数 标准值 电压示值 满度误差123456789101112131415161718192017实验数据0-1K 电阻为0-200mA电流为次数标准值电压示值满度误差次数标准值电压示值 满度误11223344556677889910101111121213131414151516171819206 2 实验数据分析直流 0
14、-12V 量程精度为满度误差 为交流 0-21V 量程精度为满度误差为电流 0-200mA 量程精度为满度误差为7、 总结与体会数字多用表的课程设计,从确定方案、查找资料、仿真电路图,到最后电路设计实践,耗时2个星期。数字多用表的设计方案采取STC89C51单片机结合 A/D转换器,从而实现对电阻、电流和电压的测量的方案,从而实现电阻、电流和电压的 数字化测量。本次课程设计,虽然方案基本出来了,但是在硬件制作方面出现了几个问题,这也 暴露出我们知识方面的一欠缺。不足主要体现在以下几个方面:(1)ADC0804 的第 10 脚的时钟信号,我们是通过单片机编程实现的但是由于频率 过低,只有 500
15、KHz ,造成 1602 液晶显示器显示不稳定而出现闪烁现象。最终验收 时是通过从外部信号发生器输入 2MHz 时钟信号解决的。(2)万用板焊接时,由于布线不太合理,使得背面线很零乱。并给后面的线路检 查带来了不少麻烦。(3)51 单片机基础知识不扎实,电路分析遇到比较多的问题历经两个星期的课18/ 头文件 #include/ 宏定义程设计后我深得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知 识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内 容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其 在电路中的使用有了更多的认识。虽然最终的结果让人
16、失望, 但在此期间我们也曾一度热情高涨。 从开始时满 8、参考文献单片机原理及应用 张毅刚 主编高等教育出版社单片机原理实用教程 徐爱钧 编著 电子工业出版社 电子技术基础康华光 主编高等教育出版社集成电路原理及应用谭博学、苗汇静 主编 电子工业出版社 9、附录程序主程序:#include/头文件 #include #include #include #include #include #include #include void main() while(1) write_com(0x01); lcd_init(); display_voltage(); 1、宏定义和定义变量:#define
17、 uchar unsigned char #define uint unsigned int uchar table= measurement: uchar range20=RANGE020V: uchar range200=RANGE0200mA: uchar range2000=RANGE02K:;uchar warning=Please Choice! ;/*uchar error=error!; */ uint measure10;sbit key3=P2A7;sbit keyO=P2A2;sbit key1=P2A1;/ 定义液晶的 rs 端口/ 定义液晶的 rw 端口/ 定义液晶的
18、 en 端口/定义AD的cs端口/ 定义 AD 的 rd 端口sbit key2=P2A0; sbit lcd_rs=P2A3;sbit lcd_rw=P2A4;sbit lcd_en=P2A5;sbit back=P2A6;sbit spk=P2A7;sbit cs=P3A2;sbit rd=P3A1;sbit wr=P3A0;/sbit dula=P3A7;sbit INTR=P3A7;/ 定义 AD 的 wr 端口uint temp,i,A1,A2,A3,A4;/ 定义变量uint date;2、延时部分:void delay(uint z)uint x,y;for(x=z;x0;x-)
19、 for(y=110;y0;y-);void delay_lcd()/1602 指令之间延时uint x=5;while(x-);3、AD 转换和数据传送:void AD_init()/初始化 ADC0804cs=0;wr=1;_nop_();wr=0;_nop_();wr=1;uint AD_switch() /AD 转换部分uint temp;P1=0xff;rd=1;_nop_();rd=0;_nop_();temp=P1;将转后的原始值返给单片机P1 口return temp;uint AD_smooth()/ 软件滤波uint xx,i,temp; AD_init(); for(i=
20、0;i20;i+)measurei=AD_switch();delay(10);/每隔 10us ADC 转换并采集一次数据,将得/到的数据放到数组中,采集十个数据24for(xx=0;xx20;xx+)/将十个数据冒泡法排序for(i=xx;imeasurei)temp=measurei;measurei=measurexx; measurexx=temp;for(i=6;i16;i+)/ 去掉了三个最小值和两个最大值, /取中间五个数的平均值xx+=measurei;xx=xx/10;return xx;/将滤过波后的值存入单片机4、1602 子程序:void write_com(ucha
21、r com)/ 写指令delay(5);lcd_en=0;lcd_rs=0;lcd_rw=0;_nop_();lcd_en=1;P0=com;lcd_en=0;lcd_rs=0;void write_date(uchar date)/ 写数据 delay(5); lcd_en=0; lcd_rs=1; lcd_rw=0; _nop_(); lcd_en=1; P0=date; lcd_en=0; lcd_rs=0;void lcd_init()/ 初始化back=0; delay(15); lcd_en=0;write_com(0x38); write_com(0x38); write_com
22、(0x38);write_com(0x06); write_com(0x0c);write_com(0x01);5、键盘扫描:uint keyscan() if(key0=0&key1=1&key2=1&key3=1) return 1;else if(key0=1&key1=0&key2=1&key3=1) return (2);else if(key0=1&key1=1&key2=0&key3=1) return (3);else if(key0=1&key1=1&key2=1&key3=0) return (4);else if(key0=1&key1=1&key2=1&key3=1)
23、return(5);else return (6);6、数据整理及显示:void display20V(uint temp)/ 量程为 20V 时的显示状态 uint num0,num1,num2,num3; if(temp7) temp=0;else temp=temp-7; num0=temp/ 51; num1=temp%51*10/ 51;num2=temp%51*10%51*10/ 51; num3=temp%51*10%51*10%51*10/ 51;write_com(0x80+0x40+11); write_date(num0+0x30); delay_lcd();write_
24、com(0x80+0x40+12);write_date(.); delay_lcd(); write_com(0x80+0x40+13); write_date(num1+0x30);delay_lcd(); write_com(0x80+0x40+14); write_date(num2+0x30);delay_lcd(); write_com(0x80+0x40+15); write_date(num3+0x30);delay_lcd();void display200mA(uint temp)/ 电流 200mA 时的显示状态 uint num0,num1,num2,num3; if(
25、temp7) temp=0;else temp=temp-7; num0=temp/ 510; num1=temp%51*10/ 510;num2=temp%51*10%51*10/ 510; num3=temp%51*10%51*10%51*10/ 510;write_com(0x80+0x40+11); write_date(num0+0x30); delay_lcd();write_com(0x80+0x40+12);write_date(.);delay_lcd();write_com(0x80+0x40+13);write_date(num1+0x30);delay_lcd(); w
26、rite_com(0x80+0x40+14);write_date(num2+0x30);delay_lcd(); write_com(0x80+0x40+15);write_date(num3+0x30);delay_lcd();void display2000(uint temp)/ 量程为 2000 欧时的显示状态 uint num0,num1,num2,num3; if(temp7) temp=0;else temp=temp-7; num0=temp/ 51;num1=temp%51*10/ 5.1; num2=temp%51*10%51*10/ 5.1; num3=temp%51*
27、10%51*10%51*10/ 5.1;write_com(0x80+0x40+11); write_date(num0+0x30);delay_lcd(); write_com(0x80+0x40+12);write_date(.);delay_lcd(); write_com(0x80+0x40+13);write_date(num1+0x30);delay_lcd(); write_com(0x80+0x40+14);write_date(num2+0x30);delay_lcd(); write_com(0x80+0x40+15);write_date(num3+0x30);delay_lcd();void displ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海洋油气开采中的深海钻探技术考核试卷
- 电商客服职业素养小课堂
- 静脉留置针的应用与维护 2
- 克拉玛依市白碱滩区2024-2025学年三下数学期末达标检测模拟试题含解析
- 西双版纳傣族自治州勐海县2025届三下数学期末质量检测试题含解析
- 宜昌市虎亭区2025届三下数学期末综合测试模拟试题含解析
- 新疆第一师阿拉尔市2025届六年级下学期小升初数学试卷含解析
- 辽宁省昌图县2025年初三下学期开学收心考试数学试题含解析
- 豫章师范学院《高等代数与几何》2023-2024学年第一学期期末试卷
- 喀什大学《计算机组成原理》2023-2024学年第二学期期末试卷
- 儿童支气管哮喘诊断与防治指南解读(2025年)课件
- 广东省2024-2025学年佛山市普通高中教学质量检测地理试卷(二)高三试卷(佛山二模)
- 锤击桩打桩作业安全培训
- 2024新沪教版英语初一上单词表
- SF-36生活质量调查表(SF-36-含评分细则)
- 高等数学课件第一章函数与极限
- LY/T 3292-2021自然保护地生态旅游规范
- 学校国家义务教育质量监测应急预案(三页)
- 分管教学副校长在期中质量分析会上的发言教学文稿
- 学术委员会秘书处职责(精编版)
- 古筝艺术的研究现状与理论思考
评论
0/150
提交评论