简易数字电压表设计说明书Word下载.docx
- 文档编号:6910388
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:22
- 大小:665.25KB
简易数字电压表设计说明书Word下载.docx
《简易数字电压表设计说明书Word下载.docx》由会员分享,可在线阅读,更多相关《简易数字电压表设计说明书Word下载.docx(22页珍藏版)》请在冰点文库上搜索。
4.2.2A/D转换子程序……………………………………………………9
4.2.3显示子程序………………………………………………………10
5电路的连接与仿真……………………………………………………………11
5.1硬件电路的连接…………………………………………………………11
5.2仿真………………………………………………………………………11
6结论……………………………………………………………………………10
参考文献………………………………………………………………………12
附录1数字电压表原理图……………………………………………………13
附录2数字电压表源程序……………………………………………………14
1引言
随着我国现代化建设的发展,电子检测产品日新月异,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命。
目前,有各种单片机转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出了强大的生命力。
数字电压表简称DVM,它是采用了数字化测量技术,把连续模拟量(直流输入电压)转换成不连续,离散的数字形式加以现实的仪表。
传统的指针式电压表功能单一,精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高,抗干扰能力强,可扩展性强,集成方便,可与PC进行实时通信。
数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式,并加以显示,这有别于传统的指针加刻度盘进行读数的方法,避免了读数的视差和视觉的疲劳。
2总体设计
2.1设计题目及要求
本课题实验主要采用AT89C51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的0~5
V的模拟直流电压进行测量,并通过一个两位一体的7段LED数码管进行显示。
2.2设计方案
电压表的测量电路主要由三个模块组成:
A/D转换模块、数据处理模块及显示控制模块。
A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。
数据处理则由芯片STC89C51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;
另外它还控制着ADC0809芯片的工作。
显示模块主要由7段数码管组成,显示测量到的电压值。
2.3设计框图
图2-3设计框图
3硬件设计
3.1单片机AT89C51介绍
3.1.1主要特性
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh
Programmable
and
Erasable
Read
Only
Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51与MCS-51
兼容
4K字节可编程闪烁存储器,寿命:
1000写/擦循环,
数据保留时间:
10年,全静态工作:
0Hz-24Hz
,三级程序存储器锁定,128*8位内部RAM
,32可编程I/O线,
两个16位定时器/计数器,
5个中断源
,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
3.1.2管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0
口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,
ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/Vpp:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.1.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms
来完成。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.2采集模块设计
3.2.1ADC0809A/D功能描述
ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。
因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。
输入输出与TTL兼容。
ADC0809A/D转换芯片引脚功能
ADC0809芯片有28条引脚,采用双列直插式封装
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路.
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动信号,输入,高电平有效。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
地。
3.2.2ADC0809A/D转换芯片的原理
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
知道A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字输出到数据总线上。
3.2.3ADC0809A/D数据采集
ADC0809A/D采集电压时,首先单片机执行一条传送指令,在指令执行过程中,单片机在控制总线的同时产生CS1、WR1低电平信号,启动A/D转换器工作,ADC0809A/D经100us后将输入模拟信号转换为数字信号存于输出锁存器,并在INTR端产生低电平表示转换结束,并通知单片机可来取数。
当单片机通过数据总线查询到INTR为低电平时,立即执行输入指令。
以产生CS、RD2低电平信号到ADC0809相应引脚,将数据取出并存入储存器中。
整个数据采集过程中,由单片机有序的执行如干指令完成。
将8位A/D转换芯片ADC0809A与单片机进行如此连接,其目的有二:
一是为了利用单片机的信息处理能力,在总线上或由总线经过功能芯片,设置满足ADC0809芯片启动过程的时序程序,将启动A/D转换至于单片机的控制之下,这时ADC0809芯片的地址锁存器可以视为I/O接口中的只写寄存器;
二是将A/D转换结果数据读入CPU,这时ADC0809芯片中的输出数据寄存器可以作为普通I/O接口中的只读寄存器对待。
3.3显示模块设计
3.3.1LED基本结构
LED是发光二极管显示器的缩写。
LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示器件。
在单片机使用做多的是七段数码显示器。
LED七段数码显示器由6个发光二极管组成显示字段,其中7个长方形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小时点用,其他通过不同的组合可用来显示各种数字。
3.3.2LED显示器的选择
本设计中,选择4位一体的数码型LED显示器,其是一个共阴极接法的4位LED数码显示器,其中a,b,c,d,e,f,g是4位LED各段的公共输出端,1,2,3,4分别是每一位的位数选端,dp是小数点引出端4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部并联后,引出到期间的外部。
3.3.3LED译码方式
为了简化硬件线路设计,LED译码采用软件编程来实现。
采用共阴极LED,其对应的字符和字段码如下:
表3-1共阴极字段码表
显示字段
共阴极字段码
3FH
1
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
6FH
3.3.4LED显示器与单片机接口设计
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示,此次设计用的是动态扫描显示。
动态扫描方法使用期接口电路把所有显示器的8个笔画段a-h用同名端连在一起,而买个显示器的公共极COM各支独立的受I/O线控制。
CPU向字段输出口送出字形码是,所有显示器接收到相同的字形码,但究竟是嘛个显示器亮,则取决于COM端,而这一端是是由I/O的,由单片机决定何时显示哪一位。
动态扫描用分时的方法轮流控制各个显示器的COM端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及二极管的余晖效应,看上去就是一组稳定的显示数据。
4软件设计
4.1主程序流程图
电路主流程如4-1所示,设计包括主程序、显示控制程序、显示数据转为BCD码子程序、显示子程序、延时程序、电压测量子程序、按键检测子程序等。
图4-1主程序流程图
4.2系统子程序设计
4.2.1初始化程序
所谓初始化,就是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作时设置定时器的工作模式,初始预置,开中断和打开定时器等。
4.2.2A/D转换子程序
A/D转换子程序用来控制对输入的模式的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如4-2图所示。
图4-2子程序流程图
4.2.3显示子程序
显示子程序采用动态扫描方式实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED的显示比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够显示比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。
在本设计中,为了简化硬件设计,主要在用软件定时的方式,即用定时器0溢出中断功能实现11us定时,通过软件延时程序来实现5us的延时。
5电路的连接与调试
5.1硬件电路的连接
经以上的设计过程,可设计出基于单片机的简易数字电压表硬件电路原理图,如下:
此电路的工作原理是:
+5V模拟电压信号通过变阻器VR1分压后由ADC0809的INO通道进入,经模数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1口,AT89C51负责把接收到的数字量经过数字处理,产生正确的7段数码管的显示段码传送给4位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。
此外,AT89C51还控制ADC0809的工作,其中,单片机AT89C51通过定时器中断从P2.4输出方波,接到ADC0809的CLOCK,P2.6发正脉冲启动A/D转换,P2.5检测A/D转换是否完成,P2.7置高从P1口读取转换结果送给LED显示出来。
简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理图。
5.2仿真
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐性的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围的电子器件一起仿真。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著的特点是可以与KeiluVisions4工具软件结合进行编程仿真调试。
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。
仿真结果如下:
6结论
这次课程设计,使我对电路设计,单片机的使用等有了新的认识,通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。
基于单片机的数字电压表使用性强,结构简单,成本低,外接元件少。
在实际应用中工作性能好,测量电压准确,精度高,系统功能指标达到了设计要求。
通过本次设计,我对单片机这门课有了更深刻的理解,无论是在硬件连接还是软件编程方面都有了很大提高,所以,在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面的能力有所提升。
参考文献
[1]李建忠,单片机原理及应用,西安电子科技大学出版社,2004
[2]肖洪兵.跟我学用单片机,,北京航空航天大学出版社,2002.8
[3]何立民.单片机高级教程,北京航空航天大学出版社,2001
[4]赵晓安.MCS-51单片机原理及应用,天津大学出版社,2001.3
[5]李广第.单片机基础,北京航空航天大学出版社,1999
[6]徐惠民、安德宁.单片微型计算机原理接口与应用,北京邮电大学出版社,1996
附录
附录1:
数字电压表原理图
附录2:
数字电压表源程序
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
ADCEQU35H
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVLED_0,00H
MOVP2,#0FFH
MOVLED_1,00H
MOVLED_2,#00H
MOVDPTR,#TABLE
MOVTMOD,#02H
MOVTH0,#245H
MOVTL0,#00H
MOVIE,#82H
setbTR0
WAIT:
CLRST
SETBST
JNBEOC,$
SETBOE
MOVADC,P1
CLROE
MOVA,ADC
MOVB,#51
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#5
MOVLED_1,A
MOVLED_0,B
LCALLDISP
SJMPWAIT
INT_T0:
CPLCLOCK
RETI
DISP:
MOVA,LED_0
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
MOVA,LED_1
CLRP2.2
SETBP2.2
MOVA,LED_2
CLRP2.1
ORLA,#80H
SETBP2.1
RET
DELAY:
MOVR6,#10
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 数字 电压表 设计 说明书