《电子系统设计》.docx
- 文档编号:25518480
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:13
- 大小:501.12KB
《电子系统设计》.docx
《《电子系统设计》.docx》由会员分享,可在线阅读,更多相关《《电子系统设计》.docx(13页珍藏版)》请在冰豆网上搜索。
《电子系统设计》
HUBEINORMALUNIVERSITY
电工电子实验报告
课程名称
电子系统设计
选题名称
温度计(电压型温度传感器)
选题性质
仿真设计
学号姓名
专业名称
电子信息科学与技术
所在院系
物理与电子科学学院
填表时间
温度计的设计与仿真
一.任务解析
(以下的分析是我基于对Proteus仿真的理解)
我认真的分析了这几个题目:
电压表,电流表,温度计(电压型温度传感器)。
它们的核心其实都是一样的:
都是通过ADC芯片把传感器转化出来的电压信号送进单片机进行处理,然后把处理后的数据显示出来。
其本质上是要让我们学习模/数转换后的二进制数据经单片机处理后的显示。
这里我选者了温度计(电压型温度传感器)的设计与仿真,下面是这个任务的基本要求:
“有一正温度系数传感器,温度每升高1摄氏度,输出电压改变10mV,常温25摄氏度时,输出电压为250mV,该温度传感器在10到50摄氏度之间线性度很好,请用该温度传感器设计一个体温计,请你给出方案。
要求温度测量精度达到0.5摄氏度以上。
”
温度的变化对应电压的变化而是线性的,这就给系统的电路设计带来了方便。
整个系统电路的设计可以分成几个不同的模块,对每个模块了解清楚了后,就可以对系统有个清醒的认识。
二.方案论证
通过对任务的分析,我把系统分成了几个模块,画出了如下所示的原理框图:
由图可见,这种设计模式包含以下几个环节。
外界信号:
外界信号的范围十分广泛,自然界的一切信号,比如声音,温度甚至是血糖浓度等都可以规类为外界信号。
传感器:
因为大多数外界信号都不是电信号,因此需要通过各种传感器将这些外界信号转换成电信号,例如:
通过热电耦可以将温度转换成一个电压值。
模拟电路:
设计模拟电路的原因主要有以下两点
1.由于外界信号的复杂性,使得传感器直接输出的电信号可能会存在一些问题(如不稳定),这些不稳定信号如果直接送到A/D芯片进行采样,则最终结果可能使得最后的显示值来回乱跳,而无法确定待测的外界信号到底是多少。
因此,可能需要设计一套模拟电路对传感器输出的不稳定电信号进行滤波等处理,去除干扰,使得进入A/D转换芯片的电压值为一个稳定的信号。
2.每一个A/D转换芯片都有一个参考电压,只有输入的模拟电压值在这个参考电压的范围内才能进行正确的转换,例如:
本试验将ADC0804芯片的参考电压设置成0V~5V,因此如果输入的电压值大于5V,则转换出的结果永远为0xFF,若输入的电压值小于0V,则转换出的结果永远为0,这样便无法正确的还原出被测信号的大小。
基于上述原因,我们可能需要设计一套模拟电路,传感器的输出电压值进行一些变换(放大,缩小),使得送到A/D转换芯片的电压值在转换芯片的参考电压范围内。
A/D转换芯片:
即模拟/数字转换芯片,它将输入的模拟电压信号转换成单片机等控制处理器能够识别的数字二进制形式。
处理器芯片:
处理器芯片有很多中(比如51单片机,AVR单片机,ARM或者是PC上的奔腾处理器,AMD处理器)这些处理器虽然架构不一样,但是有个共同的特点,就是它们能够运行程序,因此它们能通过程序对A/D芯片送入的二进制形式的电压值进行处理,通过运算将其还原成待测的外界信号值,控制显示部件(如LCD,八段数码管)将这个值显示出来。
例如:
假如ADC0804输出的二进制值0x80,则根据A/D转换公式可以推出ADC0804的输入电压大小为(0x80/0x100)*5V=2.5V。
假设信号经过模拟电路缩小了8倍,则可以推出传感器的输出电压为2.5V*8=20V,再根据传感器的转换公式(一般手册会给出)即可得到输入的外界信号的值。
显示:
显示的作用是将计算出的待测外界信号的值展示给测量人员,显示的形式有很多种,如LCD,八段数码管等。
通过上面的介绍,我们一定对这种基于A/D芯片的嵌入式设计模式有了一个大致的了解,其实现时中很多应用都是遵循了这种设计模式,比如常用的数字万用表,数字温度测量仪,血糖测量仪等。
本试验也遵循了这种设计模式,只不过它省略了传感器和模拟电路部分,首先通过滑动变阻器调节输入到ADC0804芯片的电压值(ADC0804芯片的参考电压调节成0V~5V,而滑动变阻器产生的电压范围也为0V~5V,因此没有必要设计额外的模拟电路),然后通过51单片机进行运算处理得到这个输入温度值,最后再控制LCD1602将这个温度值显示出来,实际上是实现了一个简易的数字电压测量表。
图2是试验框图。
图2:
本试验示意图
接下来我们首先介绍实现本试验的方案仿真(电路设计),然后在仿真分析中介绍软件实现方法。
三.方案仿真
1.信号处理
根据题目所给的要求“温度每升高1摄氏度,输出电压改变10mV”,在Proteus中我用一个滑动变阻器来模拟这一变化过程,如下图所示:
滑动变阻器每变化1%对应的电压变化0.005V,这样就达到了题目所给出的精确度的要求。
这个滑动变阻器的范围为0到500mV对应的温度是从0’C到50’C与题目所给的要求相符合。
由于ADC0804是8位的分辨率,0.005V的电压变化ADC0804识别不了。
所以滑动变阻器输出的电压必须经过放大。
这里我用了同相比列运算放大,放大倍数是十倍,输入阻抗无穷大。
经放大后的电压变化达到了8位ADC0804分辨率的要求。
2.A/D转换
本试验采用的A/D芯片为ADC0804,它是CMOS8位单通道逐次渐近型的模/数转换器,其规格及典型接口图如图下图所示。
根据数据手册可以知道各个引脚的大致功能,如下:
/CS:
芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。
/WR:
启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平时,触发一次ADC转换。
/RD:
低电平有效,即/RD=0时,可以通过数据端口DB0~DB7读出本次的采样结果。
VIN(+)和VIN(-):
模拟电压输入端,模拟电压输入接VIN(+)端,VIN(-)端接地。
双边输入时VIN(+)、VIN(-)分别接模拟电压信号的正端和负端。
当输入的模拟电压信号存在“零点漂移电压”时,可在VIN(-)接一等值的零点补偿电压,变换时将自动从VIN(+)中减去这一电压。
VREF/2:
参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则VREF与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。
CLKR和CLKIN:
外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK=1/1.1RC,一般要求频率范围100KHz~1.28MHz。
AGND和DGND:
分别接模拟地和数字地。
/INT:
中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果,若ADC0804单独使用,则可以将/INT引脚悬空。
DB0~DB7:
输出A/D转换后的8位二进制结果。
3.数据处理及显示
经ADC0804转换后的数据被送进AT89C52的P1口,然后AT89C52处理数据送到LCD1602显示。
四仿真分析
用Proteus仿真的设计的这个电路比用硬件设计简单一些,在Proteus中不需要设计单片机的电源,晶振电路,复位电路。
芯片也不用担心会被烧毁。
用Proteus仿真只要把电路连接正确,关键的就是要编写程序。
这个设计的软件编程需要实现一下几个步骤:
1.控制ADC0804芯片进行正确采样,读取采样结果。
2.对采样值进行运算变换,换算出实际的滑动变阻器输入电压值。
3.将该电压值通过lcd1602显示出来,从而实现一个简易的数字温度测量表功能。
步骤一:
控制ADC进行正确采样,读取正确的采样值。
一个芯片的datasheet对于硬件设计和软件编程是很重要的,芯片的datasheet会介绍你所需要的芯片信息,从典型外围电路的搭建,到芯片的封装,电气特性以及软件编程模型。
一般来说,直接copy手册中给出的推荐外围电路即可。
同样,要使得ADC0804正常工作,我们依然首先需要仔细的阅读其使用手册。
一个芯片的控制时序对于编程来说是至关重要的,读懂时序是第一步,下面是我从ADC0804的datasheet上截取的时序图:
从这个图中就可以看出正确的软件编程模型
ADC转换主要包含下面三个步骤:
1.启动转换:
由时序图可知,在/CS信号为低电平的情况下,将/WR引脚先由高电平变成低电平,经过至少tW(WR)I延时后,再将/WR引脚拉成高电平,即启动了一次AD转换。
下图是用C语言的编程:
Datasheet中给出了要正常启动AD转换/WR的低电平保持时间tW(WR)I的最小值为100ns,即/WR拉低后延时大于100ns即可以,具体做法可通过插入NOP指令或者调用delay()延时函数实现,不用太精确,只要估计插入的延时大于100ns即可。
2.延时等待转换结束:
依然由时序图可知,由拉低/WR信号启动AD采样后,经过1到8个Tclk+INTERNALTc延时后,AD转换结束,因此,启动转换后必须加入一个延时以等待AD采样结束。
Datasheet中给出了内部转换时间“INTERNALTc”的时间范围为62~73个始终周期,因此延时等待时间应该至少为8+73=81个时钟周期。
本试验时钟频率约为Fclk=1/1.1R36C15=606KHz,其中R36约为150K,C15约为150pF,因此时钟周期约为Tclk=1/Fclk=1.65us。
所以该步骤至少应延时81*Tclk=133.65us.具体做法可通过插入NOP指令或者调用delay()延时函数实现,不用太精确,只要估计插入的延时大于133.65us即可。
2.读取转换结果:
由时序可知,采样转换完毕后,再/CS信号为低的前提下,将/RD脚由高电平拉成低电平后,经过tACC的延时即可从P1口读出有效的采样结果。
Datasheet中给出了tACC的典型值和最大值分别为135ns和200ns,因此将/RD引脚拉低后,等待大于200ns后即可从P1口读出有效的转换结果。
具体做法可通过插入NOP指令或者调用delay()延时函数实现,不用太精确,只要估计插入的延时大于200ns即可。
步骤二:
对采样值进行运算变换,换算出实际的滑动变阻器输入电压值,然后处理这个值把他变成温度值。
对于任何一个A/D采样器而言,其转换公式如下:
其中:
:
输入ADC的模拟电压值。
:
ADC转换后的二进制值。
本试验的ADC0804为八位。
:
ADC能够表示的刻度总数。
ADC0804为八位ADC,因此
:
ADC参考电压值,本试验ADC0804的
被设置为5V
因此,对于本试验,转换公式为
步骤三:
将该电压值通过LCD1602显示出来,从而实现一个简易的数字温度测量表功能。
同样LCD1602也有它的datasheet和时序图,下面将简要介绍一下:
首先要知道LCD1602的一些管脚及接口,如下图:
RS接AT89C52的P2.7口,R/W接AT89C52的P2.6口,E接AT89C52的P2.5口.D0到D7接AT89C52的P0口.
二是要知道1602的基本读写时序,如下图:
这里主要是写指令和写数据所以对写时序图要清楚的了解。
三是数据手册上给出了些什么样的指令可以设置显示模式(0x38),还有一些指令是关于光标设置的,等等。
如下图是一些基本的
通过查看数据手册就可以知道这些了。
还有一点就是模拟时序比如说在写指令是有个E=高脉冲,这就要先把E拉成低电平,延时tR后在把E拉成高电平。
综上所述,我们给出了完成单次采样的详细流程图,如图8所示
图:
ADC0804完成单次采样的软件控制流程图
下面的是整体效果图:
五.经验总结
我基本上完成了题目所给的要求,题目给的一个原理框图上还有一个按键,我这里没有用。
对于数据处理还有一些问题,即使用滑动变阻器每变化1%的时候,在LCD1602上显示的读数有时候变化0.6’C,有时候变化0.4’C.这是一个问题。
做这个设计让我对datasheet这个东西的作用有了更为深刻的了解,一般一个公司设计一款芯片,它会提供一套基于该芯片的完整解决方案,该解决方案包括基于这块芯片的电路设计,软件设计。
我们只要认真的看这个数据手册就可以知道这个芯片的典型电路接口,以及这个芯片的控制时序。
时序是单片机控制芯片的核心所在。
对于ADC0804和LCD1602的连接,我都采用的是模拟总线的方式,其编程都是我看懂时序图后模拟总线的方式的编写。
我做这个仿真设计前后总共花了不少时间,也对单片机的数字逻辑性有个一个新的认识。
对于软件的编程我是分了两步走的,首先是编写LCD1602的程序,当然在这里我是参考了一些资料的,编好了以后我把它做成了一个“LCD1602.h”
的头文件在主函数中通过LCDdisplay()这个函数就可以直接显示数据。
然后是编写ADC0804的函数(不过这里我没有也把ADC0804的驱动函数做成一个头文件)。
经ADC0804转换后的数据送往P1口(把P1口的值赋给一个变量即shuju=P1),然后调用LCDdisplay(shu);这个函数显示。
在这里确出了问题显示不出结果。
我想了很长的是时间,也在电工中心问了一些人,我也开始测试到底是那个地方出了问题,我用LCDdisplay(159)试了一下是能显示的但用LCDdisplay(shu)就是显示不出来数据,最后知道了我指把shu这个变量的类型定义错了,在这里应该把shu这个变量定义成unsignedint型,在LCDdisplay(unsignedinttemp)中也应该改为unsigedint。
我才开始一直把他们错误的定义成unsignedchar的类型。
应该是这两种类型所占的存储字节数不一样,unsignedint占两个字节而unsignedchar只占有一个字节。
所以如果定义为unsignedchar经过ADC0804转换后的数据如果在经过shu=shuju*100/51;的运算将发生错误。
所以显示不出来。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子系统设计 电子 系统 设计