简易数字电压表的制作.docx
《简易数字电压表的制作.docx》由会员分享,可在线阅读,更多相关《简易数字电压表的制作.docx(16页珍藏版)》请在冰点文库上搜索。
简易数字电压表的制作
浙江科技学院
课题实验设计报告
班级:
学生:
学号:
指导老师:
一、设计题目
二、设计内容与要求
三、设计目的意义
四、系统硬件电路图
五、程序流程图与源程序
六、系统功能分析与说明
七、实物照片
八、设计体会
一、设计题目
简易数字电压表的制作
二、设计内容与要求
用STC89C52单片机和ADC0809组成一个数字电压表,要求能够测量0~100V的直流电压值,并用2位数码管显示。
简易数字电压表的制作
三、设计目的意义
1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
2.通过数字电压表的设计系统掌握51单片机的应用。
掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。
四、系统硬件
4.1系统原理框图
选择STC89C52作为单片机芯片,选用二位8段共阳极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。
将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。
P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。
STC89C52
P1P0
P3P2
AD0809
D0~D7
IN0~IN7
VREF+
VREF-
CLK
OE
ST、ALE
二位数码管
位选
段选
控制线
数据
待测电压
图4.1系统原理框图
4..2芯片
(1)STC89C52
STC89C52引脚图
(2)ADC0809
ADC0809引脚图
模数(A/D)芯片
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
A/D转换的常用方法有:
①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④V/F变换型A/D转换。
在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。
双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。
随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。
如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。
目前最常用的是双积分和逐次逼近式。
(1)A/D芯片的比较
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。
1.AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。
2.AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。
它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。
3.TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。
它可以从主机高速传输转换数据。
它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。
综合上述,逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。
图4.6ADC0809内部结构
(2)ADC0809的工作原理
1.IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如表4.3所示。
表4.3ADC0809通道选择表
2.数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
3.ADC0809应用说明
①ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
②初始化时,使ST和OE信号全为低电平。
③送要转换的哪一通道的地址到A,B,C端口上。
④在ST端给出一个至少有100ns宽的正脉冲信号。
⑤是否转换完毕,我们根据EOC信号来判断。
⑥当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
ADC0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC信号在
START的下降沿10us后才变为无效的低电平。
这要求查询程序待EOC无效后再开始查询,
转换完成后,EOC输出高电平,再由OE变为高电平来输出转换数据。
我们在设计程序时
可以利用EOC信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动
ADC0809后经适当的延时再读入已转换的数据。
AT89C52的输出频为晶振频的1/6(2MHZ),AT89C52ALE引脚4分频提供ADC0809的工作时钟。
ADC0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ时,其转换速度为128us
4.3时钟电路和复位电路
1.时钟电路
单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。
AT89C52内部有一个用于构成振荡器的可控高增益反向放大器。
两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
在片外跨接一晶振和两个匹配电容C1、C2如图2.5所示。
就构成一个自激振荡器。
振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。
匹配电容C1、C2要根据石英晶体振荡器的要求选取。
当晶振频率为12MHz时,C1C2一般选30pF左右。
图2.5中PD是电源控制寄存器PCON.1的掉电方式位,正常工作方式PD=0。
当PD=1时单片机进入掉电工作方式,是一种节能工作方式。
上述电路是靠AT89C52单片机内部电路产生振荡的。
也可以由外部振荡器或时钟直接驱动MCS-51。
图4.3复位电路的内部及外部方式
2.复位电路
复位是单片机的初始化操作。
其功能主要是将程序计数器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。
复位是使单片机退出低功耗工作方式而进入正常状态一种操作。
复位是上电的第一个操作,然后程序从0000H开始执行。
在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。
要使其进入正常状态,唯一办法是将单片机复位,以重新启动。
复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。
表4.2程序计数器及各特殊功能寄存器的复位值
寄存器
复位状态
寄存器
复位状态
PC
0000H
TH1
00H
ACC
00H
P0~P3
FFH
PSW
00H
IP
xx000000B
SP
07H
IE
0xx00000B
DPTR
0000H
TMOD
00H
TCON
00H
SCON
00H
TL0
00H
SBUF
不定
TH0
00H
PCON
0xxx0000B
TL1
00H
RST引脚是复位端,高电平有效。
在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。
RST引脚内部有一个斯密特ST触发器(图2.10)以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。
使用时,一般在此引脚与VSS引脚之间接一个8.2kΩ的下拉电阻,与VCC引脚之间接一个约10μF的电解电容,即可保证上电自动复位。
手动复位电路图
手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。
4.4硬件原理图
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
R110K
COM
COM
P3.2
≥
≥
信号
输入
D0CLKREF+
D1EOC
D2
D3IN-7
D4IN-6
D5ADC0809
D6IN-5
D7IN-4
CIN-3
BIN-2
AIN-1
ALEIN-0
STARTREF-
OE
R219K
R31K
+5V
÷4
12MHz
C130PF
C322μF
SW1
+5V
C230PF
XTAL1ALEP0.0
P0.1
P0.2
XTAL2P0.3
P0.4
P0.5
RSTP0.6
P0.7
AT89C52P2.7
/EAP2.6
P1.0P2.5
P1.1/WR
P1.2P2.4
P1.3
P1.4/RD
P1.5P2.0
P1.6P2.1
P1.7
五、程序流程图与源程序
汇编语言程序清单
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#70H
LOP:
LCALLADCHANGE
LCALLBCDANGE
LCALLSHOW
SJMPLOP
ORG0050H
ADCHANGE:
MOVDPTR,#6000H
MOVXA,@DPTR
JNBP3.2,$
MOVXA,@DPTR
RET
ORG0070H
BCDCHANGE:
MOVB,#0AH
DIVAB
MOV30H,A
MOV31H,B
RET
ORG0100H
SHOW:
MOVDPTR,#TAB
MOVA,31H
MOVCA,@A+DPTR
MOVP1,A
MOVP2,#01H
LCALLDELAY
MOVA,30H
MOVCA,@A+DPTR
MOVP1,A
MOVP2,#02H
LCALLDELAY
RET
ORG0200H
DELAY:
MOVR7,#50
L1:
MOVR6,#200
L2:
NOP
NOP
NOP
DJNZR6,L2
DJNZR7,L1
RET
ORG0280H
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H
DB0F8H,80H,90H
END
七、实物照片
八、设计体会
经过近二周的单片机课程设计,终于完成了数字电压表的设计,基本达到设计要求。
对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。
第一,硬件电路遇到了ADC0809无内部时钟,需外接外部时钟,如何解决这个问题,我们小组进行了多次讨论,最终确定了在程序中提供时钟信号,大大降低了硬件电路的复杂度。
第二,则是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。
因此在整个设计过程中大部分时间是用在程序上面的。
其中,我们遇到了很多的问题,此次运用汇编语言编程,着实让我当头一棒,汇编语言的编程能力还停留在理论阶段。
在此次编程中给了我们很大的困难。
第三,在一个课题中,要设计一个成功的电路,必须要有耐心,要有坚持的毅力。
在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。
这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。
完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。
第四,在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。
我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整,这就要求我们应更加注重实践环节。
最后,还要在此感谢课程设计中实验室的各位成员,他们在整个过程中都给予了我充分的帮助与支持。