单片机课程设计.docx
- 文档编号:9058475
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:31
- 大小:298.10KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(31页珍藏版)》请在冰点文库上搜索。
单片机课程设计
唐山学院
单片机原理课程设计
题目简易数字电压表的设计
系(部)机电工程系
班级10测控1班
姓名杨畅
学号4100107134
指导教师王墨琦张国旭
2013年2月25日至3月8日共2周
2013年3月8日
唐山学院
单片机原理课程设计
题目简易数字电压表的设计
系(部)机电工程系
班级10测控1班
姓名杨畅
学号4100107134
指导教师王墨琦张国旭
2013年2月25日至3月8日共2周
2013年3月8日
单片机原理课程设计任务书
一、设计题目、内容及要求
设计题目:
简易数字电压表的设计
设计内容:
1.可以测量0~5V范围内的8路直流电压值。
2.在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,8路分别为0-8。
3.测量最小分辨率为0.02V。
设计要求:
1.进行系统总体设计。
2.完成系统硬件电路设计。
3.完成系统软件设计。
4.撰写设计说明书。
二、设计原始资料
Proteus6及KEIL51软件,及其使用说明。
三、要求的设计成果(课程设计说明书、设计实物、图纸等)
设计说明书一份(要求有硬件设计原理图,仿真结果图,源程序代码)
四、进程安排
周一:
查找资料,进行方案论证和系统硬件设计;
周二:
系统软件设计和编程实现;
周三:
利用程序调试;
周四:
仿真实现,检查设计结果;
周五:
编写设计说明书、答辩。
五、主要参考资料
[1]彭为等.单片机典型系统设计实例精讲[M].北京:
电子工业出版社,2006
[2]张毅刚等。
单片机原理与应用设计[M].北京:
电子工业出版社,2008
指导教师(签名):
教研室主任(签名):
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
课设答辩(20分)
设计成果(60分)
总成绩(100分)
提问
(答辩)
问题
情况
1.ADC0808是如何控制89C51工作的?
2.ADC0808是通过什么怎样开始工作的?
3.ADC0808中通过那个引脚告诉89C51转换结束的?
综
合
评
定
指导教师签名:
年月日
简易数字电压表的设计
摘要
随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。
传统的模拟电压表,已有百年的发展历史,虽然经过改进,但是仍然远远不能满足测量的需要。
近几十年来随着电子技术的发展,经常需要测量高精度的电压,因此数字电压表应运而生,发展的数度很快。
数字电压表作为数字仪表的基础和核心,毫无疑问是电子测量重要的环节。
电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。
具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。
为此,我们设计了数字电压表,本系统以AT89C51单片机为核心,以逐次逼近式A/D转换器ADC0808、七段数码管为主体,设计了一款简易的数字电压表,能够测量0.00~5.00V的直流电压,最小分辨率为0.02V。
本系统主要包括三大模块:
数据采集模块、数据处理模块、控制输出和数据显示模块。
绘制了电路原理图与工作流程图,并进行仿真调试,最终设计完成了该系统的硬件电路。
在软件编程上,采用了汇编语言进行编程,开发环境使用KEIL51,仿真采用ISIS仿真软件。
开发了显示模块程序、通道切换程序、A/D转换程序。
关键词:
AT89C51单片机电压测量A/D转换
摘要································································4
引言································································6
1设计总体方案·························································7
1.1设计要求························································7
1.2设计思路························································7
1.3系统原理及基本框图··············································7
2电路设计····························································8
2.1数据采集模块····················································8
2.1.1逐次逼近型A/D转换器原理·····································8
2.1.2ADC0808主要特性···········································9
2.1.3ADC0808的外部引脚特征·······································9
2.1.4ADC0808的内部结构及工作流程·······························11
2.2数据分析处理模块··············································12
2.2.1AT89C51性能··············································12
2.2.2AT89C51各引脚功能··········································12
2.3数据显示控制模块··············································15
2.3.1LED基本结构··············································15
2.3.2LED显示器的选择···········································15
2.3.3LED译码方式················································16
2.3.4LED显示器与单片机接口设计··································17
2.474LS161························································17
2.5总体电路设计··················································18
3程序设计····························································19
3.1程序设计总方案················································19
3.2系统子程序设计················································19
3.2.1采集电压路数识别···········································20
3.2.2A/D转换子程序·············································20
3.2.3数据处理子程序·············································20
3.2.4显示子程序·················································21
4仿真·······························································22
4.1软件调试·······················································22
4.2显示结果·······················································22
5总结································································25
附录 系统源程序·····················································26
参考文献·······························29
引言
数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。
较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。
在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。
具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。
为此,我们设计了数字电压表,此作品主要由A/D0808转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。
电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。
数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。
一般说来,A/D转换的方式可分为两类:
积分式和逐次逼近式。
积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。
根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。
逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。
斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。
在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。
本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0808、七段数码管为主体,构造了一款简易的数字电压表,能够实现自动和手动测量8路0.00~5.00V的直流电压,最小分辨率为0.02V。
1设计总体方案
1.1设计要求
(1)可以测量0~5V范围内的8路直流电压值。
(2)在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,8路分别为0-8。
(3)测量最小分辨率为0.02V。
1.2设计思路
(1)根据设计要求,选择AT89C51单片机为核心控制器件。
(2)A/D转换采用ADC0808实现,与单片机的接口为P1口引脚。
(3)电压显示采用4位一体的LED数码管。
(4)LED数码的段码输入,由并行端口P0产生:
位码输入,用并行端口P2低四位产生。
(5)系统首先通过按键逐路选择八路通道中的一路或是循环显示,将该路某一路电压送入ADC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的EO端口置为高电平,单片机将转换后结果存如片内RAM。
系统调出计算子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调用显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。
1.3系统原理及基本框图
如图1-1所示,模拟电压经过滑动变阻器切换到不同的分压电路后,送到A/D
转换器进行A/D转换,然后送到单片机中进行数据处理。
处理后的数据,通过P0口传输送到LED中显示。
2电路设计
数字电压表系统的硬件电路设计可分为三个模块,它们分别为:
模块一数据采集模块即A/D转换模块;模块二数据分析处理模块;模块三数据显示控制模块。
下面就将分别介绍各个模块的相关情况,最后连接组合构成完整8路的数字电压表系统。
2.1数据采集模块
现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。
一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。
2.1.1逐次逼近型A/D转换器原理
逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。
它利用内部的寄存器从高位到低位一次开始逐位试探比较。
转换过程如下:
开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。
其原理框图如图2-1所示:
图2-1逐次逼近式A/D转换器原理图
2.1.2ADC0808主要特性
ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。
ADC0808主要特性:
8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:
128μs;转换精度:
0.2%;单个+5V电源供电;模拟输入电压范围0-5V,无需外部零点和满度调整;低功耗,约15mW。
2.1.3ADC0808的外部引脚特征
ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图2-2所示。
图2-2ADC0808引脚图
下面说明各个引脚功能:
IN0-IN7(8条):
8路模拟量输入线,用于输入和控制被转换的模拟电压。
地址输入控制(4条):
ALE:
地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。
ADDA,ADDB,ADDC:
3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表2-1所示:
表2-1ADC0808通道选择表
地址码
对应的输入通道
C
B
A
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
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:
时钟输入端。
2.1.4ADC0808的内部结构及工作流程
ADC0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如图2-3所示。
图2-3ADC0808的内部结构
其中:
(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读出数据。
2.2数据分析处理模块
数据分析处理采用单片机运算分析。
单片机在系统中担任着协调控制整个系统稳定工作的任务,是实现系统稳定工作的核心。
系统中采用ATMEL公司生产的AT89C51,功能强大,下面就数据分析处理模块的硬件部分即单片机的相关情况作相应介绍。
2.2.1AT89C51性能
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51功能性能:
与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:
1000次写/擦循环;数据保留时间:
10年;全静态工作:
0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。
2.2.2AT89C51各引脚功能
AT89C51提供以下标准功能:
4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。
AT89C51采用PDIP封装形式,引脚配置如图2-4所示。
图2-4AT89C51的引脚图
AT89C51芯片的各引脚功能为:
P0口:
这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,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口:
这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表2-2所示:
表2-2P3口各位的第二功能
P3口各位
第二功能
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXT(串行口输入)
TXD(串行口输出)
/INT0(外部中断0输入)
/INT1(外部中断1输入)
T0(定时器/计数器0的外部输入)
T1(定时器/计数器1的外部输入)
/WR(片外数据存储器写允许)
/RD(片外数据存储器读允许)
Vcc为+5V电源线,Vss接地。
ALE:
地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
/EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若/EA=1,则允许使用片内ROM,若/EA=0,则只使用片外ROM。
/PSEN:
片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:
片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。
2.3数据显示控制模块
数字电压表的数据显示控制模块,运用LED数码显示器作为电压路数和电压值的显示部分,由于输出数据较多,采用扫描输出显示,下面就LED显示的相关原理做相应的介绍
2.3.1LED基本结构
LED是发光二极管显示器的缩写。
LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示器件。
在单片机中使用最多的是七段数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计