基于proteus的简单温度测量系统设计.docx
《基于proteus的简单温度测量系统设计.docx》由会员分享,可在线阅读,更多相关《基于proteus的简单温度测量系统设计.docx(33页珍藏版)》请在冰豆网上搜索。
![基于proteus的简单温度测量系统设计.docx](https://file1.bdocx.com/fileroot1/2023-2/21/16ac2b98-7770-4d93-9def-fc3d35870273/16ac2b98-7770-4d93-9def-fc3d358702731.gif)
基于proteus的简单温度测量系统设计
课程设计二基于proteus的简单温度测量系统设计
一、课程设计要求
本课程设计的基本要求是使学生熟悉掌握51系列单片机的编程方法,学习应用proteus软件进行单片机应用系统设计与仿真。
要求同学们设计一款简易的温度测量装置,设计要求温度测量范围为0-120度,测量精度为1度。
有精力的同学可以将测温通道扩展为8通道(不限测温通道数目)。
要求设计基于单片机的简单温度测量系统电路原理图,实现温度测量系统的仿真,并最终提交仿真结果。
设计的基本要求:
(1)测量范围为0℃~+120℃,精度为1℃;
(2)利用温度传感器测量某一点环境温度;(3)利用A/D转换将温度信号转换成电压信号;(4)在LED数码管上显示;(5)Proteus软件进行仿真。
二、设计思路(仅供参考)
根据系统的设计要求,温度传感器TC1输出信号经信号差动放大到0—5V,放大器的输出送ADC80C51进行A/D转换,A/D转换结果送单片机进行处理,最后将所测的温度在LED数码管上显示。
图1系统设计框图
三、相关设计知识
(一)硬件设计部分
1、AT89C51单片机选择及特点
由于此设计需要编写程序,需要将程序载入单片机中,因此单片机必须具有
足够多的存储空间,其具有8K字节的Flash完全满足要求。
16位的定时计数器使得读取数据变得更加简单,同时其结构有利于晶振电路和复位电路的连接。
最重要的是,能够在掉电状态下保存RAM内的数据。
因此,对于本设计来说,选择AT89C51是最有利的。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供。
主要特性
(1) 与MCS-51兼容
(2)4K字节可编程闪烁存储器
(3)32可编程I/O线
(4) 128×8位内部RAM
(5)全静态工作:
0Hz-24MHz
(6)5个中断源
(7) 数据保留时间:
10年
(8) 寿命:
1000写/擦循环
(9) 两个16位定时器/计数器
(10)三级程序存储器锁定
(11)可编程串行UART通道
(12)低功耗的闲置和掉电模式
(13)片内振荡器和时钟电路
管脚说明
图2AT89C51引脚电路图
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)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下:
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
晶振电路
所谓晶振电路即指单片机的时钟电路。
该电路通常有内部时钟电路和外部时钟电路。
一般选用前者。
单片机芯片内部有一个反相放大器构成的振荡器。
反相放大器的输入端为XTAL1,输出端为XTAL2,吧XTAL1和XTAL2与外部石英晶体及两个电容连接起来可构成一个石英晶体振荡器如图3-4所示。
时钟发生器是一个2分频电路。
它把晶体振荡器的频率2分频后供给片内其他电路。
一般电容C1和C2起到
稳定振荡频率、快速起振的作用。
4复位电路
单片机复位时RESET需保持96个晶振周期的高电平(即需8个机器周期)。
复位以后P0-P3口输出高电平,堆栈指针SP指向07H,其他特殊功能寄存器和程序计数器PC清零。
只要RESET保持高电平,AT89C51就会循环复位。
RESET当由高电平变为低电平以后,单片机从程序存储器0地址开始执行程序。
但单片机复位部RAM状态,包括工作寄存器R0-R7。
常见的复位电路有:
上电复位电路和上电按钮复位电路,在本设计中均采用上电按钮复位电路,如图所示:
2.4复位电路
2模数转换器的选择
ADC0831是美国国家半导体公司生产的一种8位分辨率、双通道带有串行接口的A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
工作原理
ADC0831的工作时序如下图,ADC0831的工作过程如下:
首先,将ADC0831的时钟拉低,再将片选端CS置低,启动A/D转换。
接下来在第一个时钟的下降沿到来时,ADC0831的数据输出端被拉低,准备输出转换数据。
从时钟的第二个下降沿到来开始,ADC0831开始输出转换数据,直到第九个下降沿为止,共8位,输出的顺序从最高位到最低位
。
ADC0831启动程序如下:
AD_CONV:
SETBCS
CLRCLK
NOP
NOP
CLRCS
NOP
NOP
SETBCLK
NOP
NOP
CLRCLK
NOP
NOP
SETBCLK
NOP
NOP
MOVR0,#08H
芯片接口说明
2.5ADC0831引脚图
·CS:
片选使能,低电平芯片使能。
·VREF:
参考电压输入端,接+5V。
·GND:
芯片参考0电位。
·CLK:
芯片时钟输入(复用)。
·V
(+):
接电源正极。
·V
(-):
接电源负极。
·D0:
A/D转换数据输出端
技术指标:
·8位分辨率;
·一般功耗为15mW;
·转换时间为32us
·5V电源供电时输入电压为0~5V之间
四位一体LED
发光二极管简称为LED。
由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。
磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。
不同的半导体材料中电子和空穴所处的能量状态不同。
当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。
常用的是发红光、绿光或黄光的二极管。
发光二极管的核心部分是由P型半导体和由N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。
在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。
PN结加反向电压,少数载流子难以注入,故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。
当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。
本次设计选用的是四位一体共阳极数码管。
这类数码管可以分为共阳极和共阴极,共阳极就是把所有LED的阳极连接到共同节点com,而每个LED的阴极非别为a、b、c、d、e、f、g及dp;共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp,如下图所示,图中的8个LED分别图中a~dp各段对应,通过控制各个LED的亮灭来显示数字。
数码管使用条件:
a、段及小数点上加限流电阻
b、使用电压:
段,小数点,根据发光颜色决定
c、使用电压:
静态:
80mA
动态:
平均电流4—5mA
峰值电流:
100Ma
OP07放大器介绍
OP07是一种高精度单片运算放大器,具有极低的输入失调电压,极低的失调电压温漂,非常低的输入噪声电压幅度及长期稳定等特点。
可广泛应用于稳定积分、精密绝对值电路、比较器及微弱信号的精确放大,尤其适应于宇航、军工及要求微型化、高可靠的精密仪器仪表中
。
OP07作为一种低噪声高精度运算放大器,特别适合做前级放大器。
具有以下特点:
1)低的输入噪声电压幅度—0.35μVP-P(0.1Hz~10Hz)
2)极低的输入失调电压—10μV
3)极低的输入失调电压温漂—0.2μV/℃
4)具有长期的稳定性—0.2μV/MO
5)低的输入偏置电流—±1nA
6)高的共模抑制比—126dB
7)宽的共模输入电压范围—±14V
8)宽的电源电压范围—±3V~±22V
9)可替代725、108A、741、AD510、1875等电路
3温度测量电路设计
温度测量电路要实现的目标是:
将0~120度通过传感器测量,运算放大器放大的0~5V的电压信号。
温度传感器选用Pa-t传感器,放大器采用OP07E放大器,温度信号输入采用差动放大形式,放大器输出为:
即放大倍数为100倍。
在Proteus中实测放大器输出数据为:
温度
0
10
20
30
40
50
60
70
80
90
100
110
120
电压
0.00
0.43
0.83
1.24
1.66
2.07
2.49
2.91
3.33
3.75
4.17
4.58
5.00
从测试数据来看,本设计符合0~120
对应输出0~5V电压要求。
温度测量电路
A/D转换电路设计
A/D转换的目标是将模拟量转化成数字量,在本例中,选用ADC0831串行A/D转换芯片做为温度测试系统的A/D转换芯片,设计电路如图所示:
A/D转换电路
由于设计误差要求为1
,1
对应的输入电压为(1/120)×5=0.04167V,8位A/D转换芯片的分辨率为
×5=0.019531V,从而说明选用8位的A/D转换器测量误差要小于1
。
另外,之所以选择串行的,理由是串行的电路设计简单,在性能上符合要求。
LED显示电路设计
LED显示电路
报警电路设计
当温度低于80度时,绿灯亮;当温度高于80度时,红灯亮。
报警电路
系统整体硬件电路设计
整体电路设计
(二)软件部分设计
1Proteus软件介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、8086PIC10/12/16/18/24/30/DsPIC33和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus与其他单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。
因此在仿真和程序调用时,关心的不再是某些语句执行时单片机寄存器和储存器内容的改变,而是从工程的角度直接看程序运行和电路工作过程和结果。
Proteus主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及与电路原理图的交互仿真,ARES主要用于印制电路板的设计[8]
。
本次设计主要用的是ISIS部分。
ProteusISIS是一种操作简便而又功能强大的原理图编译工具,它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点有:
·实现了单片机仿真和SPICE电路仿真结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I
C调试器、SPI调试器、键盘和LCD系统仿真等功能;有各种虚拟仪器。
如示波器、逻辑分析仪、信号发生器等。
·支持主流单片机系统的仿真。
目前支持的单片机类型有68000系列、8051系列、ARM系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、PIC24系列、BSTAMP系列、Z80系列、HC11系列以及各种外围芯片。
·提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各种变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境。
如KeiluVision3等软件。
·具有强大的原理图绘制功能。
Proteus的工作过程
运行Proteus的ISIS程序后,进入该仿真软件的主界面。
在工作前,要设置VIEW菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工作栏中的P(从库中选择元件命令)命令。
在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名的项目:
在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序:
通过debug菜单的相应命令仿真程序和电路的运行情况。
Proteus提供了比较丰富的测试信号用于电路的测试。
对于单片机硬件电路和软件的调试,Proteus提供了两种方法;一种是系统总执行效果,一种是对软件的分部调试以看具体的执行情况。
对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pauseanimation菜单项或pause键暂停系统的运行。
对于软件的分部调试,应先执行debug菜单下的start/restartdebugging菜单项命令,此时可以选择stepover、stepinto和stepout命令执行程序,执行的效果是单句执行、进入子程序执行和跳出子程序执行。
在执行了start/restartdebugging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调剂时分析和查看
。
2.Proteus仿真调试及结果
根据设计要求:
分为显示电路,报警电路,测温电路和A/D转换电路,按步骤完成电路图的连接。
第一步完成LED显示电路的连接,如下图所示:
第二步绘制报警灯电路,如下图:
第三步完成晶振复位电路:
如下图示:
第四步绘制A/D转换电路,如图:
最后完成核心部分温度测量电路:
完成电路连接后,在ProteusISIS界面中单击Source(源程序),在弹出的下拉菜中单击“Add/RemoveSourceFiles”(添加/移开源程序)选项,如下图:
单击“CodeGenerationTool”(目标代码生成工具)选取ASEM51。
单击“New”按钮,弹出如图所示对话框,在文件名框中输入新建源程序
单击打开,选择“是”按钮。
这样将在Source下建立Tem.ASM文件,如下图:
点击新建成的“Tem.ASM”进入汇编语言编译窗口
将程序敲入其中。
如图:
单击Source下的“BuildAll”编译结果在弹出的对话框中显示。
如果没有错误便成功生成目标代码”Tem.hex”文件。
这样便成功的将目标代码加载到单片机中。
点击OK后,点击左下角仿真按钮进行仿真。
当给温度传感器输入0度时,可以发现电压表显示0.03V,误差在1度范围内,电压和温度测量电路的输出电压成10倍关系,与此同时绿色报警灯亮说明符合设计要求,但LED显示值为002,如果电路和程序均无错误LED显示值应该为000,因此说明系统某部分仍存在错误。
给温度传感器设置10度时,电压表显示值为0.43V,绿灯亮,仍符合要求。
LED显示值为022。
以此类推当给温度传感器输入20,30,40度时;
当改变温度传感器温度值,使LED显示为080时,绿灯亮。
当LED显示大于80度时,红灯亮,此时报警指示电路工作正常。
4结果分析
根据仿真结果可以看出,温度测量电路和A/D转换电路以及报警灯电路均显示正常,只有LED显示结果与理论值有误差,正常情况下LED上显示值和温度传感器输入值是一样的,然而仿真时,0度对应的是002,1度对应的是004,10度对应的是022,显示数以2为基准跳变。
因此我首先想到的是程序问题,在程序中加一个除2的语句,但LED显示仍无大变化。
因此造成LED显示错误可能有其他原因,经过分析造成误差的原因可能有以下几点:
1.
2.
3.
4.
四、结论
在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。
在论文中简单分析了单片机温度控制系统设计过程及实现方法。
本系统的测温范围为0℃~120℃,温度检测系统根据用户设定的温度范围完成一定范围的温度控制。
本次设计的测温系统主要有AT89C51和A/D转换器及温度传感器来实现功能的并通过proteus软件进行仿真。
因此需要通过查阅资料来了解这些器件的基本结构,主要功能和注意事项等等。
通过了解器件,在触类旁通之下,能够知道与所选器件相似的器件,比较彼此之间的优缺点,来确定设计选择的器件是否合适,如何更好的利用器件的特点成为了本次设计重要的一方面。
在确定了器材之后,如何利用使之最大限度的体现设计的功能,完成设计目标,这又是需要花大量时间去思考的。
在设计完成之后,设计合理的程序和通过仿真软件模拟仿真,又再一次检验了设计的成果。
整个设计从确定题目,到寻找相关资料,再到选择合适的器件,接着对电路图的绘制,程序的编写,仿真的进行,最终调试。
一步步走过来,一点点的进步,花了大量的时间和精力,而成果也是喜人的。
经过一段时间的方案论证、系统的硬件和软件的设计、系统的调试。
查阅了大量的关于传感器、单片机及其接口电路、以及控制方面的理论。
经过了一番特殊的体验后,经历了失败的痛苦,也尝到了成功的喜悦。
第一次靠用所学的专业知识来解决问题。
检查了自己的知识水平,使我对自己有一个全新的认识。
通过这次毕业设计,不仅锻炼自己分析问题、处理问题的能力,还提高了自己的动手能力。
但由于时间有限,本次设计过于简单,未能实现其他功能,如语音报警、键盘控制等。
五参考文献
[1]张建波,韩崧.浅谈温度测量发展史[J].测量技术,2001,14-15
[2]陈慕君,唐慧刚,刘其,袁富娟基于AT89C51单片机控制的数字温度计设计[J].科技信息009(14)
[3]张靖武,周灵彬.单片机系统PROTEUS设计与仿真[M].北京:
电子工业出版社,2007
[4]周润景,张丽娜.基于proteus的电路及单片机系统设计与仿真[M].北京:
北京航空航天大学出版社,2006
[5]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,2008
[6]田鑫.OP07功率放大器[J].武汉理工大学,2009,5-6
[7]吉武庆,耿凡娜.基于单片机温度测温系统仿真设计[J].科技信息2008,(16):
395-396
[8]朱