单片机的多路数字电压表设计本科大学课程.docx
- 文档编号:15418448
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:33
- 大小:933.31KB
单片机的多路数字电压表设计本科大学课程.docx
《单片机的多路数字电压表设计本科大学课程.docx》由会员分享,可在线阅读,更多相关《单片机的多路数字电压表设计本科大学课程.docx(33页珍藏版)》请在冰点文库上搜索。
单片机的多路数字电压表设计本科大学课程
本科毕业论文
(中、英文)
题目基于单片机的多路数字电压表设计
Designofmulti-channeldigitalvoltage
meterbasedonMCU
摘要
近十几年来,单片机技术的发展极为迅速,广泛应用于生产、生活的各个领域。
从测量领域来看,一部分电子测量仪表在高速化、精确化方面有了明显的进步。
电子测量仪表精确度的高低,直接影响着企业的经济效益。
在我国现有经济水平下,使用单片机开发的电子测量仪表,测量精确而且性价比极高,不仅适用于电压、电流、电阻等的测量,还广泛适用于温度、湿度等测量场合。
本课题设计的多路数字电压表具有性能稳定、携带方便、显示清晰直观、读数准确,大大地减少了因人为因素所造成的测量误差事件,大大的提高了测量的精确度。
Abstract
Inrecentyears,thetechnologyofSCMhasgotajollyrapiddevelopmentandbeenwidelyusedineveryfieldofourlifeandproduction.Judgingfromthemeasurerealm,someelectronicalmeasuringinstrumentshaveremarkableimprovmentsinitsspeedandaccuracy.theaccuracyofelectronicalmeasuringinstrumentsdirectlyaffectenterprises'economiceffectiveness.Inthecurrenteconomiclevelofourcountry,electronicalmeasuringinstrumentsdevelopedbySCMhavehighaccuracyaswellashighcostperformance,notonlycanbeusedtomeasureVoltage、CurrentandResistance,butalsobewidelyusedinmeasuringtemperature、humidityorsomeotherMeasurementsituations.
Thistopicdesignofmulti-channeldigitalvoltagemeterhastheadvantagesofstableperformance,easytocarry,showstheclearandintuitive,accuratereadings,greatlyreducingthemeasurementerroreventscausedbyhumanfactors,greatlyimprovestheprecisionofmeasurement.
Keywords:
DigitalVoltage。
AT89C51。
ADC0808
1引言1
2多路数字电压表的总体设计1
2.1设计内容1
2.2设计方案2
3硬件设计3.1单片机控制模块3
3.2振荡电路模块5
3.3A/D转换模块5
3.4显示模块9
3.5按键模块10
4软件设计11
4.1C语言与汇编语言11
4.2主流程图设计11
4.3A/D转换子程序12
5软件调试13
5.1仿真电路图14
5.2显示结果及误差分析14
5.21显示结果14
5.22误差分析16
6.结论17
元件清单17
参考文献18
谢辞18
程序附录19
1引言
单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑
运算、数据传送、中断处理)的微处理器(CPU)。
随着单片机技术的飞速发展,各种单片机
蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。
单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。
现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
本次课程设计的课题是“基于单片机的多路数字电压表的设计”。
主要考核我们对单片机技术,编程能力等方面的情况。
观察独立分析、设计单片机的能力,以及实际编程技能。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。
通过单片机,采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表,使测得的结果更为精准。
2多路数字电压表的总体设计
2.1设计内容
设计和调试一种基于单片机的多路数字电压表。
要求具有如下功能:
(1)输入电压为4路;
(2)电压测量范围为0--5V;
(3)测量的最小分标率为0.0196V,测量误差为±).02V;
4)能通过显示器显示当前通道和通道电压值,有效位数为小数点后两位;
2.2设计方案
本课题设计的数字电压表的实现是基于单片机原理。
首先,在Proteus软件环境中进行
硬件电路图的设计,然后在Keil软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。
此.hex文件是硬件电路运行实现的源代码来源。
把.hex文
件加载到AT80C51单片机芯片,然后在Proteus软件环境中运行硬件电路,数字多用表就可以正常显示了。
本课题设计的数字多用表主要由:
时钟模块、A/D转换模块、数据处理模块、按键模块
显示模块,这四大模块组成。
总体结构如图1所示,先用A/D转换器对各路电压值进行采
样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后通过单片机进行数据处理,最后通过显示器显示出被测电压值,另外可以通过按键选择通道。
图1基于单片机的多路数字电压表电路的原总体结构图
根据设计要求,采用的方案如下:
硬件部分实现数据的采集、编译,A/D转换以及显示的功能,包括单片机电路模
块、A/D转换器模块、显示模块、按键电路模块;软件部分实现控制芯片,使各部件能够正常的运行,同时实现仿真的功能,主要设计思想是利用软件进行仿真,通过仿真得到实验的结果。
多路数字式电压表应用系统主要利用A/D转换器,先用A/D转换器对各路电压值进行
采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。
通过按键选择循环显示,也可单路显示,单路显示可通过按键选择显示通道数。
3硬件设计
3.1单片机控制模块
单片机是集成在一个芯片上的计算机,又称单片微控制。
单片机是计算机、自动控制
和大规模集成电路技术相结合的产物,融计算机结构和控制功能于一体。
它尽管他的大部
分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
具有数据
处理能力的CPU、只读存储器ROM、随机存储器RAM、多种输入输出电路(I/O口)、定时器/计时器等功能。
随着技术的发展,单片机片内集成的功能越来越强大,并朝着SOC
(SystemonChip)方向发展。
本次论文设计单片机采用高性能的AT89C51系列芯片,AT89C51是8位单片机中一个
最基本,最典型的芯片型号。
它主要由以下几部分组成:
中央处理器;内部数据存储器。
内部程序存储器。
并行I/O口;定时/计数器。
中断控制电路;振荡器和时钟电路。
这些部
件通过内部总线连接起来,构成了一个完整的微型计算机。
如图2所示:
U1
图2AT89C51单片机引脚
P0口:
P0口地址为80H,位地址为80H〜87H。
各位口线是有完全相同但又相互独立的逻辑电路。
P0口的逻辑电路主要由D触发器构成的锁存器,FET(场效应管)构成的输出驱动电路,用于引脚数据输入缓冲的缓冲器,一个多路转接开关(MUX)构成。
8位口线的
锁存器位构成一个口的锁存器,所谓的口地址就是锁存器的地址。
锁存器的功能是使数据在口中保留一段时间。
MUX的一个输入来自锁存器,另一个输入为“数据/地址”。
输入转
接由控制信号控制,设置多路转接开关的原因是P0口既可以作为通用I/O口进行数据输入/
输出,又可以作为单片机系统的地址/数据线使用。
设置多路转接开关可以方便的实现转
换。
P1口:
P1是一个带有内部上拉电阻的8位双向I/O口。
P1口地址为90H,位地址为
90H〜97H。
P1口只能作为通用数据I/O口使用所以在电路结构上与P0口有些不同。
第一,因为它只能传送数据,所以不再需要多路转接开关(MUX);第二,驱动电路中有上拉电阻。
其上拉电阻并不是真正的电阻,而是一个能起到上拉电阻作用的有两个场效应管构成的电路。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2口地址为A0H,位地址为A0H〜A7H。
P2口既可作为系统高位地址线使用,也可作为通用I/O口使用,所以P2口的
电路逻辑与P0口类似,也有一个多路转接开关。
但多路转接开关的一个输入端不再是地址/数据,而是单一的地址,因为在构造系统总线时,P2口只能作为高位地址而不能作为数据
线使用。
当P2口作为高位地址线使用时,多了开关倒向地址端;而当通用I/O口使用时,
多路开关倒向锁存器的Q端。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口的地址为B0H,位地
址为BOH〜B7H。
虽然P3口可以作为通用I/O口使用,但在实际应用中我们更多的使用的是他的第二功能信号。
RST:
当输入的复位信号延续2个机器周期以上高电平时即为有效,用于完成单片机的复位操作。
ALE(地址锁存控制信号):
在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。
此外由于ALE是以1/6晶振频
率的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
/PSEN(外部程序存储器读选通信号):
程序存储允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两个PSEN有效,
即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
/EA(访问程序存储器控制信号):
当EA信号为低电平时,对ROM的读操作是针对外
部程序存储器的;当EA信号为高电平时,对ROM的操作是从内部程序存储器开始,并可延续至外部程序存储器。
XTAL1和XTAL2(外接晶体引线端):
当使用芯片内部时钟时,XTAL1和XTAL2用
于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。
3.2振荡电路模块
AT89C51芯片中的高增益反相放大器。
其输入端为引脚XTAL1,输出端为引脚
XTAL2。
通过两个引脚在芯片外并接石英晶体振荡器和两只电容器,C1和C2一般取30pF
左右•石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需
的相移条件,从而构成一个稳定的自激振荡器。
本文中C1和C2各取1nF,晶体的振荡频
率取12MHz,电路图如下图所示:
C1
AT阳问aiiaa^iiiBaiinaaiiBaiiM"?
T弄I
3.3A/D转换模块
本设计采用的A/D转换器为8位的ADC0808转换器。
ADC0808是8位逐次逼近式,可实现8路模拟信号的分时采用,片内有8路模拟选通开关,以及相应的选通地址锁存与
译码电路。
地址锁存与译码电路完成对A、B、C3个地址位进行所存和译码,其译码输出
用于通道选择。
8位A/D转换器是逐渐逼近式,有控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻阶梯网络等组成。
输出锁存器用于存放和输出转换得到的数字量。
其主要性能如下:
(1)分辨率为8位
(2)精度小于1/2LSB
(3)单一+5V供电,模拟输入电压范围为0~5V(4)具有锁存控制的8路输入模拟开关
(5)可锁存三态输出,输出与TTL电平兼容
(6)功耗为15mW
(7)不必进行零点和满度调整
(8)转换速度取决于芯片外接的时钟频率
(9)时钟频率范围10~1280kHZ,典型值为640kHZ,约为100卩
2)内部结构和外部引脚
图3ADC0808外部引脚图
1)IN0〜IN78:
8位模拟量输入引脚,通过3根地址译码线ADDA、ADDB、ADDC来选通IN0〜IN7中的一路。
2)D7〜D0:
8位模拟量输入引脚,为三态可控输出,可直接和CPU数据线连接。
8位排列顺序是D7为最高位,D0为最低位。
(3)ADDA、ADDB、ADDC:
模拟通道选择地址信号,ADDA为低位,ADDC为高
位。
地址信号与选中通道对应关系如图5所示。
地址选中通道
ADDC
ADDB
ADDA
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
图5地址信号与选中通道的关系
(4)VR(+)、VR(-):
正、负参考电压输入端,用于提供片内DAC电阻网络的基准电
压。
在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、
负极性的参考电压。
(5)ALE:
地址锁存允许信号输入端,当输入为高电平时,对地址信号进行锁存。
在使用时,该信号通常常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
(6)START:
A/D转换启动信号输入端,正脉冲有效。
加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。
如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
(7)EOC:
A/D转换结束信号输出引脚,高电平有效。
该信号在A/D转换过程中为
低电平,其余时间为高电平。
该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。
如果需要对某个模拟量进行不断采样、转换的情况下,EOC也可作为启动
信号反馈接到START端,但是要在刚加电时需由外电路第一次启动。
(8)OE:
输出允许控制端,高电平有效,用以打开三态数据输出锁存器。
在中断工作方式下,该信号通常是CPU发出的中断请求响应信号。
(9):
CLOCK:
时钟信号输入端。
3)工作时序与使用说明
ADC0808的工作时序如图6所示。
当通道选择地址有效时,ALE信号一出现,地址便被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。
START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2^s加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换结束后EOC才变成高电平。
微处理器收到变为高电平的EOC信号后,便马上送出OE信号,打开三态门,读取转换结果。
图6ADC0808工作时序
模拟输入通道的选择可以相对于转换开始操作独立地进行,不能在转换过程中进行,因此往往是把通道选择和启动转换结合起来使用。
这样可以用一条写指令把选择模拟通道又启动转换。
在与微机接口时,输入通道的选择可有两种方法:
一种是通过地址总线选择,另一种是通过数据总线选择。
如果用EOC信号去产生中断请求,要特别注意EOC的变低
相对于启动信号有2卩s+8个时钟周期的延迟,要设法使它不要产生虚假的中断请求。
因此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。
3.4显示模块
本设计采用1602字符型LCD液晶显示屏来显示电压值,具有体积小、功耗低、界面美观大方、使用方便等优点,它具有16个引脚,如图7所示:
LCD1I-
aIU寻
迪am®nnri*Wiuj
>>>KK.Ul曰吕Hd吕已已莹
■*W
JelY-P
1咋
图7LM016L外部引脚图
VSS:
为地电源。
VDD:
接5V正电源。
VEE:
为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比
度过高时会产生鬼影”使用时可以通过一个10K的电位器调整对比度。
RS:
寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
R/W:
为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共
同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信
号,
当RS为高电平R/W为低电平时可以写入数据。
E:
端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
D0〜D7:
8位双向数据线。
3.5按键模块
K1是一个按键开关,如图8所示,与单片机的P1.0相接,用于进行通道选择,当按
下一次,通道加1,显示下一通道。
.・1-aB«■*亡耳
■
P10
P11
P1.2
P1.3
P14
P1.5
P1.6
P17
图8按键处理电路图
4软件设计
4.1C语言与汇编语言
汇编语言和c语言各有特点。
简单的说就是汇编语言的本质是机器码,是直接和单片机
对话的唯一途径。
优点是效率高,缺点是难以驾驭。
C语言的逻辑性更强,优点是只要掌
握了语言本身编程就变得简单,而且移植性好。
缺点就是即使你写出了程序,完成了功
能,但是你对单片机本身的了解还是很少。
实际开发中大多会使用C语言,汇编语言在较
为复杂的工程面前还是显得很繁琐,往往让人望而却步。
但是汇编语言在学习单片机的过程中却是一条捷径,想要真正懂得单片机的内部奥妙,就必须认真学习汇编语言。
因此,我们在学习单片机的过程中应先通过汇编语言将单片机硬件资源掌握透彻,在对硬件了解清楚的基础之上再学习C语言,就能达到一个比较好的效果。
4.2主流程图设计
主程序流程图如图9所示。
首先对定时/计数器和LCD进行初始化,在LCD上显示信息,然后进行循环,在循环中以此位:
调用A/D转换子程序对4个通道转换一次,判断
K1键是否按下,当按下则当前通道地址加1,当前通道值转换成电压值,显示当前通道
值。
开始
定时/计数器初始化
图9主程序流程图
4.3A/D转换子程序
A/D转换子程序用于对ADC0808的4路输入模拟电压进行一次A/D转换,并将转换的数值存入4个相应的存储单元中,流程图如图10所示。
A/D子转换程序每隔一定时间调用一
次。
否
图10A/D转换子程序流程图
5软件调试
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显
性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
本系统的调试主要以软件
为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是c
语言,用Kiel软件将程序写入单片机。
5.1仿真电路图
仿真电路图如图11所示
MSIWMD
Sa93dS£5-
■■■•■吐■■.
LCD1UUEiiH■rIz!
y
SSsUaaaa-Daaa
•XTALL
XTAL2
ftST
ion
ALE
BPtlfl
N
□*
*1
L:
I
14
■b
■
■■-
PCl初bi
PDX^t]Ptiam■口P砂FDOADGrd.TMDl
~rar
Eg*:
E冈丁
MATZ
F11JT2&C
Flig
F1.il>
F1S
M.&
F1.7
l■二口7rz-iwefZ^A-KlPZJfAH■N.UAI2^ZJCAIJ■M辟*<申PS.Ti'A-tSramvt:
nP3L-UTMBFJ^iTITOMiTTfl
run
F3?
岂•竺「 77竺.]" a心二 云^3~ 75陀.■ 3E ADM- £ADD£: DOOOOO0Q-O PT*PT: -CL5C-C vilErp-h MT ^.P'.'LIUS Q-O2 UE UDGiMILBMi H畫 Hi M3 US II'FID 图11仿真电路图 5.2显示结果及误差分析 5.21显示结果 1.当输入电压值为0V时,显示结果如图12所示,测量误差为0V。 flDDDR! 01 UflLUE: 0.00 图12输入电压为0V时,LCD显示结果 -M016L o CH Voits o o o o Vo恥 ■o 二 o Q CS| Q 图14输入电压为3.84V时,LCD显示结果 4•当输入电压值为5V时,显示结果如图15所示,测量误差为0V。 2•当输入电压值为1.64V时,显示结果如图13所示,测量误差为+0.1V。 ADDDR: 0 UfiLUE: 1.64 2Sj095 >>>丄丘山ODOQOOCiO 图13输入电压为1.64V时,LCD显示结杲 3.当输入电压值为3.84V时,显示结杲如图14所示,测量误差为+0.1V。 "人右人aoooizioioci ・gg迎・ LLL -CLCL□_・ LCDI LM016L' ODDDR: 0 UflLUE: 3.34 SOLU0 Wpljjw >>>yiEluoooaooao ■L ■CJ ■ ■ ■ LLJ — ■ r>CDL£> CLCL□_ 图15输入电压为5V时,LCD显示结果 5.22误差分析 通过以上仿真测量结果可得到简易数字电压表与标准”数字电压表对比测试表,如下表 1所示: 标准电压值/V 电压表测量值/V 绝对误差/V 0.00 0.00 0.00 0.50 0.51 0.01 1.12 1.13 0.01 2.18 2.17 0.01 3.00 3.00 0.00 0.25 0.26 0.01 4.00 4.00 0.00 4.36
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 路数 电压表 设计 本科 大学 课程