基于-单片机数字式电压表_第1页
基于-单片机数字式电压表_第2页
基于-单片机数字式电压表_第3页
基于-单片机数字式电压表_第4页
基于-单片机数字式电压表_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z信 息 工 程 学 院课程设计 报 告设计题目: 基于单片机的数字式电压表设计名称:电子信息专业根底课程设计班级:电子1004*: 儒文 琼*:设计时间:至指导教师: 王本有评 语:评阅成绩:评阅教师:目 录 TOC o 1-3 h z u HYPERLINK l _Toc345322391引言 PAGEREF _Toc345322391 h IHYPERLINK l _Toc345322392一、课程设计的性质和目的 PAGEREF _Toc345322392 h 2HYPERLINK l _Toc345322393二、课程设计的要求 PAGEREF _Toc345322393 h

2、2HYPERLINK l _Toc345322394三、主要仪器设备及软件 PAGEREF _Toc345322394 h 2HYPERLINK l _Toc345322395四、课程设计题目及要求 PAGEREF _Toc345322395 h 2HYPERLINK l _Toc345322396五、课题分析及设计思路 PAGEREF _Toc345322396 h 2HYPERLINK l _Toc3453223975.1、课题分析及总体设计 PAGEREF _Toc345322397 h 2HYPERLINK l _Toc3453223985.2、硬件设计 PAGEREF _Toc345

3、322398 h 2HYPERLINK l _Toc3453223995.2.1 系统总体设计框图 PAGEREF _Toc345322399 h 2HYPERLINK l _Toc3453224005.2.2 单片机系统 PAGEREF _Toc345322400 h 3HYPERLINK l _Toc3453224015.2.3 AD转换电路 PAGEREF _Toc345322401 h 6HYPERLINK l _Toc3453224025.3、软件设计 PAGEREF _Toc345322402 h 8HYPERLINK l _Toc345322403六、程序主要代码与分析 PAGE

4、REF _Toc345322403 h 8HYPERLINK l _Toc345322404七、实验结果截图 PAGEREF _Toc345322404 h 10HYPERLINK l _Toc345322405八、心得体会 PAGEREF _Toc345322405 h 11HYPERLINK l _Toc345322406参考文献 PAGEREF _Toc345322406 h 12-. z引言电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM和数字式电压表DVM。模拟式电压表

5、是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。数字式电压表首先将模拟量经模数A/D转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。确实模拟电压表在显示测量值方面精度校准,然而却也存在问题。模拟电压表采用用指针式,里面是磁电或电磁式构造,所以其响应速度较慢。然而在高速开展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。但数字电压表由于存在采样误差,精度不是很高。不过目前可以通过技术手段来缩小误差。

6、使其精度到达与模拟电压表一样准确甚至更高。可见将来数字电压表必将取代模拟电压表。现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。-PAGE . z一、课程设计的性质和目的通过课程设计,稳固在课堂上学到的有关电子技术、单片机、微机原理等课程的根本知识和根本方法,强化知识的综合运用和技能根本训练,通过硬件电路的设计和相应软件的编写,掌握软硬结合的控制程序设计,到达能独立阅读、编制和调试一定规模的电子产品制作或仿真。二、课程设计的要求1、遵循软硬件模块化设计。2、要求程序构造化设计。3、要求程序构造合理,语句使用得当,并附有必要的注释。4、适当追求

7、编程技巧和程序运行效率。三、主要仪器设备及软件PC机、绘图软件、仿真软件等。四、课程设计题目及要求选题后,有课题负责教师具体安排题目:基于单片机的数字式电压表要求:能测量滑动变阻器上的电压;当电压超过4v时,蜂鸣器报警。五、课题分析及设计思路5.1、课题分析及总体设计通过滑动变阻器产生可变电压;用ADC0804采集模拟电压转换成数字信号;将此数字信号用七段数码管显示;连接蜂鸣器以用来电压过高是报警。5.2、硬件设计5.HYPERLINK l _Toc744637782.1 系统总体设计框图本系统采样Atmel89C51单片机作为控制核心,以ADC0804为数据采样系统,实现被测电压的数据采样;

8、使用系列比拟器检测输入电压的围,用共阴极数码管显示结果。 显示电路 AD转换 输入电压 51单片机 报警电路图15.HYPERLINK l _Toc744637792.2 单片机系统单片机最小系统包括复位电路,晶振电路,电源电路,仿真时需搭建复位电路和晶振电路。晶振电路:图2复位电路:图3报警电路:图4 单片机最小系统如下所示,其中P1口用于驱动数码管,P0口用于数码管显示,P2 口用于接收ADC0809转换的数据,P3口用于蜂鸣器报警。-. z单片机最小系统:图5-. z5.2.3 AD转换电路ADC0804的引脚图:图6ADC0804的特性:CMOS的逐步逼近式AD转换器。具有8位分辨力,

