基于单片机的直流数字电压表总结报告Word下载.docx
- 文档编号:16336905
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:22
- 大小:1.26MB
基于单片机的直流数字电压表总结报告Word下载.docx
《基于单片机的直流数字电压表总结报告Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流数字电压表总结报告Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
(3)采用1路模拟量输入,能够测量0-5V之间的直流电压值。
(4)电压显示用4位一体的LED数码管显示,电压显示单位为毫伏(mv)。
(5)尽量使用较少的元器件。
2.设计思路
(1)根据设计要求,选择STC90C516RD+单片机为核心控制器件。
(2)电源部分使用LM7805、整流桥等元器件构成5V输出电源。
(3)A/D转换采用ADC0809实现,单片机P1口高四位控制A/D芯片,P2口读入数据。
(4)电压显示采用4位一体的七段共阴极LED数码管。
(5)由并行端口P0产生LED段码;
由并行端口P1低四位产生位码。
3.设计方案
硬件电路设计由7个部分组成;
直流电源,A/D转换电路,STC90C516RD+单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。
硬件电路设计框图如图1所示。
图1数字电压表系统硬件设计框图
三、电路设计
1.单片机系统
在单片机选择上,我们采用了国内宏晶科技研发的STC90C516RD+芯片。
STC90C516RD+系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051系列单片机,指令代码完全兼容传统8051,但速度快8-12倍。
12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。
STC90C516RD+单片机具有以下特点[3]:
1)增强型6
时钟/
机器周期,12
机器周期
8051
CPU
2)工作电压:
5.5V
-
3.8V
3)工作频率范围:
0-40MHz,相当于普通8051的
0~80MHz.
4)用户应用空间:
4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/
61K/字节
5)片上集成
1280字节/512/256字节
RAM
6)通用I/O口(35/39
个),复位后为:
P1/P2/P3/P4
是准双向口/
弱上拉(普通8051
传统I/O
口)
P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O
口用时,需加上拉电阻。
7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器
/
仿真器
8)可通过串口(P3.0/P3.1)直接下载用户程序,8K
程序3
5
秒即可完成一片
9)EEPROM
功能
10)内部集成MAX810专用复位电路,外部晶体12M以下时,可省外部复位电路,复位脚可直接接地。
11)共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用
12)外部中断4路,下降沿中断或低电平触发中断,Power
Down模式可由外部中断低电平触发中断方式唤醒
13)通用异步串行口(UART),还可用定时器软件实现多个UART
14)工作温度范围:
0-75℃/-40-+85℃
15)封装:
LQFP-44,PDIP-40,PLCC-44
图2STC90C516RD+单片机引脚图
STC90C516RD+芯片的各引脚功能为:
P0口:
这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是单片机不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;
第二种情况是单片机带片外存储器,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所示:
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(片外数据存储器读允许)
表1P3口各位的第二功能
Vcc:
为+5V电源线。
Vss:
接地。
ALE:
地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6振荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,若EA=0,则允许使用片内ROM,若EA=1,则只使用片外ROM。
PSEN:
片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:
片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(振荡器)的定时反馈回路。
2.复位电路和时钟电路
单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,采用施密特触发输入。
当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位[1]。
复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。
单片机的复位方式有上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作[1]。
复位电路如图3所示。
图3复位电路图
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。
CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。
MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路[1]。
电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±
10pF,在这个系统中选择了33pF;
石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。
本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简单,只需要一个晶振和2个电容即可,如图4所示。
图4时钟电路图
3.直流电源模块
直流电源模块设计首先采用变压器把220V交流电变成所需要的电压。
利用二极管的单向导电性,可以设计出把交流电变成直流电的电路;
再根据电容的滤波作用,输出纹波较小的直流电,从而得到平滑的直流电压;
最后通过稳压块的稳压作用,就可以得到输出稳定的直流电。
模块原理框图如下。
图5直流稳压电源的原理框图和波形变换
整体电路由以下四部分构成:
电源变压器:
是降压变压器,它将电网220V交流电压变换成符合需要的交流电压,并送给整流电路,变压器的变化由变压器的副边电压确定。
整流电路:
整流电路一般由单项导电性的二极管构成,经常采用单项半波、单项全波和单向桥式整流电路。
本次设计采用的整流电路为应用广泛的桥式整流电路。
电路中采用了4个二极管,组成三项桥式整流电路。
整流过程中,4个整流管轮流导通,无论正半周还是负半周,流过负载的电流方向一致,形成全波整流,将变压器处的交流电压变成了脉动直流电压。
滤波电路:
交流电经整流电路后可变为脉动直流电,但其中含有较大的交流分量,为使设备上用纯净的交流电,还必须用滤波电路滤除脉动电压中的交流成分。
常见的滤波电路有:
电容滤波电路、电感滤波电路、电感电容滤波电路以及P型滤波电路。
稳压电路:
经过整流和滤波后得直流电压,会由于电网电压的波动以及负载电阻的变动而发生变化。
在绝大多数情况下,这种输出电压的变化波动显得太大,仍需进一步对其稳定,这就需要采用稳压电路。
目前常用的稳压电路有并联式稳压电路、串联稳压电路以及集成式稳压电路。
本次设计采用集成稳压。
直流电源整体电路图如下:
图6直流电源电路图
4.A/D转化模块
现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。
一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用[1]。
4.1逐次逼近型A/D转换器原理
逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。
它利用内部的寄存器从高位到低位一次开始逐位试探比较。
转换过程如下:
开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量[4]。
其原理框图如图7所示:
图7逐次逼近式A/D转换器原理图
4.2ADC0808主要特性
ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域[4]。
ADC0808主要特性:
8路8位A/D转换器,即分辨率8位;
具有锁存控制的8路模拟开关;
易与各种微控制器接口;
可锁存三态输出,输出与TTL兼容;
转换时间:
128μs;
转换精度:
0.2%;
单个+5V电源供电;
模拟输入电压范围0-+5V,无需外部零点4和满度调整;
低功耗,约15mW[5]。
4.3ADC0808的外部引脚特征
ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图8所示。
图8ADC0808引脚图
下面说明各个引脚功能:
IN0-IN7(8条):
8路模拟量输入线,用于输入和控制被转换的模拟电压。
START:
START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。
EOC:
EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。
D1-D8:
数字量输出端,D1为高位。
OE:
OE为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。
REF+、REF-:
参考电压输入量,给电阻阶梯网络供给标准电压。
Vcc、GND:
Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起。
CLK:
时钟输入端。
地址输入控制(4条):
ALE:
地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。
ADDA,ADDB,ADDC:
3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表2所示:
地址码
对应的输入通道
C
B
A
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
表2ADC0808通道选择表
4.4ADC0808的内部结构及工作流程
ADC0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如图9所示。
图9ADC0808的内部结构
其中:
(1)8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较。
(2)地址锁存与译码器用于当ALE信号有效时,锁存从ADDA、ADDB、ADDC3根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道。
(3)比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路组成8位A/D转换器,当START信号有效时,就开始对当前通道的模拟信号进行转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送出转换结束信号。
(4)三态输出锁存器保存当前模拟通道转换得到的数字量,当OE信号有效时,把转换的结果送出。
ADC0808的工作流程为:
(1)输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送给比较器。
(2)送START一高脉冲,START的上升沿使逐次寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。
(3)当转换结束时,转换的结果送入到输出三态锁存器中,并使EOC信号回到高电平,通知CPU已转换结束。
(4)当CPU执行一读数据指令时,使OE为高电平,则从输出端D0-D7读出数据。
5.LED显示模块
5.1LED基本结构
LED是发光二极管显示器的缩写。
LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示器件[6]。
在单片机中使用最多的是七段数码显示器。
LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。
LED引脚排列如下图10所示:
图10LED引脚排列
5.2LED显示器的选择
在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。
本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。
4-LED显示器引脚如图11所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。
图114位LED引脚
5.3LED译码方式
译码方式是指由显示字符转换得到对应的字段码的方式,对于LED数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。
硬件译码是指利用专门的硬件电路来实现显示字符码的转换。
软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序[6]。
本设计系统中为了简化硬件线路设计,LED译码采用软件编程来实现。
由于本设计采用的是共阴极LED,其对应的字符和字段码如下表3所示。
显示字符
共阴极字段码
3FH
1
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
6FH
表3共阴极字段码表
5.4LED显示器与单片机接口设计
由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作[7]。
如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。
为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口的驱动能力,使得LED能按照正常的亮度显示出数字。
6.整体电路图
见附录A。
在电路仿真中电路的工作原理是:
+5V模拟电压信号通过变阻器VR1分压后由ADC08008的IN7通道进入(由于使用的IN7通道,所以ADDA,ADDB,ADDC均接高电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P2口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P1.0、P1.1、P1.2、P1.3产生位选信号控制数码管的亮灭。
此外,AT89C51还控制ADC0808的工作。
其中,单片机AT89C51通过定时器中断从P1.4输出方波,接到ADC0808的CLOCK,P1.6发正脉冲启动A/D转换,P1.5检测A/D转换是否完成,转换完成后,P1.7置高从P0口读取转换结果送给LED显示出来[3]。
数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。
但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。
四、程序设计
1.程序设计总方案
根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图12所示。
图12数字式直流电压表主程序框图
2.系统子程序设计
2.1初始化程序
所谓初始化,是对将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等[8]。
2.2A/D转换子程序
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。
图13A/D转换流程图
2.3显示子程序
显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms[9]。
在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。
五、测试方案及系统调试
前期测试主要通过Protues软件进行仿真。
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试[10]。
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我们采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。
后期硬件焊接及相关制作完成后进行硬件测试,使用万用表等工具对电路进行检测,查找短路断路点,并进行改正,最终实现目标功能。
六、数据测试与处理
利用Protues软件进行仿真测试,得到如下测试数据:
标准电压值/V
电压表测量值/V
绝对误差
0.00
0.50
0.52
0.02
1.00
1.02
1.50
1.54
0.04
2.00
2.40
2.50
2.54
3.00
3.06
0.06
3.50
3.56
4.00
4.08
0.08
5.00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 直流 数字 电压表 总结报告