简易数字电压表的设计

  • 格式:doc
  • 大小:950.50 KB
  • 文档页数:9

项 目 设 计 报 告

项目名称:简易电压表设计

专业:通信工程 班级学号:10304209

姓名:鹿应许

任课教师:刘寅生 成绩:

目 录

1. 引 言......................................................................................................................................... 1

1.1. 设计意义 ................................................................................................................... 1

1.2. 系统功能要求 ........................................................................................................... 1

2. 方案设计 ................................................................................................................................... 1

3. 硬件设计 ................................................................................................................................... 2

4. 软件设计 ................................................................................................................................... 3

5. 系统调试 ................................................................................................................................... 5

6. 设计总结 ................................................................................................................................... 5

7. 附 录A;源程序 ..................................................................................................................... 6

简易数字电压表的设计 单片机原理及应用课程设计

1 简易数字电压表的设计

1.引言

1.1. 设计意义

本课题的设计是基于AT89C52单片机为控制系统,ADC0809为转换的简易数字电压表。其意义主要有两个方面:其一,主要是检验我们对单片机原理及应用这门课的掌握程度包括硬件的组装与软件调试;其二,了解单片机的应用。

1.2. 系统功能要求

简易数字电压表可以测量0-5V的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。测量误差约为0.02V。

2. 方案设计

按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809.系统除能实现要求的功能外,还能方便的进行8路其他A/D转换量的测量,远程测量结果传送等拓展功能。数字电压表系统设计方案框图如图2.1所示:

图2.1 数字电压表系统设计方案框图 AT89C52

4位LED显示 ADC0809

上位复电

串口通信

电源电路 P0

P2

P1

P3 简易数字电压表的设计 单片机原理及应用课程设计

2 3. 硬件设计

简易数字电压测量由A/D转换、数据处理及显示控制等组成,电路原理图如图3.1所示,A/D转换有集成电路ADC0809完成。ADC0809据有8路模拟输入端口,地址线(第23-25脚)可决定对哪一路模拟输入作A/D转换。第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存,第6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。第7脚为A/D转换结束标志,当A/D转换结束时,第7脚输出高电平,第9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。

单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。其中P1端口控制段码,P3.0~P3.3端口控制位选。P3.5端口用作单路显示/循环转换按钮,P3.6端口用作单路显示时选择显示的通道。P0端口作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制。

图3.1 数字电压表电路原理图

简易数字电压表的设计 单片机原理及应用课程设计

3 AT89C52芯片引脚图如图3.2所示

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7PSENALEEAP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0VCC40393837363534333231302928272625242322211234567891011121314151617181920AT89C52

图3.2 AT89C52芯片引脚图

4. 软件设计

系统上电后,先进行程序初始化。

在刚上电时,系统默认为循环显示8个通道的电压值状态,当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。主程序在调用显示子程序与测量子程序之间循环。主程序流程图如4.1所示。

显示子程序采用动态扫描法实现4位数码管的数值显示。测量所得的A/D转换数据放在数组中,测量数据在显示时须经过转换成为十进制BCD码放在对应的数组中。

A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值放在数组中。A/D转换测量子程序流程图如图4.2所示。

简易数字电压表的设计 单片机原理及应用课程设计

4

图4.1 主程序流程图

图4.2A/D转换测量子程序流程图 开始

启动测试(TESTART)

A/D

转换结束?

(P3.7=1?)

ADC0809地址加1 取数据(P2.5=1)

地址数小于8?

结束 NY

N Y 开始

初始化

调用A/D转换测量子程序

调用显示子程序 简易数字电压表的设计 单片机原理及应用课程设计

5 5. 系统调试

线路连接完成后,首先检查是否有线松动的情况,然后要将连接实验板的正负极的铜线切断,以免造成短路。

调试中分块检查错误,首先要检查数码管是否完好。判断选通位以及段码是否线接好。若数码管检查完毕,无故障。则看数码管与单片机是否接通,通电,数码管是否显示。若不显示,则检查线路有无虚焊。直至无误。最后判断ADC0809是否起作用,依据就是数码管是否循环显示。若不显示,仍然是检查线路有无虚焊。硬件部分完毕,则进行软件调试。

采用 Kiel C51 编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧录好程序后进行软硬件联调,最后进行端口电压的对比测试。测试对比表如下表5-1所示。

表5-1 简易数字电压表与“标准”数字电压表对比测试表

6. 设计总结

通过本次课程设计,对单片机的接口技术连接有了一定的掌握,以前是用的单片机学习开发板,是现成的模块。这次得亲自设计板块的布局及其布线。布局过程中,各芯片的排列顺序尤其重要,应尽量的减少连线,充分利用底板的优势。布线方面,本次做的较差,是焊一根线,再布一根线,在这点上得引起重视。对以后的设计中,先规划好布线,然后再开始焊线。

实验中用到模/数转换芯片ADC0809,开始对其只有了一个初步的认识。通过本次的应用,掌握了其原理及其应用。

这是我第一次在底板反面焊线,反面焊线与正面焊线的一个弊端之处,在于,焊线很容易脱焊。尤其是当焊完后过一段时间,再调试时,就很有可能会不成功,得重新检查焊线的情况。

然后还有一点值得注意的是,焊线最后首先通过原理图画其反面的实物连接图,然后再开始焊接,不然很容易出错。在这点上我就出了错误,数码管和ADC部分就焊接了两遍。

通过本次课程设计的教训,相信会对以后的设计起一定的作用。

标准电压值/V 0.00 0.25 0.68 1.00 1.50 1.80 2.30 3.40 4.60

简易电压表测得值/V 0.00 0.26 0.69 1.02 1.51 1.81 2.32 3.41 4.61

绝对误差/V 0.00 +0.01 +0.01 +0.02 +0.01 +0.01 +0.02 +0.01 +0.01 简易数字电压表的设计 单片机原理及应用课程设计

6 7. 附 录A;源程序

#include

#define uchar unsigned char

uchar code led[]={0xc0,0xf9.0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar xiaoshudian=0xfe;

uchar ch1,ch2,ch3;

sbit start=P0^7;

sbit oe=P0^6;

sbit eoc=P0^5;

sbit xiaoshu2=P0^2; //数码管小数第2位选通端