数字电压表正文.docx
《数字电压表正文.docx》由会员分享,可在线阅读,更多相关《数字电压表正文.docx(19页珍藏版)》请在冰点文库上搜索。
![数字电压表正文.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/597a78d2-3647-4518-af3e-1b0218387bdf/597a78d2-3647-4518-af3e-1b0218387bdf1.gif)
数字电压表正文
目录
1.课程设计的目的1
2.数字电压表课程设计的要求2
2.1课程设计的要求2
3.设计的内容2
3.1课程设计的内容2
3.2电压表实现的功能2
3.3总体设计方案2
3.4设计方案3
3.4.1复位电路4
3.4.2采用直流稳压电源5
3.5单片机部分5
3.6A/D转换部分7
3.7功放芯片LM3868
3.8编程思路与程序流图8
3.8.1主程序8
3.8.2显示子程序10
4.设计总结16
参考书目16
附录17
1.课程设计的目的
1.1学习与掌握单片机的应用能综合应用所学知识,并在实践的基本技能方面进行一次系统的训练。
1.2了解单片机芯片的功能,并初步掌握小型单片机系统设计的基本方法。
1.3了解数字电压表的工作流程与AT89S52的功能。
1.4培养查阅资料以及撰写技术报告的能力。
2.数字电压表课程设计的要求
2.1课程设计的要求
(1)可以测量0-10V的8路输入电压值。
(2)能用LED数码管或LCD显示测量结果。
(3)测量范围可达0~20V,最小分辨率为0.1V。
(4)电压表具有超量程的报警功能。
(5)系统具有复原功能。
3.设计的内容
3.1课程设计的内容
(1)数字电压表总体电路设计及论证。
(2)分析设计要求,明确性能指标;查阅资料、进行设计方案论证。
(3)论证并确定合理的总体设计方案,绘制总体机构框图,分析工作原理。
(4)完成数字电压表的电路设计:
单片机部分、A/D转换、显示等各单元具电路设计,包括芯片选择、计算电路元参数,分析工作原理。
3.2电压表实现的功能
该数字电压表可以测量0~10V的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。
测量最小分辨率为0.1V。
3.3总体设计方案
按系统功能实现要求,决定控制系统采用AT89S52单片机,A/D转换采用ADC0809。
系统除能确保实现要求的功能外,还可以方便地进行8路其他A/D转换量的测量、远程测量结果传送等扩展功能。
数字电压表系统设计方案框图如下图。
图3.3.1数字电压表统计设计方案
3.4设计方案
按照设计要求简易数字电压测量电路由电压采集、A/D转换、复位电路、数据处理及显示控制等组成,电路原理图如图3.4.1所示。
单片机选用AT89S51,该芯片具有低功耗、高性能的特点。
A/D转换由集成电路0809完成。
0809具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换。
22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。
6脚为测试控制,当输入一个2uS宽高电平脉冲时,就开始A/D转换。
7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。
9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。
10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。
单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。
P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。
P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。
功放芯片LM386是专为低损耗电源所设计的功率放大器集成电路。
此设计电源为直流稳压电源。
图3.4.1简易数字电压测量原理图
3.4.1复位电路
如下图所示,本设计采用按键式复位电路,它的上电复位利用电容器充电来实现,同时通过按键实现复位,按下键后,通过R1和R2形成回路,使RESET端产生高电平。
按键的时间决定了复位时间。
图3.4.2复位电路
3.4.2采用直流稳压电源
直流稳压电源如图所示:
图3.4.3直流稳压电源
3.5单片机部分
单片机选用的是AT89S51,如下图3.5.1所示。
该芯片具有低功耗、高性能的特点,是采用CMOS工艺的8位单片机。
最常见的AT89S51是采用40Pin封装的双列直接PDIP封装,芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口左边那列引脚逆时针数起,依次为1、2、3、4。
。
。
40,其中芯片的1脚顶上有个凹点。
在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。
(1)主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源。
GND(Pin20):
接地线。
图3.5.1AT89S51引脚图
(2)外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端。
XTAL2(Pin20):
片内振荡电路的输出端。
(3)控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号。
PSEN(Pin29):
外部存储器读选通信号。
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指3、控制引脚(4根)。
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号。
PSEN(Pin29):
外部存储器读选通信号。
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
(4)可编程输入/输出引脚(32根)
AT89S51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
每一根引脚都可以编程。
PO口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
3.6A/D转换部分
A/D转换部分采用ADC0809,ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
(1)ADC0809的内部逻辑结构如图3.6.1
图3.6.1内部逻辑结构图
由图3.6.1可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2)ADC0809的引脚结构见图3.6.2
图3.6.2ADC0809的引脚结构
3.7功放芯片LM386
是专为低损耗电源所设计的功率放大器集成电路。
它的内建增益为20,透过pin1和pin8脚位间电容的搭配,增益最高可达200。
LM386可使用电池为供应电源,输入电压范围可由4V~12V,无作动时仅消耗4mA电流,且失真低。
LM386的内部电路图及引脚排列图3.7.1所示。
图3.7.1LM386引脚图
3.8编程思路与程序流图
3.8.1主程序
在刚上电时,系统默认为循环显示8个通道的电压值状态。
当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1S左右。
主程序在调用显示子程序和测试之程序之间循环,主程序流程图见图。
图3.8.1主程序流程图
(1)主程序和中断程序入口:
ORG0000H
LJMPSTART
ORG0003H
RETI
ORG000BH
RETI
ORG0013H
RETI
ORG001BH
RETI
ORG0023H
RETI
ORG002BH
RETI;
(2)初始化程序中的变量:
CLEARMEMIO:
CLRA
MOVP2,A
MOVR0,#70H
MOVR2,#0DH
LOOPMEM:
MOV@R0A
INCR0
DJNZR2,LOOPMEM
MOV20H,#00H
MOVA,#0FFH
MOVP0.A
MOVP1,A
MOVP3,A
RET;
(3)主程序:
START:
LCALLCLEARMEMIO
MAINLCALLTEST
LCALLDISPLAY
AJMPMAIN
NOP
NOP
NOP
NOPLJMPSTART;
3.8.2显示子程序
显示子程序采用动态扫描法实现四位数码管的数值显示。
测量所得的A/D转换数据放在70H~77H内存单元中,测量数据在显示时需转换成10进制BCD码放在78H~7BH单元中,其中7BH存放通道标志数。
寄存器R3用作8路循环控制,R0用作显示数据地址指针。
图3.8.2显示子流程图
(1)显示控制程序:
DISPLAY:
JB00H,DISP11
MOVR3.#08H
MOVR0,#00H
MOV7BH,#00H
DISLOOP1:
LCALLTUNBCD
MOVR2,#0FFH
DISLOOP2:
LCALLDISP
LCALLKEYWORK1
DJNZR2,DISLOOP2
INCR0
INC7BH
DJNZR3,DISLOOP1
RET
DISP11:
MOVA,7BH
SUBBA,#01H
MOV7BH,A
ADDA,#70H
MOVR0,A
DISLOOP11:
LCALLTUNBCD
MOVR2,#0FFH
DISLOOP22:
LCALLDISP
LCALLKEYWORK2
DJNZR2,DISPLOOP22
INC7BH
RET;
(2)显示数据转为三位BCD码子程序:
TUNBCDMOVA,@R0
MOVB,#51
DIVAB
MOV7AH,A
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,51
DIVAB
JBF0,LOOP2
ADDA,#5
LOOP2:
MOV79H,A
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MUNAB
MOVB,#51
DIVAB
JBF0,LOOP3
ADDA,#5
LOOP3MOV78H,A
RET;
(3)显示子程序:
DISP:
MOVR1,#78H
MOVR5,#0FEH
PLAY:
MOVP1,#0FFH
MOVA,R5
ANLP3,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP1,A
JBP3.2,PLAY1
CLRP1.7
PLAY1:
LCALLDL1MS
INCR1
MOVA,P3
JNBACC.3,ENDOUT
RLA
MOVR5,A
MOVP3,#0FFH
AJMPPLAY
ENDOUT:
MOVP3,#0FFH
MOVP1,#0FFH
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,82H,80H,90H,0FFH;
(4)延时程序:
DL10MS:
MOVR6,#0D0H
DL1MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET;
DL1MS:
MOVR4,#0FFH;
LOOP11:
DJNZR4,LOOP11
MOVR4,#0FFH
LOOP22:
DJNZR4,LOOP22
RET;
(5)电压测量(A/D)子程序:
TERT:
CLRA
MOVP2,A
MOVR0,#70H
MOVR7,#08H
LCALLTESTART
WAIT:
JBP3.7MOVD
AJMPWAIT;
TESTART:
SETBP2.3
NOP
NOP
CLRP2.3
SETBP2.4
NOP
NOP
CLRP2.4
NOP
NOP
NOP
NOP
RET;
MOVDSETBP2.5
MOVA,P0
MOV@R0,A
CLRP2.5
INCR0
MOVA,P2
INCA
MOVP2,A
CJNEA,#08H,TESTEND;
TESTEND:
JCTESTCON
CLRA;
MOVP2,A
MOVA,#0FFH
MOVP0,A
MOVP1,A
MOVP3,A
RET;
TESTCON:
LCALLTESTART
LJMPWAIT;
(6)安键子程序:
KEYWORK1:
JNBP3.5,KEY1
KEYOUT:
RET;
KEY1:
LCALLDISP
JBP3.5,KEYOUT
WAIT11:
JNBP3.5,WAIT12
CPL00H
MOVR2,#01H
MOVR3,#01H
RET;
WAIT12:
LCALLDISP
AJMPWAIT11;
KEYWORK2:
JNBP3.5,KEY1
JNBP3.6,KEY2
RET;
KEY2:
LCALLDISP
JBP3.6,KEYOUT
WAIT22:
JNBP3.6,WAIT21
INC7BH
MOVA,78H
CJNEA,#08H,KEYOUT11
KEY0UT11:
JCKEYOUT1
MOV7BH,#00H
KEYOUT1:
RET;
WAIT21:
LCALLDISP
AJMPWAIT22;
END
4.设计总结
通过本次的课程设计,知道了学好单片机的重要性。
每个程序的设计流程相当复杂。
经过几天的课程设计和对相关资料的查阅,我在此过程中不断增长了编程方面的知识,提高了自己的编程的水平也掌握了一些单片机芯片的基本功能,达到了课程设计的基本目的,同时也认识到了自己还有很多不足之处。
参考书目
[1]徐爱钧.《智能化测量控制仪表原理与设计》(第二版)[M].北京:
北京航天航空大学出版社,2004.
[2]郭庭吉.《8051单片机实践与应用》[M].北京:
清华大学出版社,2002.
[3]高峰.《单片微型计算机与接口技术》[M].北京:
科学出版社,2003.
[4]赵俊逸.黄勇.《2003年全国单片机及嵌如入式系统学术年会论文集(下册)》[C].北京:
北京航空航天大学出版社,2003.
附录
图数字电压表总原理图