欢迎来到天天文库
浏览记录
ID:58683904
大小:1.40 MB
页数:19页
时间:2020-10-12
《基于-单片机数字式电压表.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.信息工程学院课程设计报告设计题目:基于单片机的数字式电压表设计名称:电子信息专业基础课程设计班级:电子1004姓名:儒文琼学号:20100132822010013281设计时间:2012.12.26至2013.01.09指导教师:王本有评语:评阅成绩:评阅教师:.目录引言I一、课程设计的性质和目的2二、课程设计的要求2三、主要仪器设备及软件2四、课程设计题目及要求2五、课题分析及设计思路25.1、课题分析及总体设计25.2、硬件设计25.2.1系统总体设计框图25.2.2单片机系统35.2.3AD转
2、换电路65.3、软件设计8六、程序主要代码与分析8七、实验结果截图10八、心得体会11参考文献12..引言电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM)和数字式电压表(DVM)。模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。数字式电压表首先将模拟量经模数(A/D)转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。众所周知,模拟电压表精
3、度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。但数字电压表由于存在采样误差,精度不是很高。不过目前可以通过技术手段来缩小误差。使其精度达到与模拟电压表一样精确甚至更高。可见将来数字电压表必将取代模拟电压表。现在有越来越多的数
4、字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。.一、课程设计的性质和目的通过课程设计,巩固在课堂上学到的有关电子技术、单片机、微机原理等课程的基本知识和基本方法,强化知识的综合运用和技能基本训练,通过硬件电路的设计和相应软件的编写,掌握软硬结合的控制程序设计,达到能独立阅读、编制和调试一定规模的电子产品制作或仿真。二、课程设计的要求1、遵循软硬件模块化设计。2、要求程序结构化设计。3、要求程序结构合理,语句使用得当,并附有必要的注释。4、适当追求编程技巧和程序运行效
5、率。三、主要仪器设备及软件PC机、绘图软件、仿真软件等。四、课程设计题目及要求选题后,有课题负责老师具体安排题目:基于单片机的数字式电压表要求:能测量滑动变阻器上的电压;当电压超过4v时,蜂鸣器报警。五、课题分析及设计思路5.1、课题分析及总体设计.通过滑动变阻器产生可变电压;用ADC0804采集模拟电压转换成数字信号;将此数字信号用七段数码管显示;连接蜂鸣器以用来电压过高是报警。5.2、硬件设计5.2.1系统总体设计框图本系统采样Atmel89C51单片机作为控制核心,以ADC0804为数据采样系统
6、,实现被测电压的数据采样;使用系列比较器检测输入电压的围,用共阴极数码管显示结果。显示电路AD转换输入电压51单片机报警电路图15.2.2单片机系统单片机最小系统包括复位电路,晶振电路,电源电路,仿真时需搭建复位电路和晶振电路。晶振电路:.图2复位电路:图3报警电路:.图4单片机最小系统如下所示,其中P1口用于驱动数码管,P0口用于数码管显示,P2口用于接收ADC0809转换的数据,P3口用于蜂鸣器报警。.单片机最小系统:图5.5.2.3AD转换电路ADC0804的引脚图:图6ADC0804的特性:•
7、CMOS的逐步逼近式AD转换器。•具有8位分辨力,转换时间为100微秒,而最大误差为1个LSB值(最小电压刻度)。•采用差动式模拟电压输入,三态式数字输出。•模拟输入电压围为0到5V(千万不要输入过高电压,一下子就烧毁)。.ADC0804与单片机的连接:图7.5.3、软件设计(设计思路及软件流程图) 软件部分采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及继电器控制程序、七段数码管显示组成。系统软件设计是在KeilC编译环境下进行的,由于C语言程序可移植性好,所以提高了编程的
8、效率。软件程序流程图:.声明函数设置扫描信号初始值开始读取显示区数组,转换显示编码输出/延迟4个字?20次?返回NoNoyesyes开始声明变量与函数调用显示函数读取ADC转换结果转换千位数转换百位数转换十位数转换个位数>=4V调用蜂鸣器发声函数<4V显示函数主程序.六、程序主要代码与分析(关键代码要有注释):#include//定义8051寄存器的头文件#defineSEGP0//声明七段数码管的位置sbitbuzzer=P3^1;/
此文档下载收益归作者所有