简易数字电压表-2路_第1页
简易数字电压表-2路_第2页
简易数字电压表-2路_第3页
简易数字电压表-2路_第4页
简易数字电压表-2路_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 单片机是一种集成电路芯片,采用超大规模技术,具有数据处理能力。随着单片机技术的飞速发展,单片机技术已成为一个国家现代化水平的重要标志。本次设计是基于STC89C52单片机为核心的,以AD0809数模转换芯片采样、以数码管显示的具有电压测量功能的具有一定精度的数字电压表。在实现基础功能的要求之上拓展了短路报警、高压报警等功能。关键词:单片机 数模转换 数字电压表 目录设计目的5设计要求51方案51.1芯片的选择51.2A/D采样方案51.3显示方案61.4电源方案71.5键盘部分72系统硬件电路设计83系统程序的设计93.1初始化程序93.2主程序93.3显示子程序93.4A/D转换测量子程序94调试及性能分析104.1调试与测试104.1.1基础功能测试104.1.2拓展功能104.2性能分析105设计总结116致谢127参考文献13附录1:26单片机C源程序清单26简易数字电压表设计目的本次设计的课题为“简易数字电压表的设计”,作为电子信息工程专业的专业实践课程,主要考察我们对单片机技术,编程能力等方面的情况。设计要求 1、可以测量05V的2路输入电压值; 2、可在4位LED数码管上轮流显示或单路选择显示; 3、测量最小分辨率为0.02V。1方案比较与论证1.1芯片的选择我们平时常用的单片机有AT89c52和STC89C52,这两款单片机都属于低功耗、高性能的单片机,在基础功能差不多的情况下,STC89C52较AT89C52功能更强大,前者不光数据存储空间较后者大,延时较短,同时内带2K字节EEPROM存储空间,并且可直接通过串口进行程序下载,所以我们选用STC89C52芯片(引脚补充见附录一)。1.2A/D采样方案采用8位A/D转换器ADC0809,变成简单方便,价格便宜。采样电路如下图:考虑到设计要求及价格和采购的便利,我们决定采用价格便宜,编程简单的ADC0809芯片来作为AD转换器。1.3显示方案采用4位数码管显示。虽然使用液晶的可以使电压表功能更完美,但考虑到价格,数码管虽然结构单一,但也能完成设计要求,所以我们选用4位数码管来完成显示。(与单片机的连线图,从原理图上把那部分截过来)1.4电源方案采用USB供电,电路图如下: 将U2的USB接口接上电脑USB插口线或者接上电源转换器,这时电源指示灯发亮,表示USB电源供电正常即可。使用十分方便。1.5键盘部分通过程序的扫描,判断按键,并切换到不同的功能模式中。实现模式切换后可以实现电压表单路和循环显示所测电压值。(也可以从原理图上截过来)综上所述,按系统功能实现要求及我们手里边现有的元器件,决定控制系统采用低功耗、高性能的STC89C52单片机,A/D转换采用价格便宜,编程简单的ADC0809,显示部分,考虑到现有资源,采用共阳极4位8段数码管显示。系统除能确保实现要求的功能外,还可以方便的进行8路其他A/D转换的测量和远程测量结果传送等拓展功能。2系统硬件电路设计简易数字电压测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图1.2所示。(只接D01,满足2路输入)A/D转换由集成电路ADC0809完成。ADC0809具有8路模拟的输入端口,地址线(第2325脚)可决定对哪一路模拟输入作A/D转换。第22脚为抵制锁存控制,当输入高电平时,对地址信号进行锁存。第6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。第7脚为A/D转换结束标志,当A/D转换结束时,第7脚输出高电平。第9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。第10脚为ADC的始终输入端,利用单片机第30脚的6分频晶振频率,再通过14024二分频得到1MHz时钟。单片机的P1、P3.0P3.3端口作为4位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时显示的通道。P0端口用作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制。3系统程序的设计3.1初始化程序系统上电时,初始化程序主要用来执行70H73H内存清0和P2口置0等准备工作。3.2主程序 刚上电时,系统默认为循环显示2个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1s左右。主程序在调用显示子程序与测量子程序之间循环。主程序流程图如下: 3.3显示子程序显示子程序采用动态扫描法实现4位数码管的数值显示。测量所得的A/D转换数据存放在70H73H内存单元中,测量数据在转换时需经过转换成为十进制BCD码存放在74H77H单元中,其中77H存放通道标志数。寄存器R3用作2路循环环控制,R0用作显示数据地址指针。3.4A/D转换测量子程序A/D转换测量子程序用来控制对ADC0809的2路模拟输入电压的A/D转换,并将对应数值移入70H73H内存单元。4调试及性能分析4.1调试与测试采用keil C51编译器进行源程序编译及仿真调试,将程序录进制作好的电路板进行软硬件联调。4.1.1基础功能测试 进行端口电压对比测试。测试对比表如表所列。表中标准电压值采用ut56数字万用表测得。(表)从表中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合课满足要求。4.1.2拓展功能 短路测试:用导线将IN7与地短接,数码管显示为0,同时蜂鸣器报警。 高压报警测试:把单片机接5.5V,蜂鸣器报警。4.2性能分析 (1)由于单片机为8位处理器,当输入电压为5.00V是输出数据值为(),因此单片机最高的分辨率为.(/255)。这就决定了改电压表的最高分辨率只能达到0.0196V,测试电压时一般以0.02V的幅度变化。如果要获得更高的精度要求,应采用12位、13位的A/D转换器。 (2)从表中可以看出,简易数字电压表测得的值基本上均比标准电压值偏大,这可以通过校正ADC0809的基准电压来解决(例如改变下拉电阻值)。因为该电压表设计时直接用5V的宫殿电源作为基准带电压,所以电压可能有偏差。另外也可通过软件怕编程来校正测量值。 (3)ADC0809的直流输入阻抗为1M欧姆,能满足常用的电压测试需要。另外,经测试ADC0809可直接在2MHz的始终频率下工作,这样可省去二进制分频器14024集成块。 (4)当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。但是量程越大,测量精度会越低。5设计总结通过为期2个星期的简易数字电压表的设计,我们结合所学过的课程,了解了简易仪表的发展状况,掌握了仪表的一把设计要求,工程设计方法,开发及设计工具使用方法,最重要的是通过这一设计实践过程,我们不再约束在理论上,而且锻炼了动手能力和分析解决问题的能力,积累了经验,培养了按部就班,一丝不苟的态度和对所学知识的综合应用能力,了解了很多课本上学不到的知识,为我们以后步入社会工作打下了一定的基础。6致谢首先我们非常感谢系里给我们这次机会来做课程设计,这让我们不仅强化了理论更强化了实践操作能力,也非常感谢指导老师们在本次设计中给予我们小组的帮助,无论是谢四莲老师严厉的指正还是岳舟老师细心的指导都让我们受益匪浅也十分感动,同时也感谢班上的同学在我们遇到困难时的热情帮助,在课程设计中,大家积极的交流与探讨也使我们受益非浅,希望在以后的学习道路中大家能够共同进步。成功不是属于一个人的,而是属于大家的。7参考文献1楼然苗 李光飞. 单片机课程设计指导北京航空航天出版社,2009年3月,P1P122万福君 潘松峰.单片机微机原理系统设计与应用.中国科技大学出版社,2001年8月第2版,P28P150单片机C源程序清单/*/ 2路电压表C程序/ 使用keil C51 ver7.09/*/*使用AT89C52单片机,12MHZ晶振,P0口读入AD值,P2口作AD控制,用共阳LED数码管P1口输出段码,P3口扫描,最高位指示通道(0-7)。*/#include reg52.h /52系列单片机定义文件#include intrins.h /调用_nop_();延时函数用#define ad_con P2 /AD控制口#define addata P0 /AD数据计入读入口#define Disdata P1 /显示数据段码输出口#define uchar unsigned char/无符号字符(8位)#define uint unsigned int /无符号整数(16位)sbit ALE=P23; /锁存地址控制位sbit START=P24; /启动一次转换位sbit OE=P25; /0809输出数据控制位sbit EOC=P37; /转换结束标志位sbit DISX=Disdata7; /LED小数点/uchar code dis_711=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;/* 共阳七段LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 */ uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; /四位列扫描控制字uchar data ad_data8=0x00,0x00,0x00,0x00;/定义4个数据内存单元uint data dis5=0x00,0x00,0x00,0x00,0x00; /定义4个显示数据单元、1个数据暂存单元/ /*1毫秒延时子函数*/delay1ms(uint t)uint i,j;for(i=0;it;i+) for(j=0;j120;j+) ;/*显示扫描子函数*/scan()uchar k,n;int h;dis3=0x00; /通道初值为0for(n=0;n2;n+) /每次显示2个数据 dis2=ad_datan/51; /测得值转换为三位BCD码,最大为5.00V dis4=ad_datan%51; / 余数暂存 dis4=dis4*10; /计算小数第一位 dis1=dis4/51; / dis4=dis4%51; / dis4=dis4*10; /计算小数第二位 dis0=dis4/51; / for(h=0;h500;h+) /每个通道值显示时间控制(约1秒) for(k=0;k4;k+) /四位LED扫描控制 Disdata=dis_7disk; if(k=2)DISX=0; P3=scan_conk;delay1ms(1);P3=0xff; dis3+; /通道值加1 /*0809AD转换子函数*/test()uchar m;uchar s=0x00;ad_con=s;for(m=0;m2;m+) ALE=1;_nop_();_nop_();ALE=0; /转换通道地址锁存 START=1;_nop_();_nop_();START=0; /开始转

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论