9、转换时间为100微秒,而最大误差为1个LSB 值(最小电压刻度)。采用差动式模拟电压输入,三态式数字输出。模拟输入电压围为0到5V(千万不要输入过高电压,一下子就烧毁)。 ADC0804与单片机的连接:图75.3、软件设计设计思路及软件流程图软件局部采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及继电器控制程序、七段数码管显示组成。系统软件设计是在KeilC编译环境下进展的,由于C语言程序可移植性好,所以提高了编程的效率。软件程序流程图:声明函数设置扫描信号初始值开场读取显示区数组,转换显示编码输出/延迟4个字.20次返回NoNoyesyes开场声明变量与函数调用显示

10、函数读取ADC转换结果转换千位数转换百位数转换十位数转换个位数=4V调用蜂鸣器发声函数4V 显示函数 主程序-. z六、程序主要代码与分析关键代码要有注释:*include /定义8051存放器的头文件*define SEG P0 /声明七段数码管的位置sbit buzzer=P31; /声明蜂鸣器的位置 sbit relay=P30; /声明继电器的位置char TAB10= 0*c0, 0*f9, 0*a4, 0*b0, 0*99,/数字04 0*92, 0*83, 0*f8, 0*80, 0*98 ;/数字59unsigned char disp4=0, 0, 0, 0;/声明显示区数组

11、void display(void);/声明显示函数void delay1ms(char);/声明延迟函数void pulse_BZ(int,int,int);/声明蜂鸣器发声函数 void pluse_RL(int,int,int);/声明继电器控制函数main()/主程序开场unsigned int results;/ 声明变量resultswhile(1)/无穷循环 SEG=0*ff;/关闭七段数码管buzzer=1;/输出高电平P2=0*ff;/全灭results= P2*196;/读取ADC804的转换结果再乘以196disp3=results/10000;/获得千位数disp2=(

12、results/1000)%10;/获得百位数disp1=(results/100)%10;/获得十位数disp0=(results/10)%10;/获得个位数display();/显示函数if (disp3=4)/假设电压超过4V pulse_BZ();/调用蜂鸣器发声函数/无穷循环完毕/主程序完毕void display(void)/显示函数开场char j,scan;/声明变量字符型变量j,scanchar i=20;/扫描20次while (-i=0)/while循环开场scan=1;/初始扫描信号for(j=0;j4;j+)/for语句开场P0=0*ff;/关闭七段数码管P1=sca

13、n;/输出扫描信号P0=TABdispj;/转换成驱动信号并输出到P0delay1ms(4);/延迟4msscan=1;/下一个扫描信号/for循环完毕/while循环完毕/显示函数完毕void delay1ms(char *)/延迟函数开场int i,j;/声明整型变量i,jfor(i=0;i*;i+)/计数*次,延迟*1msfor(j=0;j120;j+);/计数120次,延迟约1ms/延迟函数完毕void pulse_BZ(int count,int TH,int TL)/蜂鸣器发声函数开场 int i;/声明整型变量i for(i=0;icount;i+)/计数count次 buzze

14、r=1;/输出高电平 delay1ms(TH);/延迟TH*1msbuzzer=0;/输出低电平delay1ms(TL);/延迟TL*1ms/for循环完毕/蜂鸣器发声函数完毕void pluse_RL(int count,int TH,int TL) /继电器控制函数开场 int i; /声明整型变量i for(i=0;i5/0.025=200,因此ADC要选择8位的,滑动变阻器的准确度为0.025.八、心得体会 本次试验的难度虽不大,但在此过程中我学到了很多知识,同时也遇到了一些问题。例如:1.期间选择不当蜂鸣器,导致在仿真过程中,蜂鸣器不能正常发声,而要改用SPEAKER蜂鸣器;2.在驱动蜂鸣器的过程中没用使用NPN型低电压三极管驱动,虽然在仿真过程蜂鸣器可以发声但在实际试验中却不会发声;3.作为模拟电压的输入,滑动变阻器的变化不可以过快;4.用*define SEG P0不可以加;号;5.无穷循环while(1)后也不可以加;号;6.在仿真中不必将复位电路和晶振电路连接上,但是实际实验中却必须加上。 另外,软硬件一致也是很重要的

温馨提示

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

评论

0/150

提交评论