教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

数字电压表单片机课程设计

来源:网络收集 时间:2026-08-23
导读: 《单片机技术及其应用》 课程设计报告 题目:数字电压表的设计 班级:11通信本2班 学号:1011028432 姓名:段苓苓 同组人员:钟梦为梅韶田赵赫宇周洋 指导教师:刘少敏薛莲 2014年06月26日 目录 1 引言 (1) 1.1 设计意义 (1) 1.2 系统功能要求 (1) 2 设计内

《单片机技术及其应用》

课程设计报告

题目:数字电压表的设计

班级:11通信本2班

学号:1011028432

姓名:段苓苓

同组人员:钟梦为梅韶田赵赫宇周洋

指导教师:刘少敏薛莲

2014年06月26日

目录

1 引言 (1)

1.1 设计意义 (1)

1.2 系统功能要求 (1)

2 设计内容 (1)

2.1 设计思路 (1)

2.2 主要功能 (2)

3 方案论证 (2)

3.1 程序设计 (2)

3.2 电路设计原理 (3)

3.3 软件设计方案 (4)

3.4 硬件设计方案 (4)

4 单元电路设计 (5)

4.1 数码管显示器 (5)

4.2 单片机的晶振电路 (6)

4.3 显示模块 (7)

4.4 ADC0808模数转换芯片 (7)

8 .................................... 复位电路4.5 4.6 AT89C52单片机的引脚介绍 (9)

4.7 模拟输入电路 (10)

4.8 总电路设计 (10)

5 系统软件程序的设计 (11)

5.1 主程序 (11)

11 ............................ 5.2 A/D转换子程序11 显示子程序 ................................. 5.3

11 ................................ 调试及性能分析6

11 6.1 调试方法及步骤 .............................

12 实物调试数据............................... 6.2

13 6.3 误差分析...................................

14 ...................................... 7 心得体会15 指导老师意见 . (8)

16 附录:..........................................

数字电压表的设计

1 引言

1.1 设计意义

我们学习的是单片机这门课程,这门课程最显著的特点就是它是一门实用技术课程,它要求我们不仅仅要掌握扎实的理论基础,更重要的是要学会如何去真真利用它为我们的电路设计服务,也只有通过课程设计这样的动手实践才是我们掌握这门技术的最佳途径,因此,我们开设这样的实践是很重要的,也是我们努力去

学习钻研的动力。

数字电压表是采用数字化检测技术,把连续的模拟量(直流输入电压)换成不连续的、离散的数字形式并加以现实的仪表,克服了传统模拟电压表的读书不方便和不精确等问题。不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强集成方便,还可以与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已广泛应用于电子电工测量、工业自动化仪表、自动测试系统等智能化测量领域,展现了强大的生命力。与此同时,由数字电压表扩展而成的各种通用及专用数字化仪器,也把电量及非电量测量技术提高到了崭新的水平,因此,通过这次课程设计能让我们了解这些知识,为以后研究相关技术打下坚实的基础。

1.2 系统功能要求

采用51系列单片机和ADC设计一个数字电压表,测量0~5V范围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示,要求显示两位小数。

2 设计内容

2.1 设计思路

(1)根据设计要求,选择AT89C51单片机为核心控制器件。

(2)A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。

(3)电压显示采用4位一体的LED数码管。

(4)LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。

1

2.2 主要功能

(1)以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表

(2)1路模拟量输入,能够测量0-5V之间的直流电压值。

(3)电压显示用4位一体的LED数码管显示,至少能够显示两位小数。

3 方案论证

3.1 程序设计

为了在C语言源程序中直接编写中断服务函数的需要,KeilCx51编译器对函数的定义进行了扩展,增加了一个扩展关键字interrupt,它是函数定义是的一个选项,加上这个选项即可以将一个函数定义成中断服务函数。定义中断服务函数的一般形式为:

函数类型函数名(形式参数表) [interrupt n] [using n]

由于ADC0809的CLOCK的时钟频率不高于640KHZ,在这利用定时器T0的中断产生时钟频率,则可设置为:

void t0(void) interrupt 1 using 0

ADC0809的时序图如下:

图3-1 ADC0808的时序图

由时序图可知,只有在转换期间,EOC处于低电平,因此在AD转换开始前EOC 置为低电平,START在上升沿期间将芯片内的所有寄存器清零,在下降沿来临时

开始转换,由于所用的时钟为100KHz,比较的缓慢不需要再延时,在此等待转换结束,结束后将其数字量输出。

2

根据上述分析及原理,可设计程序流程图如下:

图3-2 程序流程图

3.2 电路设计原理

模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进行A/D转换。然后送到单片机中进行数据处理。处理后的数据送到LED中显示。同时通过串行通讯与上位通信。硬件电路及软件程序。而硬件电路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS 软件对其编译和仿真。

一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。驱动电路有多种,常用的是TTL或MOS集成电路驱动器,在本设计中采用了74LS244驱动电路。

本实验采用AT89C51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。该电路通过ADC0809芯片采样输入口IN0输入的0~5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89C51芯片的P0口。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口传送给数码管。同时它还通过其三位I/O口P1.0、P1.1、P1.2、P1.3产生位选信号,控制数码3

管的亮灭。另外,AT89C51还控制着ADC0809的工作。其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.4控制ADC0809的地址锁存端(ALE);P2.1控制ADC0809的启动端(START);P2.3控制ADC0809的输出允许端(OE);P2.0控制ADC0808的转换结束信号(EOC)。

3.3 软件设计方案

系统刚上电时,初始化程序主要执行70H-77H内存单元清0和P2口置0等准备工作。在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1S左右。主程序在调用显示子程序与测试子程序之间循环。

图3-3 A/D 转换测试子程序流程图

A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H~77H内存单元。

3.4 硬件设计方案

3.4.1 主控芯片

选用单片机AT89C52和A/D转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示部分可以控制。

4

3.4.2 显示部分

基于课程设计的要求和实验室所能提供的仪器,选用一个四联的共阴极数码管,外加四个三极管驱动。这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。

图3-4 数字电压表系统设计 …… 此处隐藏:3301字,全部文档内容请下载后查看。喜欢就下载吧 ……

数字电压表单片机课程设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/337305.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)