课设报告.docx
- 文档编号:7026631
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:24
- 大小:572.84KB
课设报告.docx
《课设报告.docx》由会员分享,可在线阅读,更多相关《课设报告.docx(24页珍藏版)》请在冰豆网上搜索。
课设报告
信息与电气工程学院
单片机系统设计项目(三级项目)
设计说明书
(2013/2014学年第二学期)
题目:
简易数字电压表的设计
专业班级:
通信工程11级
学生姓名:
学号:
指导教师:
设计周数:
2周
设计成绩:
2014年6月20日
简易数字电压表的设计
摘要:
在电路设计中,我们常会用到电压表,本报告介绍了基于51系列单片机设计的一种简易数字电压表,该电压表实现的功能就是将两路模拟输入电压经A/D转换器转换为数字量,对这两路输入电压值用两位LED进行轮流显示或单路选择显示,显示精度为0.1V,并通过串口通信在Proteus软件中仿真显示。
本设计功能模块主要由三部分组成:
ADC0832转换器、AT89C51单片机、四位共阳数码管。
ADC0832转换器的作用是将输入的模拟电压信号转换为相应的数字量再传送到数据处理模块。
数字处理模块为AT89C51芯片,其功能为把从ADC0832接收到的数字量进行编码发送到四位共阳数码管进行显示并控制着ADC0832的工作。
在PC机上用KEIL进行编码,Proteus进行电路仿真,仿真无误后将程序烧入到开发板中。
关键字:
AT89C51单片机、ADC0832变换器、四位共阳数码管。
目录
1绪论1
1.1研究背景-数字电压表1
1.2Proteus简介1
1.3KeiluVision简介2
2系统应用的硬件介绍2
2.1AT89C51单片机2
2.1.1AT89C51性能2
2.1.2AT89C51各引脚功能3
2.2A/D转换模块4
2.2.1逐次逼近型A/D转换器原理5
2.2.2ADC0832的主要特性5
2.2.3ADC0832外部引脚及其说明6
2.2.4单片机对ADC0832的控制原理6
2.3LED显示模块7
2.3.1LED基本结构7
2.3.2LED显示器的选择7
2.3.3LED译码方式8
3设计方案9
3.1设计要求9
3.2整体设计方案9
3.3详细电路设计9
3.3.1复位电路9
3.3.2时钟电路10
3.3.3LED显示系统电路11
3.4整体电路11
4程序设计12
4.1程序设计总方案12
4.2系统子程序设计13
4.2.1初始化程序13
4.2.2A/D转换子程序13
4.2.3显示子程序14
5系统测试及结果显示14
6设计总结16
参考文献17
附录18
1绪论
1.1研究背景-数字电压表
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而具有精度高、抗干扰能力强、可扩展性强、集成方便,还可与PC进行实时通信的优点。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表是诸多数字化仪表的核心与基础。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。
数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。
目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。
A/D转换器分成四种:
计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。
目前最常用的是双积分式A/D转换器和逐次逼近式A/D转换器,其中双积分式A/D转换器转换精度高,抗干扰性能好,价格便宜,但是转换速度慢,因此这种转换器主要用于速度要求不高的场合。
而逐次逼近式A/D转换器转换速度快,但精度相对较差。
因此未来的A/D转换器将兼顾精度和速度,成本也会随着集成电路的发展而降低。
1.2Proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三
合一的设计平台,其处理模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
在Proteus绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程。
1.3KeiluVision简介
Keil软件是美国KeilSoftware公司出品的51系列兼容单片机汇编或C语言软件开发系统,在功能上、结构上、可读性、可维护性上有明显的优势。
Keil软件是目前最流行开发MCS-51系列单片机的软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
2系统应用的硬件介绍
本次课设用到的主要的硬件有3种:
AT89C51单片机,A/D转换模块,LED显示模块。
下面对这三部分硬件进行详细地介绍。
2.1AT89C51单片机
2.1.1AT89C51性能
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51功能性能:
与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:
1000次写/擦循环;数据保留时间:
10年;全静态工作:
0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。
2.1.2AT89C51各引脚功能
AT89C51提供以下标准功能:
4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。
AT89C51采用PDIP封装形式,引脚配置如图1所示。
图1AT89C51的引脚图
AT89C51芯片的各引脚功能为:
P0口:
这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。
P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:
这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口:
这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。
P3口:
这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表1所示。
表1P3口各位的第二功能
P3口各位
第二功能
P3.0
RXT(串行口输入)
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(片外数据存储器读允许)
Vcc为+5V电源线,Vss接地。
ALE:
地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
/EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若/EA=1,则允许使用片内ROM,若/EA=0,则只使用片外ROM。
/PSEN:
片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:
片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。
2.2A/D转换模块
现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0832、ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。
一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。
2.2.1逐次逼近型A/D转换器原理
逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。
它利用内部的寄存器从高位到低位依次开始逐位试探比较。
其原理框图如图2所示。
图
图2逐次逼近式A/D转换器原理图
转换过程如下:
开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。
2.2.2ADC0832的主要特性
ADC0832是NS(NationalSemiconductor)公司生产的串行接口8位A/D转换器,通过三线接口与单片机连接,功耗低,性能价格比较高,适宜在袖珍式的智能仪器仪表中使用。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
芯片具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
其主要特点有:
(1)8位分辨率,逐次逼近型,基准电压为5V;
(2)5V单电源供电;
(3)输入模拟信号电压范围为0~5V;
(4)输入和输出电平与TTL和CMOS兼容;
(5)在250KHZ时钟频率时,转换时间为32us;
(6)具有两个可供选择的模拟输入通道;
(7)功耗低,15mW。
2.2.3ADC0832外部引脚及其说明
ADC0832有DIP和SOIC两种封装,DIP封装的ADC0832引脚排列如图3所示。
各引脚说明如下:
CS——片选端,低电平有效。
CH0,CH1——两路模拟信号输入端。
DI——两路模拟输入选择输入端。
DO——模数转换结果串行输出端。
CLK——串行时钟输入端。
图3ADC0832引脚图
Vcc/REF——正电源端和基准电压输入端。
GND——电源地。
2.2.4单片机对ADC0832的控制原理
一般情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK提供时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲到来之前DI端必须是高电平,表示启动位。
在第2、3个时钟脉冲到来之前DI端应输入2位数据用于选择通道功能,其功能项见表2。
表2ADC0832配置位
输入形式
配置位
选择通道
CH0
CH1
CHO
CH1
差分输入
0
0
+
-
0
1
-
+
单端输入
1
0
+
1
1
+
如表2所示,当配置位2位数据为1、0时,只对CH0进行单通道转换。
当配置2位数据为1、1时,只对CH1进行单通道转换。
当配置2位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当配置2位数据为0、1时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
2.3LED显示模块
2.3.1LED基本结构
LED是发光二极管显示器的缩写。
LED显示器是由若干个发光二极管组成显示字段的显示器件。
在单片机中使用最多的是七段数码显示器。
如图4所示。
图4LED引脚排列
LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。
2.3.2LED显示器的选择
在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。
本系统中前一位显示电压的整数位,即个位,后一位显示电压的小数位。
4-LED显示器引脚如图5所示,是一个共阳极接法的4位LED数码显示管,其中a,b,c,d,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。
图54位LED引脚
对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阳极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制)显示。
2.3.3LED译码方式
译码方式是指由显示字符转换得到对应的字段码的方式,对于LED数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。
硬件译码是指利用专门的硬件电路来实现显示字符码的转换。
软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序。
本设计系统中为了简化硬件线路设计,LED译码采用软件编程来实现。
由于本设计采用的是共阳极LED,其对应的字符和字段码如下表3所示。
表3共阳极字段码表
显示字符
共阳极字段码
0
0x03H
1
0x9fH
2
0x25H
3
0x0dH
4
0x99H
5
0x49H
6
0x41H
7
0x1fH
8
0x01H
9
0x09H
3设计方案
3.1设计要求
(1)选用51系列单片机,在单片机的作用下组成一个简单的直流数字电压表。
(2)能监测两路的输入电压值,测量范围为0-5V的输入电压值。
(3)用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为5伏。
(4)能用两位LED进行轮流显示或单路选择显示,显示精度0.1伏,并通过串口通信在PC机上进行显示。
3.2整体设计方案
硬件电路设计由6个部分组成;A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。
硬件电路设计框图如图6所示。
图6数字电压表系统硬件设计框图
测量的模拟电压输入后经过A/D转换,变成数字量,输入进单片机,然后又控制LED显示出电压值。
3.3详细电路设计
详细电路都是先在Proteus软件里做仿真,然后再进行的实际电路连接。
3.3.1复位电路
单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,采用施密特触发输入。
当震荡器起震后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。
如图7所示。
图7复位电路设计
复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。
单片机的复位方式有上电自动复位和手动复位两种,图7是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。
3.3.2时钟电路
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。
CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。
MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。
本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可,如图8所示。
图8时钟电路设计
电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它
决定了单片机电路产生的时钟信号震荡频率,在本系统中是11.0592MHz,因而时钟信号的震荡频率为11.0592MHz。
3.3.3LED显示系统电路
由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。
如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。
我们设计的电路图如图9所示。
图9LED显示系统电路设计
为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口的驱动能力,使得LED能按照正常的亮度显示出数字。
3.4整体电路
经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图10所示。
图10整体电路设计
此电路的工作原理是:
模拟电压信号通过变阻器RV1分压后由ADC08032的CH0通道进入,经过A/D转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1.4口,AT89C51负责把接收到的数字量经过数据处理,产生正确的8段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.4、P2.5、P2.6、P2.7产生位选信号控制数码管的亮灭。
此外,AT89C51还控制ADC0832的工作。
简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。
但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。
4程序设计
4.1程序设计总方案
根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图11所示。
图11数字式电压表主程序框图
开始之后,要对程序的变量进行初始化,然后开始调用A/D转换子程序,完成转换后,要调用显示子程序,然后显示出所测量的电压值,改变滑动变阻器,可以改变电压值。
4.2系统子程序设计
4.2.1初始化程序
所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。
4.2.2A/D转换子程序
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图12所示。
图12A/D转换流程图
4.2.3显示子程序
显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。
在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现50ms定时。
5系统测试及结果显示
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus支持的微处理芯片包括
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报告