




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五邑大学单片机课程设计报告基于51单片机的简易数字电压表的设计学 院:信息工程学院专 业:交通工程(交通控制与管理)班 姓 名学 号指导老师:完成日期:2015年01月05日目录1 引言12 设计方案13 元器件34 实际电路85 单片机程序106 电路板制作15 7总结168附录169参考文献17 数字电压表设计 1引言 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。 目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号 2 设计方案2.1设计要求 以单片机为核心,设计一个数字电压表。采用中断方式,对2路05V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。超过界限时指示灯闪烁。为了稍微增加一点难度,我加入测量温度的功能。 2.2 设计思路 根据设计要求,选择AT89C51单片机为核心控制器件。A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。电压显示采用4位一体的LED数码管。LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四 位产生。2.3 设计方案将被测电压输入ADC0808的电压输入端口,进行采集。接着,将采集到的模拟信号转换为数字信号。然后,通过控制单片机的内部程序,让单片机系统按照规定的时序来采集ADC0808输入的数字信号,并通过算法计算出被测电压的值。最后,单片机再将计算好的电压值,按照一定的时序送入LED数码管中,让其显示。同时,设置监测电路,当电压达到预定值时,进行报警提示。2.4 流程图 图1:设计方案流程图 3 元器件3.1 A/D转换模块一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。3.1.1 逐次逼近型A/D转换器原理逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量5。其原理框图如图2所示:顺序脉冲发生器逐次逼近寄存器ADC电压比较器输入电压输入数字量图2 逐次逼近式A/D转换器原理图3.1.2 ADC0808 ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域5。ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:128s;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0- +5V,无需外部零点和满度调整;低功耗,约15mW6。3.1.3 ADC0808的外部引脚特征 ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3所示。 图3 ADC0808引脚图下面说明各个引脚功能:IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。地址输入控制(4条):ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表1所示:表1 ADC0808通道选择表地址码 对应的输入通道 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:时钟输入端。3.1.4 ADC0808的内部结构及工作流程ADC0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如图4所示。 图4 ADC0808的内部结构其中:(1)8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较。(2)地址锁存与译码器用于当ALE信号有效时,锁存从ADDA、ADDB、ADDC 3根地址线上送来的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读出数据。3.2. LED数码管 3.2.1 LED基本结构 LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示器件。在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED引脚排列如下图5所示: 图5 LED数码管引脚排列 为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口德驱动能力,使得LED能按照正常的亮度显示出数字,如图6所示 图6LED与单片机接口间的设计3.3.MCS-51系列单片机AT89C51 这是本次设计的核心器件,主要负责把接收到的数字量经过数据处理,产生正确的LED显示段码,同时,它还通过其四位I/O口,产生位选信号控制数码管的亮灭。3.3.1总线型DIP40引脚封装电源引脚(2个)VCC:接+5V电源。GND:接地端。外接晶体引脚(2个)XTAL1:外接晶振输入端(采用外部振荡器时,此引脚接地)。XTAL2:外接晶振输入端(采用外部振荡器时,此引脚作为外部振荡信号输入端)。并行输入/输出引脚(32个)P0.0P0.7:通用I/O引脚。P1.0P1.7:通用I/O引脚。P2.0P2.7:通用I/O引脚或数据低8位地址总线复用引脚。P3.0P3.7:通用I/O引脚或第二功能引脚(RXD、TXD、INT0、INT1、T0、T1、WR 、 RD)。控制引脚(4个)RST/VPD:复位信号输入引脚/备用电源输入引脚。ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚。EA/VPP:内、外存储器选择引脚/片内EPROM(或Flatiron)编程电压输入引脚。PSEN:片外程序存储器读选通信号输出引脚。 4 实际电路4.1电路设计经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如下图所示。此电路的工作原理是:+5V模拟电压信号通过变阻器VR1分压后由ADC0808的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。此外,AT89C51还控制ADC0808的工作,此外,我们还可以通过编程来实现对温度的测量。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。在protues软件仿真后的电路图是4.2电路分析 我们开始的单片机课程设计就是一个数字电压表,而最后我们新添加一个测量温度的功能。按钮1是切换两个测量电压的通道,按钮2是切换电压和温度的通道。首先,+5V模拟电压信号通过变阻器VR1分压后由ADC0809的通道进入,经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给单片机,单片机控制ADC0809.然后单片机负责把接收到的数字信号经过数据处理,产生正确的7段数码管的显示段码,并且传送给四位数码管,同时通过单片机四位I/O口产生位选信号控制数码管的亮灭。此外,我们通过编写程序,利用18b20温度传感器来实现对环境温度的检测,将温度数据传送给单片机处理,由单片机处理数据并在LED数码管中显示温度数据。 5 单片机程序#include #include #define uint unsigned int#define uchar unsigned charuchar code LEDData=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ,0x40;uchar code LEDData1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xef,0xef ;/带小数点的0,1,2,3,4,5,6,7,8,9 用于百位的显示sbit OE = P26; /ADC输出允许端口sbit AT = P30; / 通道选择端口sbit ST = P25; / ADC启动端口 sbit P35 =P36; / LED 端口 sbit P36 =P37; /扬声器端口sbit CLK=P27;sbit P20=P20;sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit EOC=P24;sbit DQ=P31; /温度传感器信号线 unsigned char flag;unsigned char WD;void delay(uint t) /1ms延时函数 uint i; while(t-) for (i=0;i0;i-) /读取8位数据 DQ = 0; /数据线置低电平 dat=1; /读出的数据最低位再最前面,这样刚好一个字节在dat里 DQ = 1; /将数据线拉到高电平 if(DQ) dat|=0x80; Tdelay(4); return(dat); /返回数据 WriteOneChar(uchar dat) /写一个字节 uchar i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; Tdelay(5); DQ = 1; dat=1; uint ReadTemperature(void) /读取温度 uchar a=0; uchar b=0; uint t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0x44); Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE); a=ReadOneChar(); b=ReadOneChar(); /*t=b;t255) b+; /如果低8位大于255,向高8位进1t=b;t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; delay(11) ; t=b;t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; delay(11) ; return(t*10); void display(uchar L1,uchar L2,uchar L3) /温度数据显示程序 P21=0;P0=L1;delay(1); P21=1; P22=0;P0=L2;delay(1); P22=1; P23=0;P0=L3;delay(1);P23=1; if(flag=1)P20=0;P0=0x40;delay(1);P20=1; void Display_Result(uchar d) /电压显示部分uchar t;uchar s; uchar w; /采集的数值为duchar y;t=d/51; /分出百位s=d%51;/余数存入s中w=s/5;/分出十位y=s%5; /分出个位P23 = 0;P0 = LEDDatay;delay(1);P23=1;P22 = 0; /显示个位十位百位数值,其中百位调用有小数点的代码P0 = LEDDataw;delay(1); P22 = 1;P21=0; P0 = LEDData1t; delay(1); P21=1;P20=0;P0 = LEDData0; delay(1); P20=1;void main() uchar i,d,temp,s;EA=1; EX0=1;IT0=1; /2个中断开启,都采用跳沿触发EX1=1; IT1=1;AT=0; /初始选择通道INT0WD=0; /初始选择读取电压while(1)CLK=0;TMOD=0x10;TH1=(65536-100)/256; TL1=(65536-100)%256; EA=1; ET1=1; TR1=1;ST = 0; ST = 1; /开启ADC转换ST = 0; while(1) if(WD=0)do while(!EOC);OE = 1;/ADC输出允许 d=P1; for(i=0;i8;i+) temp=tempi;if(s&0x01)temp=temp|0x01; d=temp;Display_Result(d);/显示数值 if(AT=0)/当选择通道INT0时 if(d0x80)/电压超过2.5V P35=0; / 扬声器响,LED亮P36=0;delay(10); /延时后LED灭,实现LED闪烁P35=1;delay(10); elseP35=1; /电压未超过1.25V时,扬声器不响,LED也不亮P36=1;else /若选择通道INT1if(d0xC0) /电压超过3.75V时P35=0; / 扬声器响,LED亮P36=0;delay(10);P35=1; /延时后LED灭,实现LED 闪烁delay(10); elseP35=1; /电压未超过2.5V时,扬声器不响,LED也不亮P36=1;OE = 0; /输出允许关闭ST = 0;ST = 1; /开启ADC转换ST = 0; else uint i; P35=1; / 扬声器不响,LED也不亮 P36=1; i=ReadTemperature(); display(LEDDatai/1000,LEDData1i%1000/100,LEDDatai%100/10); void INTT0() interrupt 0 WD=!WD; /功能选择 的中断程序 void INTT1() interrupt 2 AT=!AT; /通道选择 的中断程序 void T1ZD()interrupt 3 TH1=(65536-100)/256; TL1=(65536-100)%256; CLK=CLK; 6硬件制造流程6.1 PCB图6.2制板流程洗板热转印钻孔腐蚀铜板除碳涂松脂焊元器件 7 总结通过这次比较完整的设计,使我摆脱了单纯的理论知识学习状态,达到了理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计软件收费管理办法
- 企业派员出境管理办法
- 代理业务风险管理办法
- 2025至2030全球及中国台秤行业项目调研及市场前景预测评估报告
- 保险风险防范管理办法
- 书法培训机构管理办法
- 云南扶贫资产管理办法
- 2025至2030中国消费者银行业务行业项目调研及市场前景预测评估报告
- 产品项目立项管理办法
- 事件风险预警管理办法
- 关于水肿的课件
- 石膏固定病人的护理措施
- 护理质量管理七大工具
- 品牌授权使用协议合同书
- 管理学教学设计创新汇报
- 2024年天津市公安局滨海分局招聘警务辅助人员考试真题
- 2025至2030停车场项目发展趋势分析与未来投资战略咨询研究报告
- 装置保运方案(3篇)
- 重症心脏超声指南解读
- 职工诉求服务管理制度
- 医疗机构医疗质量安全专项整治行动方案2025
评论
0/150
提交评论