基于51单片机电压表设计_第1页
基于51单片机电压表设计_第2页
基于51单片机电压表设计_第3页
基于51单片机电压表设计_第4页
基于51单片机电压表设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于51单片机电压表设计PAGE15课程设计名称:基于51单片机电压表设计目次1引言 11.1背景 11.2课程设计的目的及意义 11.3课程设计课题 12总体方案设计 22.1课程设计器材 22.2实验原理图 22.3系统框图 33硬件设计 43.1AT89S51单片机系统 43.2模数转换模块 73.2.1主要特性 83.2.2内部结构 83.2.3外部特性 83.3三路可调电压模块 93.4各模块直接引脚连接方法 104软件设计 104.1根据系统硬件图编写系统调试程序 10基于51单片机电压表设计全文共16页,当前为第1页。4.2软件仿真 12基于51单片机电压表设计全文共16页,当前为第1页。5总结 13参考文献 14附录 151引言1.1背景近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。并且应该学会利用单片机AT89S51设计一个数字电压表,能够精确测量0-5V之间的直流电压值,并用四位数码显示电压值。“单片机原理及应用课程设计”是电类专业的学科基础课,它是继“汇编语言程序设计”、“微机原理与接口技术”等课程之后开出的实践环节课程。1.2课程设计的目的及意义目的:通过本次课程设计,巩固和加深“单片机原理与应用”中的理论知识,了解和应用仿真软件,结合软硬件,基本掌握单片机的应用的一般设计方法,提高电子电路的设计和实验能力,并且提高自身查找和运用资料能力意义:通过本次课程设计,使得理论知识系统化,从中或得一些实战工作经验,提高个人与团体指挥的作用。基于51单片机电压表设计全文共16页,当前为第2页。1.3课程设计课题:基于51单片机电压表设计全文共16页,当前为第2页。利用单片机AT89S51设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。2总体方案设计2.1课程设计器材:Design:C:\Users\lwzwj\Desktop\单片机课程设计\新建文件夹\数字电压表\VOLTMETER.DSNDoc.no.:<NONE>Revision:<NONE>Author:<NONE>Created:09/06/15Modified:09/06/18QTYPART-REFSVALUEResistors1R110kCapacitors2C1,C230uF1C310uFIntegratedCircuits1U1AT89C511U2ADC08081U374LS74Miscellaneous1RV11k1X1CRYSTAL基于51单片机电压表设计全文共16页,当前为第3页。基于51单片机电压表设计全文共16页,当前为第3页。2.2实验原理图(见下页)2.3系统框图LED84SLED84S四位数码显示AT89S51单片机系统AT89S51单片机系统软件产生CLK信号基于51单片机电压表设计全文共16页,当前为第4页。三路可调电压模块模数转基于51单片机电压表设计全文共16页,当前为第4页。三路可调电压模块模数转换模块模拟信号3硬件设计(各模块详细介绍) 3.1AT89S51单片机系统AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。1.主要特性:•8031CPU与MCS-51兼容•4K字节可编程FLASH存储器(寿命:1000写/擦循环)•全静态工作:0Hz-24KHz基于51单片机电压表设计全文共16页,当前为第5页。•三级程序存储器保密锁定基于51单片机电压表设计全文共16页,当前为第5页。•128*8位内部RAM•32条可编程I/O线•两个16位定时器/计数器•6个中断源•可编程串行通道•低功耗的闲置和掉电模式•片内振荡器和时钟电路2.管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。基于51单片机电压表设计全文共16页,当前为第6页。P3.0RXD(串行输入口)基于51单片机电压表设计全文共16页,当前为第6页。P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。基于51单片机电压表设计全文共16页,当前为第7页。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。基于51单片机电压表设计全文共16页,当前为第7页。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2模数转换模块此模块主要由模数转换器ADC0809和双D型正沿触发器74LS74(带预置和清除端)组成。基于51单片机电压表设计全文共16页,当前为第8页。ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。基于51单片机电压表设计全文共16页,当前为第8页。3.2.1主要特性1)8路8位A/D转换器,即分辨率8位。2)具有转换起停控制端。3)转换时间为100μs4)单个+5V电源供电5)模拟输入电压范围0~+5V,不需零点和满刻度校准。6)工作温度范围为-40~+85摄氏度7)低功耗,约15mW。3.2.2内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近3.2.3外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。IN0~IN7:8路模拟量输入端。2-1~2-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START:A/D转换启动信号,输入,高电平有效。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。基于51单片机电压表设计全文共16页,当前为第9页。GND:地。基于51单片机电压表设计全文共16页,当前为第9页。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。ADC0809原理图及引脚图3.3三路可调电压模块通过滑动变阻器改变电压,并且用理想电压表测待测电压,与设计的数字电压表所测数值作比较。基于51单片机电压表设计全文共16页,当前为第10页。基于51单片机电压表设计全文共16页,当前为第10页。3.4各模块直接引脚连接方法:1)

把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口连接。2)

把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1-S8端口连接。3)

把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。4)

把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。5)

把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。6)

把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。7)

把“模数转换模块”区域中的A2A1A0端子用导线连接到GND端子上。8)

把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。9)

把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0-D7端子上。4软件设计4.1根据系统硬件图编写系统调试程序#include<AT89X52.H>基于51单片机电压表设计全文共16页,当前为第11页。unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};基于51单片机电压表设计全文共16页,当前为第11页。unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsignedchardispbuf[8]={10,10,10,10,10,0,0,0};unsignedchardispcount;unsignedchargetdata;unsignedinttemp;longinti;unsignedintR1;sbitST=P3^0;sbitOE=P3^1;sbitEOC=P3^2;sbitCLK=P3^3;voidmain(void){ST=0;OE=0;ET0=1;ET1=1;EA=1;TMOD=0x12;TH0=216;TL0=216;TH1=(65536-5000)/256;TL1=(65536-5000)%256;TR1=1;TR0=1;ST=1;ST=0;while(1){if(EOC==1){OE=1;getdata=P0;OE=0; i=getdata*196; dispbuf[5]=i/10000; i=i%10000; dispbuf[6]=i/1000; i=i%1000;基于51单片机电压表设计全文共16页,当前为第12页。 dispbuf[7]=i/100;基于51单片机电压表设计全文共16页,当前为第12页。ST=1;ST=0;}}}voidt0(void)interrupt1using0//定时器0中断服务{CLK=~CLK;}voidt1(void)interrupt3using0//定时器1中断服务{TH1=(65536-6000)/256;TL1=(65536-6000)%256;P2=0xff;P1=dispcode[dispbuf[dispcount]];P2=dispbitcode[dispcount];if(dispcount==5){P1=P1|0x80;}dispcount++;if(dispcount==8){dispcount=0;}}4.2软件仿真基于51单片机电压表设计全文共16页,当前为第13页。此系统仿真用到了Keil软件。Keil软件是目前最流行开发MCS-51系列单片机的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。系统仿真还用到了PROTEUS软件,可通过仿真完全显示出所设计系统的功能,对于程序调试有很大帮助。基于51单片机电压表设计全文共16页,当前为第13页。5总结计算机课程设计是一门很实用的设计。这个设计用到了单片机、电路等方面的知识,通过这次课程设计,使我对单片机及其附属电路有了一定的了解,对课本上的知识有了进一步的掌握,也深深明白了自己在理论和实践上的很多不足。通过对本设计的思考,更加加深了对单片机的认识,熟练了单片机的编程,更对当前的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论