1、H击/充上摩单片机系统课程设计可由7本人摩单片机系统课程设计成绩评定表设计课题:数字电压表设计学院名称:电气工程学院指导教师:臧海河设计地点:31-630设计时间:2013-12-16 2012-12-27指导教师意见:成绩:签名:尊H击“大摩单片机系统课程设计单片机系统程设计i课程设计名称:数字电压表设计臧海河31-630指导教师: 课程设计地点:课程设计时间:2012-12-16 2012-12-27野过由次殍单片机系统课程设计单片机系统课程设计任务书学生姓名专业班级学号题目数字电压表设计课题性质工程设计课题来源自拟指导教师臧海河主要内容(参数)利用89C51设一个数字电压表,实现以下功能
2、:1 .测量0-5V的直流输入电压值;2 .测量值通过数码管直接显示出来;任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及 元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第 7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格 式规范、方案合理、设计正确,篇幅合理。主要参考资料1张迎新.单片微型计算机原理、应用及接口技术(第 2版)M.北京: 国防工业出版社,20042伟福LAB6000系列单片机仿真实验系统使用说明书3阎
3、石.数字电路技术基础(第五版).北京:高等教育出版社,20064夏路易 石宗义.Protel 99se电路原理图与电路板设计教程.北京:北京希望电子出版社,2004审查意见系(教研室)主任签字:年 月 日目录1概述4.2 设计总体方案 5.2.1 设计要求 52.2 设计思路 52.3 设计方案 53硬件电路设计6.3.1 A/D转换模块 63.1.1 逐次逼近型A/D转换器原理 63.1.2 ADC0808 主要特性 73.1.3 ADC0808的外部引脚特征 73.1.4 ADC0808的内部结构及工作流程 93.2 单片机系统 113.2.1 AT89C51 性能 113.2.2 AT8
4、9C51各引脚功能 113.3 复位电路和时钟电路 123.3.1 复位电路设计 123.3.2 时钟电路设计 133.4 LED显示系统设计 143.4.1 LED基本结构 143.4.2 LED 显示器的选择 143.4.3 LED 译码方式 153.4.4 LED 显示器与单片机接口设计 153.5 总体电路设计 164程序设计1.84.1 程序设计总方案 184.2 系统子程序设计 184.2.1 初始化程序 184.2.2 A/D 转换子程序 183河由/充氏摩单片机系统课程设计4.2.3 显示子程序 194.2.4 程序代码 195总结21.1概述什么是数字电压表?数字电压表就是采
5、用数字化技术, 把需要测量的直流电压转 换成数字形式,并显示出来。通过单片机技术,设计出来的数字电压表具有精度 高,抗干扰能力强的特点。通过网上资料显示,目前由各种A/D转换器构成的数 字电压表已经广泛的应用于电工测量,工业自动化仪表等各个领域。在电量的测量中,电压、电流和频率是最基本的三个被测量, 其中电压量的 测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压, 所 以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的 仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特
6、而 得到广泛应用。目前,数字电压表的内部核心部件是 A/D转换器,转换的精度很大程度上影 响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成 本这两个方面。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808寸输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱 动输出装置LED显示数字电压信号。4单片机系统课程设计2设计总体方案2.1 设计要求在MCS-51系列单片机的基础上,组成一个直流数字电压表。采用1路模拟量输入,能够测量0-5V之间的直流电压值。电压显示
7、用4位一体的LED数码管显示,至少能够显示两位小数。2.2 设计思路基于AT89C51单片机来设计。用ADC080兆片彳故为A/D转换器,与单片机的接口为P1 口和P2 口的高四位 引脚。电压的输出显示采用4位一体的LED数码管。LED数码的段码输入,由并行端口 P0产生:位码输入,用并行端口 P2低四 位产生。2.3 设计方案电路由以下六个部分组成;1. A/D转换电路,2.AT89C51单片机系统,3.LED 显示系统、4.时钟电路、5.复位电路以及测量电压输入电路。 硬件电路设计框图 如图1所示。53硬件电路设计3.1 A/D转换模块现实世界的物理量都是模拟量,能把模拟量转化成数字量的器
8、件称为模 /数 转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路, 按照 各种A/D芯片的转化原理可分为逐次逼近型, 双重积分型等等。逼近式A/D转换 的转换速度更快,而且精度更高,比如 ADC0809 ADC080骈,它们通常具有8 路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字 量送到单片机进行分析和显示。逐次逼近型A/D转换器转换速度快,因而在实际 中广泛使用1。3.1.1 逐次逼近型 A/D转换器原理逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组 成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程如下:
9、开始时,寄存器各位清零,转换时,先将最高位置 1,把数据送入A/D转换 器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小, 则1保留,如果转换的模拟量比输入的模拟量大, 则1不保留,然后从第二位依单片机系统课程设计次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制 数字量。其原理框图如图2所示:73.1.2 ADC0808主要特性ADC08081 CMOSt片型逐次逼近式 A/D转换器,带有使能控制端,与微机 直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟 电压信号分时进行转换.ADC0808主要特性:8路8位A/D转换器,即分
10、辨率8 位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出, 输出与TTL兼容;转换时间:128s;转换精度:0.2%;单个+5V电源供电;模 拟输入电压范围0- +5V。3.1.3 ADC0808的外部引脚特征ADC0808E片有28条引脚,采用双列直插式封装,具引脚图如图 3所示。单片机系统课程设计图3 ADC0808引脚图卜面说明各个引脚功能:IN0-IN7 (8条):8路模拟量输入线,用于输入和控制被转换的模拟电压地址输入控制(4条):ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线, 用于选择IN0-IN7上那一条模拟电压送给比较器进行 A/
11、D转换。ADDA,ADDB,ADDC位地址输入线,用于选择 8路模拟输入中的一路,其对 应关系如表1所小:表1 ADC0808通道选择表地址码对应的输入通道CBA000IN0001IN1010IN2011IN3100IN48 单片机系统课程设计101IN5110IN6111IN7START STAR功“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR下降沿启动ADCT作。EOC: EOE转换结束输出线,ig线上高电平表示 A/D转换已结束,数字量 已锁入三态输出锁存器。D1-D8:数字量/出端,D1为高位。OE OE为输出允许端,高电平能使 D1-D8引脚上输
12、出转换后的数字量。REF+ REF-:参考电压输入量,给电阻阶梯网络供给标准电压。Vcc、GND:Vcc为主电源输入端,GN时接地端,一般 REF+f Vcc连接在一起,REFT GN皿接在一起.CLK:时钟输入端。3.1.4 ADC0808的内部结构及工作流程ADC0808i 8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成, 其内部结构如图4所示。12三春A哈横枢并共START CLOCK地杜律存校期也暗01234567 No串1NMINININ倒TFTTTTTdDE2 21J5222 c+ Pr nr G 6
13、ND图4 ADC0808的内部结构其中:3.1.5 8路模拟通道选择开关实现从 8路输入模拟量中选择一路送给后面的比较 器进行比较。(2)地址锁存与译码器用于当 ALE信号有效时,锁存从 ADDAADDBADDC 3 根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择 当前模拟通道。(3)比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路 组成8位A/D转换器,当STARTS号有效时,就开始对当前通道的模拟信号进行 转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送 出转换结束信号。(4)三态输出锁存器保存当前模拟通道转换得到的数字量,当
14、OE信号有效时,把转换的结果送出。ADC0808勺工作流程为:(1)输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器从 8 路模拟通道中选通1路模拟量送给比较器。(2)送START-高脉冲,START勺上升沿使逐次寄存器复位,下降沿启动 A/D 转换,并使EOCJ号为低电平。(3)当转换结束时,转换的结果送入到输出三态锁存器中,并使EOCW号回到高电平,通知CPU已转换结束。(4)当CPIB行一读数据指令时,使OE为高电平,则从输出端D0-D7读出数据。3.2 单片机系统3.2.1 AT89C51 性能ADC080处要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8
15、 路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与 TTL兼容;转换 时间:128 pS;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0- +5V, 无需外部零点和满度调整;低功耗,约 15mWh3.2.2 AT89C51各引脚功能AT89C5倏供以下标准功能:4KB的Flash闪速存储器,128B内部RAM 32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工用 行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU勺工作,但允许RAM定时/计数器,串行通信口及中断系统
16、继续工作,掉电方式保存RAMfr的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。AT89C5俅用PDIP封装形式,引脚配置如图5所示。Pi j&C一Il40 vccP1.1 C*3S POO (ADO(P1J C3aa ra.i (Am)PU3C437困金P1.4 匚5ae P03俱口中MOSI PI J5 E635 P0.4 (AIM)MISO) Pl fi 匚734 POg (AM)(SCKIP17Ca33田启(ADJASTC由as ra.7 (AD7)(RKDJ P3jO 匚1031 EA/VPP(TXD) P3.1 E1130 A1.E/PHOG府河P3W匚1229 PS
17、 EMirNTl) P3 J C13a3P27 (AIS)(TC| P3.4 匚1427 PS 睛1%(Tl P3.J5 匚15% P2.S (M3(WFJ P3j6 C1625D P2.4 (A12)HD P3.7 C1724 P2J (All)KTAU CIS制 P22 (A1Q)xtali Ci9a PS 1 (AtOGNDC制空1 PS JO (AS)单片机系统课程设计图5 AT89C51的弓I脚图表2 P3 口各位的第二功能P3 口各位第二功能P3.0RXT (用行口输入)P3.1TXD (用行口输出)P3.2/INTO (外部中断0输入)P3.3/INT1(外部中断1输入)P3.4
18、T0 (定时器/计数器0的外部输入)P3.5T1 (定时器/计数器1的外部输入)P3.6/WR (片外数据存储器写允许)P3.7/RD (片外数据存储器读允许)3.3 复位电路和时钟电路3.3.1 复位电路设计单片机在启动运行时都需要复位,使CPUS系统中的其他部件都处于一个确 定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST采 用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高 电平即可确保时器件复位。复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要 RST恢复低电平后,单片机才能进入其他工作状态。 单片机的复位方式有
19、上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位和手动复位组合电路,只要 Vcc上升时间不超过1ms它们都能很 好的工作。14HOuvcc(图6复位电路3.3.2 时钟电路设计单片机中CPU执行一条指令,都必须在统一的时钟脉冲的控制下严格按时 间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPLM行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2 为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,
20、外部河由充氏摩单片机系统课程设计起外f击/次火摩图8 LED的基本结构单片机系统课程设计参数,电路中,电容器 C1和C2对震荡频率有微调作用,通常的取值范围是3010pF,在这个系统中选择了 33pF;石英晶振选择范围最高可选24MHz它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz因而时钟信号的震荡频率为12MHz3.4 LED显示系统设计3.4.1 LED基本结构LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机 接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字 段的显示器件。在单片机中使用最多的是七段数码显示器。LED七段
21、数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成 “日”字 形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,具通过不同的组合可用来显示各种数字。LED引脚排列如下图8所示:3.4.2 LED显示器的选择在本设计中,选才4位一体的数码型LED显示器。本系统中前一位显示电压 的整数位,即个位,后两位显示电压的小数位。4-LED显示器引脚如图9所示,是一个共阴极接法的4位LE四码显示管,其中a, b, c, e, f, g为4位LED#段的公共输出端,1、2、3、4分别是每位的位数选端,dp是小数点引出端,4位一体LEDa码显示管的内部结构是由4 个单独的LED
22、组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。图9 4位LED弓唧对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于 4位 LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数 码管的段选线并联在一起,用一个I/O接口控制)显示。3.4.3 LED译码方式译码方式是指由显示字符转换得到对应的字段码的方式,通常的译码方式有 硬件译码和软件译码方式两种由于本设计采用的是共阴极LER其对应的字符和字段码如下表3.3所示显示字符共阴极字段码03FH106H25BH34FH466H56DH67DH707H87FH96FH表3.3共阴极字段码表16击 江 火
23、摩单片机系统课程设计3.4.4 LED显示器与单片机接口设计由于单片机的并行口不能直接驱动 LED显示器,所以,在一般情况下,必须 采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。如果 驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超 负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0 口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和 DP小数点显示引脚并联到P0 口与上拉电阻之间,这样,就可以加大P0 口作为输出口德驱动能力,使得 LED能按
24、正常的亮度显示数字,如图 10所示图10 LED与单片机接口间的设置3.5 总体电路设计经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图11所示图ii简易数字电压表电路图此电路的工作原理是:+5V模拟电压信号通过变阻器 VR1分压后由ADC08008 的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC接低电平),经 过模/数转换后,产生相应的数字量经过其输出通道 D0-D7传送给AT89C51芯片的 P1 口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位 LER同时它还通过其四位I/O 口 P2.0、
25、P2.1、P2.2、P2.3 产生位选信号控制数码管的亮灭。止匕外,AT89C51还控制ADC0808勺工作。其中,单片机AT89C51通过定时器中断从 P2.4输出方波,接到 ADC0808勺CLOCK,P2.6 发正脉冲启动A/D转换,P2.5检测A/D转换是否完成,转换完成后,P2.7置高从 P1 口读取转换结果送给LED显示出来。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元 器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善 的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的 软件配合,才能达到设计要求。18单片机系统
26、课程设计4程序设计4.1 程序设计总方案根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图12所示。结束图12数字式直流电压表主程序框图4.2 系统子程序设计4.2.1 初始化程序所谓初始化,是对将要用到的 MCS_51s列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等9。4.2.2 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。图13 A/D转换流程图4.2.3
27、显75子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示 方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频 率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用问 隔10ms对LED进行动态扫描一次,每一位 LED的显示时间为1ms在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11 ns定时,通过软件延时程序来实现 5ms的延时。4.2.4 程序代码LED_0 EQU 30HLED_1 EQU 31HLED_2 EQU 32HADC EQU 35HCLOCK BIT P2.4ST BIT P2.
28、5EOC BIT P2.6OE BIT P2.7ORG 00HSJMP STARTORG 0BHLJMP INT_T0START: MOV LED_0, #00HMOV P2, #0FFHMOV LED_1, #00HMOV LED_2, #00HMOV DPTR, #TABLEMOV TMOD, #02HMOV TH0, #245HMOV TL0, #00HMOV IE, #82HSETB TR0WAIT: CLR STSETB STHCLR STJNB EOC, $SETB OEMOV ADC, P1CLR OEMOV A, ADCMOV B, #51DIV ABMOV LED_2, AM
29、OV A, BMOV B, #5DIV ABMOV LED_1, AMOV LED_0, BLCALL DISPSJMP WAITINT_T0: CPL, CLOCKRETIDISP: MOV A, LED_0MOVC A, A+DPTRCLR P2.3MOV P0, ALCALL DELAYSETB P2.3MOV A, LED_1MOVC A,A+DPTRCLR P2.2MOV P0, ALCALL DELAYSETB P2.2MOV A, LED_2MOVC A, A+DPTRLCLR P2.1ORL A, #80HMOV P0, ALCALL DELAYSETB P2.1RETDELA
30、Y: MOV R6, #10D1: MOV R7, #250DJNZ R7, $DJNZ R6, D1RETTABLE: DB 3FH, 06H, 5BH, 4FH, 66HDB 6DH, 7DH, 07H, 7FH, 6FHEND5总结经过一段时间的努力,课程设计基于单片机的简易数字电压表基本完成。 但 设计中的不足之处仍然存在。这次设计是我第一次设计电路。 在这过程中,我对 电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、22邂%击火摩单片机系统课程设计原理图的设计和电路图的仿真的设计流程,积
31、累了不少经验。基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实 际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期 要求、系统在硬件设计上充分考虑了可扩展性, 经过一定的改造,可以增加功能。 本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真。通过本次设计,我对单片机这门课有了进一步的了解。 无论是在硬件连接方 面还是在软件编程方面。本次设计采用了 AT89C51单片机芯片,与以往的单片机 相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还 用到了模/数转换芯片ADC0808以前在学单片机课程时只是对其理论知识有了 初步的理解。通过这次设计,对它的工作原理有了更深的理解。 在调试过程中遇 到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践 中,我将继续努力学习电路设计方面的理论知识, 并理论联系实际,争取在电路 设计方面能有所提升。23