单片机at89c51期末设计 1.docx
- 文档编号:11570338
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:17
- 大小:190.41KB
单片机at89c51期末设计 1.docx
《单片机at89c51期末设计 1.docx》由会员分享,可在线阅读,更多相关《单片机at89c51期末设计 1.docx(17页珍藏版)》请在冰豆网上搜索。
单片机at89c51期末设计1
2011年期末课程设计
基于单片机的数字电压表
系别:
计算机与信息科学系
专业:
08网络工程
指导教师:
潘新民
组长:
刘威122622008043
组员:
叶琳122622008044
陈钦122622008018
连淑群122622008060
刘朝云122622008052
基于单片机的数字电压表
摘要:
在电路设计中我们时常会用到电压表,过去大部分电压表还是模拟的,虽然精度较高但模拟电压表采用用指针式,里面是磁电或电磁式结构,所以响应较慢。
为适应许多高速信号领域目前已广泛使用数字电压表。
本设计是基于Atmel51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。
该系统采用Atmel89C51单片机作为控制核心,以ADC0808为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用共阴极数码管显示被测电压。
关键词:
单片机、电压检测、模数转换、
Abstract:
Incircuitdesign,weoftenusevoltagemeter,Overthepastmostofthevoltagemeterorasimulation,Althoughhighprecisionanalogvoltageusedinthetable,butwiththepointer,whichisamagneticorelectromagneticstructure,sotheslowresponse.Tomeetthemanyareasofhigh-speedsignalhasbeenwidelyuseddigitalvoltmeter.ThedesignisbasedonAtmel51microcontrollerdevelopmentplatformandautomaticcontrolbasedontheprincipleofadigitalvoltagemetersystem.ThesystemusesAtmel89C51microcontrollerasthecontrolcore,ADC0808forthesampleddatasystem,datasamplingtoachievethemeasuredvoltage;Seriescomparedwiththerangeofdetectedvoltage,andrelayarraytoachievethroughtheautomaticconversionoftheinputrange;usingcommoncathodeLEDdisplaythemeasuredvoltage.
Keywords:
SingleChipMicyoco、Voltagedetection、AnalogDigitalConversion
目录
摘要1
第一章3
第二章4
第三章6
3.1.6
3.27
3.38
3.49
第四章10
4.1。
0
4.20
11
附录
第一章引言
电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。
根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:
模拟式电压表(AVM)和数字式电压表(DVM)。
模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。
数字式电压表首先将模拟量经模数(A/D)转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。
众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。
的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。
模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。
然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。
但数字电压表由于存在采样误差,精度不是很高。
不过目前可以通过技术手段来缩小误差。
使其精度达到与模拟电压表一样精确甚至更高。
可见将来数字电压表必将取代模拟电压表。
现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。
第二章开发平台
Keil:
开发工具
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
ProteusISIS:
仿真工具
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
第三章设计思想和原理图
3.1数字电压表的介绍
数字电压表简称DMM(DigtialMultimeter)。
它是采用数字化测量技术,把连续的模拟量转换成不连续的、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单精度低,不能满足数字化时代的需求,采用单片的数字电压表,精度高、抗干扰能力强,可扩展尾强、集成方便,目前,由各种单片机芯片构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。
数字电压表具有以下几点特点:
1).显示清晰直观,计数准确
2).显示位数
4).分辨力高
5).测试功能强
6).测量范围宽
7).测量速率快
8).输入阻抗高
9).集成度高,微功耗
10).保护功能完善,抗干扰能力强
3.2数字电压表的硬件介绍及总体框架图
(总体设计框架图)
框图功能说明:
A/D转换器:
将输入的模拟信号转换成数字信号。
基准电源:
提供精密电压,供A/D转换器作参考电压。
译码器:
将二-十进制(BCD)码转换成七段信号。
驱动器:
驱动显示器的a、b、c、d、e、f、g七个发光段,驱动发光数码管(LED)进行显示。
显示器:
将译码输出的七段信号进行数字显示,读出A/D转换结果。
3.3选用芯片介绍
用单片机AT89C51与ADC0808设计一个数字万用表,配合分流电阻、分压电阻、基准电阻可以测量交、直流电压值,四位数码显示,实现直流电压测量,其量程范围是0V—5V。
芯片功能简介
3.3-1AT89C51介绍
[AT89C51芯片图]
AT89C51是一个低电压,高性能CMOS8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。
和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。
片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。
功能特性:
AT89C51提供以下的功能标准:
4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。
另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。
闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。
掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位。
3.3-2、ADC0808介绍
ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
ADC0808的内部逻辑结构
(ADC0808的内部逻辑结构)
上图可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
外部引脚结构
(ADC0808引脚结构图)
功能介绍:
IN0-IN7:
8条模拟量输入通道
ADC0808对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
ADC0808应用说明:
(1)ADC0808内部带有输出锁存器,可以与AT89C51单片机直接相连。
(2)初始化时,使ST和OE信号全为低电平。
(3)送要转换的哪一通道的地址到A,B,C端口上。
(4)在ST端给出一个至少有100ns宽的正脉冲信号。
(5)是否转换完毕,我们根据EOC信号来判断。
(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机
3.3-374LS74介绍
(74LS74引脚介绍)
在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为
Qn+1=Dn,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器,触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的寄存,移位寄存,分频和波形发生等。
3.4单片机系统介绍
3.4-1单片机最小系统(U1)
单片机最小系统包括复位电路,电源电路。
3.4-2A/D转换电路系统(U2)
利用ADC0808作为AD数据采样器件,ADC0809是CMOS单片型逐次逼近式A/D转换器它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上
3.4-374LS74触发器系统(U3)
在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为
Qn+1=Dn,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器,触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的寄存,移位寄存,分频和波形发生等。
3.4-4LCD数码显示系统
用二进制数码表示,为了能直观地读出信号大小的数值,需经过数码变换(译码)后由数码管或液晶屏显示出来。
3.5系统流程图
软件部分采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及触发器系统、液晶显示组成。
系统软件设计是在ISIS7Professional编译环境下进行的,由于汇编语言程序性能好,所以提高了编程的效率。
第四章软件仿真及测试数据
4.1仿真测试
打开ISIS7Professional编译环境下将写好的程序加入到仿真软件中点击运行,观察数码管显示数值与图中输入电压进行比较,并调节电压值。
观察结果测量误差有多大。
由于仿真软件缺少相应器材,故而未能进行彻底仿真。
总体电路图:
测试结果:
附录
主程序:
CHEQU30H
DPCNTEQU31H
DPBUFEQU33H
GDATAEQU32H
STBITP3.0
OEBITP3.1
EOCBITP3.2
ORG00H
LJMPSTART
ORG0BH
LJMPT0X
ORG30H
START:
MOVCH,#0BCH
MOVP3,CH//通道3
MOVDPCNT,#00H
MOVR1,#DPCNT
MOVR7,#5
MOVA,#10
MOVR0,#DPBUF
LOP:
MOV@R0,A
INCR0
DJNZR7,LOP
MOV@R0,#00H
INCR0
MOV@R0,#00H
INCR0
MOV@R0,#00H
MOVTMOD,#01H
MOVTH0,#(65536-4000)/256
MOVTL0,#(65536-4000)MOD256
SETBTR0
SETBET0
SETBEA
WT:
CLRST
SETBST
CLRST
WAIT:
JNBEOC,WAIT
SETBOE
MOVGDATA,P0
CLROE
movdptr,#tab;将AD转换结果转换成BCD码
mova,GDATA
movca,@a+dptr
movb,#2
divab
movr1,b
movb,#10
divab
mov38H,a
mov39H,b
cjner1,#01,kk1
mov3AH,#05
back:
SJMPWT
kk1:
mov3AH,#00
ajmpback
//MOVA,GDATA
//MOVB,#100
//DIVAB
//MOV33H,A
//MOVA,B
//MOVB,#10
//DIVAB
//MOV34H,A
//MOV35H,B
//SJMPWT
T0X:
NOP
MOVTH0,#(65536-350)/256
MOVTL0,#(65536-350)MOD256
MOVA,#0FFH
MOVP2,A//清屏
MOVA,DPCNT
CJNEA,#5,NEX
MOVDPTR,#DPCD
MOVA,DPCNT
ADDA,#DPBUF
MOVR0,A
MOVA,@R0
MOVCA,@A+DPTR
ORLA,#080H
MOVP1,A
SJMPNEX1
NEX:
MOVDPTR,#DPCD
MOVA,DPCNT
ADDA,#DPBUF
MOVR0,A
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A
NEX1:
MOVDPTR,#DPBT
MOVA,DPCNT
MOVCA,@A+DPTR
MOVP2,A
INCDPCNT
MOVA,DPCNT
CJNEA,#8,NEXT
MOVDPCNT,#00H
NEXT:
RETI
DPCD:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH,00H
DPBT:
DB0FEH,0FDH,0FBH,0F7H
DB0EFH,0DFH,0BFH,07FH.
tab:
db0,0,0,1,0,2,0,0,3,0
db4,0,0,5,0,6,0,0,7,0
db8,0,0,9,0,0,10,0,11,0
db0,12,0,13,0,0,14,0,15,0
db0,16,0,17,0,0,18,0,19,0
db0,20,0,0,21,0,22,0,0,23
db0,24,0,0,25,0,26,0,0,27
db0,28,0,0,29,0,0,30,0,31
db0,0,32,0,33,0,0,34,0,35
db0,0,36,0,37,0,0,38,0,39
db0,0,40,0,0,41,0,42,0,0
db43,0,44,0,0,45,0,46,0,0
db47,0,48,0,0,49,0,50,0,0
db51,0,0,52,0,53,0,0,54,0
db55,0,0,56,0,57,0,0,58,0
db59,0,0,60,0,0,61,0,62,0
db0,63,0,64,0,0,65,0,66,0
db0,67,0,68,0,0,69,0,70,0
db0,71,0,0,72,0,73,0,0,74
db0,75,0,0,76,0,77,0,0,78
db0,79,0,0,80,0,0,81,0,82
db0,0,83,0,84,0,0,85,0,86
db0,0,87,0,88,0,0,89,0,90
db0,0,91,0,0,92,0,93,0,0
db94,0,95,0,0,96,0,97,0,0
db98,0,99,0,0,100,0,0,0
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机at89c51期末设计 单片机 at89c51 期末 设计