《单片机课程设计 数字电压表.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 数字电压表.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机课程设计 数字电压表 一目的和意义 (2) 二任务和要求 (2) 1、设计任务 (2) 2、设计要求 (2) 三设计思路 (2) 四、系统结构框图与工作原理 (2) 1、系统结构框图 (2) 2、工作原理 (3) 五、硬件介绍 (3) 1、单片机系统 (3) 2、ADC0808主要特性 (5) ADC0808的外部引脚特征: (5) 3、ADC0808的内部结构及工作流程 (7) 六、复位电路和时钟电路 (8) 1、复位电路设计 (8) 2、时钟电路设计 (8) 七LED显示系统设计 (9) 1、 LED基本结构 (9) 2、LED显示器的选择 (9) 3、 LED译码方式 (9) 4、
2、LED显示器与单片机接口间的设计 (10) 八、A/D转换电路和测量电路的设计 (11) 九、程序设计 (12) 1、程序设计总方案 (12) 2、系统子程序设计 (12) 十、使用说明与调试结果 (14) 十一、总结 (15) 参考文献 (16) 附一系统原理图 (17) 附二程序清单 (18) 一目的和意义 单片机原理与接口技术课程设计是在完成单片机原理及其接口技术的理论教学之后安排的一个实践教学环节。单片机原理与接口技术课程设计是学习单片机理论的重要实践环节。在单片机课程基础上,通过本课程设计的学习使学生增进对单片机的感性认识,加深对单片机理论方面的理解;使学生了解和掌握单片机应用系统软
3、件的软硬件设计工程、方法及实现,强化单片机应用电路的设计与分析能力。提高学生在单片机应用方面的实践技能和科学作风,培养学生综合运用理论知识解决问题的能力。 二任务和要求 1、设计任务 基于MCS-51系列单片机AT89C51,设计一个能测量05V直流电压的数字电压表 2、设计要求 (1)选用A/D转换器ADC0808,测定0+5V范围内的直流电压值。 (2)采集的数据送四位数码管实时显示。 (3)实现多路电压循环测量和循环显示。 三设计思路 1、根据设计要求,选择AT89C51单片机为核心控制器件。 2、A/D转换采用ADC0808实现,与单片机的接口为P0口和P2口。 3、电压显示采用4位一
4、体的LED数码显示器,当前测量通道显示用一位LED数码显示器。 4、直接由单片机的P1、P2口驱动LED数码管。 四、系统结构框图与工作原理 1、系统结构框图 硬件电路设计由6个部分组成; A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图4-1所示。 图4-1 数字电压表系统硬件设计结构框图 2、工作原理 系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。通过按键选择八路通道中的一路,将该路电压送入A
5、DC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的OE端口置为高电平,单片机将转换后结果存到片内RAM。系统调出显示子程序,将保存结果转化为0.00V-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。 五、硬件介绍 1、单片机系统 AT89C51提供以下标准功能:4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,A
6、T89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。AT89C51采用PDIP封装形式,引脚配置如图5-1所示。 图5-1 AT89C51的引脚图 AT89C51芯片的各引脚功能为: P0口:这组引脚共有8条,P0.0为最低位。这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到
7、锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是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、配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。 P3口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表5-1所示: Vcc为+5V电源线,Vss接地。 ALE:地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。 /EA:片外存储器访问选择线,可以控制89C51使用片
9、内ROM或使用片外ROM, 若/EA=1,则允许使用片内ROM, 若/EA=0,则只使用片外ROM。 /PSEN:片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM 芯片的读选通信号。 RST:复位线,可以使89C51处于复位(即初始化)工作状态。通常89C51复位有自动上电复位和人工按键复位两种。 XTAL1和XTAL2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。 2、ADC0808主要特性 ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接
10、接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。 ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:128s;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0-5V,无需外部零点和满度调整;低功耗,约15mW。 ADC0808的外部引脚特征: ADC0808芯片有28条引脚,采用双列直插式封装,其引脚
11、图如图5-2所示。 图5-2 ADC0808引脚图 下面说明各个引脚功能: IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。 地址输入控制(4条): ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。 ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表5-2所示: START:START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。 EOC: EOC为转换结束输出线,该线上高电平
12、表示A/D转换已结束,数字量已锁入三态输出锁存器。OUT1-OUT8:数字量输出端,OUT1为高位。 OE:OE为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。 REF+、REF-:参考电压输入量,给电阻阶梯网络供给标准电压。 Vcc、GND: Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起。 CLK:时钟输入端。 3、ADC0808的内部结构及工作流程 ADC0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如图5-3所示。 图5-
13、3 ADC0808的内部结构 其中: (1)8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较。 (2)地址锁存与译码器用于当ALE信号有效时,锁存从ADDA、ADDB、ADDC 3根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道。 (3)比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路组成8位A/D转换器,当START信号有效时,就开始对当前通道的模拟信号进行转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送出转换结束信号。 (4)三态输出锁存器保存当前模拟通道转换得到的数字量,当OE信号有效时,
14、把转换的结果送出。ADC0808的工作流程为: (1)输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送给比较器。 (2)送START一高脉冲,START的上升沿使逐次寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。 (3)当转换结束时,转换的结果送入到输出三态锁存器中,并使EOC信号回到高电平,通知CPU已转换结束。 (4)当CPU执行一读数据指令时,使OE为高电平,则从输出端D0-D7读出数据 六、复位电路和时钟电路 1、复位电路设计 单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始
15、工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。 图6-1 复位电路 2、时钟电路设计 单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2
16、为该放大器输出端,但形成时钟电路还需附加其他电路。 本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简单,只需要一个晶振和2个电容即可。 图6-2 时钟电路 电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是3010pF,在这个系统中选择了30pF;在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。 七LED显示系统设计 1、 LED基本结构 LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组
17、成显示字段的显示器件。在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。 2、LED显示器的选择 在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择了两个显示器,一个4位一体的数码型LED显示器(简称“4-LED”,图7-1)和一个一位显示的数码显示器(图7-2)。本系统中4-LED的前一位显示电压的整数位,即个位,后三位显示电压的小数位,图
18、7-2所示显示器则显示当前4-LED显示电压的通道号。 4-LED显示器引脚如图7-1所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g 为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED 数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。 图7-1 4位LED引脚图7-2 1位LED引脚 对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制
19、)显示。 3、 LED译码方式 译码方式是指由显示字符转换得到对应的字段码的方式,对于LED数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。 硬件译码是指利用专门的硬件电路来实现显示字符码的转换。 软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序。 本设计系统中为了简化硬件线路设计,LED译码采用软件编程来实现。由于本设计采用的是共阴极LED,其对应的字符和字段码如下表7-1所示。 表7-1 共阴极字段码表 4、LED显示器与单片机接口间的设计 LED显示器的驱动是一个非常重要的问题,此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P1,
20、P2口驱动,实验证明可行。 在应用系统中,设计要求不同,使用的LED显示器的位数也不同,在我们的设计中,选择4位一体的共阴极时钟型LED显示器,采用动态显示方式。图7-3为本系统LED显示电路,采用P1口作为LED的段码输出信号,P2口的低四位和最高位作为LED位码的输出控制信号。 图7-3 LED与单片机接口间的连接 八、A/D转换电路和测量电路的设计 A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方法很多,此设计采用ADC0808转换器。ADC0808是一种逐次逼近型的8位A/D转换器件,片内有8路模拟开关,可输入8个模拟量,单极性,量程为0+5V。 74LS373: 是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。0D7D为数据输入端,0Q7Q为数据输出端,正脉冲触发,低电平清除,常用做8位地址锁存器。 用单片机的P2.4对应ADC0808的START端,P2.5对应EOC端,P2.6对应OE端,P3.3对应CLOCK端,用软件设定给定的值。ADDA、ADDB和ADDC连接74LS373的输出端,由74LS373输出值选择通道。IN0IN7 分别连接8个被测电位器,根据选择的通道,ADC0808选择测量相应通道的电位。电路如图8-1所示。