TLC549的温度采集系统1Word下载.docx
《TLC549的温度采集系统1Word下载.docx》由会员分享,可在线阅读,更多相关《TLC549的温度采集系统1Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
关键词:
MCS—51、AD590、TLC549、系统
第一章系统设计
1.1系统设计的目的
本温度采集系统是应用于实际生活中的温度系统,它要满足人们生活中的温度测量需要,精度也没有太高的要求,也受限于芯片的精确度,当系统测量出温度时,能够用数码管显示出来。
通过做本次课程设计,能够对汇编语言书写程序有一定的感觉,能够对学过的汇编语,有一个比较实际的应用,提高对汇编语言的认识和兴趣,通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
通过做本次课程设计,提高自己的动手能力和独立思考的能力,将学到的知识灵活应用,预防将知识仅仅停留在书面水平上,对单片机和一些芯片的连接功能作用有一些基本的认识,为将来的学习和工作积累一些经验。
1.2系统设计的思路
将AD590采集到的电压信号送给TLC549中,进行模数转换,转换完毕后将转换后的数据送到单片机中,单片机进行处理后在送入74LS164中,进行显示,这就是温度采集系统的基本思路。
1.3系统功能分析计算
因为TLC549为八位数的芯片,所以它的计数范围为0——255,因为系统的最高加热温度为67度,所以最相近的为把255四等分,
能够测量温度范围在0—63.75的温度,,温度精确度为0.25度,温度的精确度适中,完全能够满足生活需要。
第二章方案设计
且在系统中还有加热功能,当需要加热时,将单片机中的引线接入T—con中,此时就可以对系统加热,
要测量温度,首先要认识AD590,AD590是AD公司生产的一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,设定温度为0摄氏度时变换放大电路送出的模拟量为0V,此时A/D输出的数字量为00H;
温度为67摄氏度时变换放大电路送出4.98V电压,将此电压送入TLC549芯片中,TLC549是一种采用8位逐次逼近式工作的A/D转换器。
内部包含系统时钟、采样和保持、8位A/D转换器、数据寄存器以及控制逻辑电路。
当接收到电压时,芯片将电压信号转变为数字信号,TLC549芯片每来一次下降沿将数据输出,且先将最高位输出,后一次输出后面的数字,当单片机接收到数据时,存入内存中,接收完毕时,将数据送入四只74LS164组成四位静态数码管显示电路,在数码管上滚动显示出数据,这就是整个温度采集系统的工作思路和原理。
第三章 单元电路的设计和元件分析
3.1温度测量与控制电路
(1)AD590电路介绍
AD590是AD公司生产的一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1A最大电流的变化或1摄氏度等效误差。
图33-1给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路,当温度有了10℃的变化时输出电压变化为20mV,即该电路运放6脚电压随温度变化为2Mv/℃。
AD590将温度变化量转换成电压值变化量,经过OP07一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,利用CPU采集并存储采集到的数据。
将温度传感器输出的小信号跟随放大45倍左右后,送至8位A/D转换器换成数字量。
(2)温度测量与控制电路
设定温度为0摄氏度时变换放大电路送出的模拟量为0V,此时A/D输出的数字量为00H;
温度为67摄氏度时变换放大电路送出4.98V电压,此时A/D输出的数字量为FFH,即每0.3摄氏度对应1LSB变化量。
当温度超过报警温度报警67摄氏度,此时,输出电压约为5.0V左右。
通过电压比较器接通硬件报警电路报警。
输入A/D的模拟信号有过压保护,不会损坏A/D转换器。
在实验平台硬件中,已有安全设计,即加热温度不会超过80℃。
系统出厂时已依据标准调整好了放大器的增益和零位。
应注意:
由于热惯性的影响及温度计显示的滞后因素,若要精确观察某温度点的测量值,在加热到观察温度点后,应停止加热,等待温度计示值稳定后,再观察记录结果。
若选区观察点温度较高,还应相应延长等待时间。
需要说明的是,由于温度计和温度采样芯片AD590的采样点不同,理论计算值同显示略有偏差。
(3)MCS—51AT89C51
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存
储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,
兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提
供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:
(1)·
与MCS-51产品指令系统完全兼容·
(2)4k字节可重擦写Flash闪速存储器
(3)·
1000次擦写周期(4)·
全静态操作:
0Hz-24MHz
(5)·
三级加密程序存储器(6)·
128×
8字节内部RAM
(7)·
32个可编程I/O口线(8)·
2个16位定时/计数器
(9)·
6个中断源(10)·
可编程串行UART通道
(11)·
低功耗空闲和掉电模式
串行A/D转换TLC549电路
TLC549是一种采用8位逐次逼近式工作的A/D转换器。
TLC549每25uS重复一次“输入——转换——输出”。
器件有两个控制输入:
I/OCLOCK和片选(CS)。
内部系统时钟和I/OCLOCK可独立使用。
应用电路的设计只需利用I/O时钟启动转换或读出转换结果。
当CS为高电平时,DATAOUT处于高阻态且I/O时钟被禁止。
当CS变为低电平时,前次转换结果的最高有效位(MSB)开始出现在DATAOUT端。
在接下来的7个I/OCLOCK周期的下降沿输出前次转换结果的后7位,至此8位数据已经输出。
然后再将第8个时钟周期加至I/OCLOCK,此时钟周期的下跳沿变使芯片进行下一轮的AD转换。
在第8个I/OCLOCK周期之后,CS必须变为高电平,并且保持高电平直至转换结束为止(>
17uS),否则CS的有效高电平至低电平的转换将引起复位(其它详细资料看芯片说明)。
本实验需要用到CPU模块(F3区)、直流可调电源模块(E2区)、串行模数转换模块(D5区)、串行静态数码显示模块(B4区)。
TLC549串行模数转换电路原理见图。
串行静态数码显示
静态数码管显示电路由四只74LS164、四只共阴极LED数码管组成。
输入只有两个信号,它们是串行数据线DIN和移位信号CLK。
四只74LS164首尾相连,每只74LS164的并行输出作为LED数码管的段码。
本实验需要用到CPU模块(F3区)和静态数码管显示模块(B4区)。
静态数码管显示电路原理图参见图。
第四章程序设计
源程序代码
clkbitp3.4
dobitp3.5
csbitp3.2
;
--------主函数--------------
org0000h
jmpmain
org0030h
main:
使Tlc549开始AD转换,
将数存入A中
ad:
setbdo
setbcs
clrclk
clrcs;
启动转换
lcallread;
调用读入数据
setbcs;
停止转换
clrc;
清零Cy,备用
lcallconvey
;
判断余数b的值
cjner0,#0,aaa
lcallloop
jmpad
aaa:
cjner0,#1,bbb
lcalllop1
jmpad
bbb:
cjner0,#2,ccc
lcalllop2
ccc:
lcalllop3
将A中的二进制数,转换成十进制
(带小数点),并在四段七位数码管
中显示出来。
以下为调用的各各函数
从TLC549中读取转换成的数字信号
一个下降沿读入一次
循环八次将数据写入A
read:
movc,do
rlca
movr6,#07h
re:
setbclk
nop
rlcA
djnzr6,re
ret
设计精度为0.25,
最高温度为63.75度,没有负值
convey:
movr7,#8
movb,#4
divab
movr0,b
ret;
返回判断余数b的值
显示值xx.00
loop:
lcalldiv1
mova,#0
lcalldisp
mova,41h;
个位数
lcalllop4
mova,40h;
十位数
lcalldly
显示值xx.25
lop1:
mova,#5
mova,#2
mova,40h
lcalldisp;
显示值xx.50
lop2:
ret
mova,#7
把二进制转换成十进制
div1:
movb,#10
mov40h,a;
mov41h,b;
延时0.2秒
dly:
movr4,#20
dlya:
movr5,#20
dlyb:
movr6,#248
djnzr6,$
djnzr5,dlyb
djnzr4,dlya
带小数点显示
lop4:
movr3,#10
lop5:
inca
djnzr3,lop5
显示函数
循环8次把数据送出
disp:
lcalllook
lop8:
jbacc.7,lop6
clrp2.0
jmplop7
lop6:
setbp2.0
lop7:
clrp2.1
setbp2.1
rla
djnzr7,lop8
movr7,#8
查表函数
look:
movdptr,#tab
movca,@a+dptr
以下为表格,做查表用
tab:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;
数0到9
db0bfh,86h,0dbh,0cfh,0e6h,0edh,0fdh,87h,0ffh,0efh;
数0到9带小数点
end
程序运行的过程
设定当温度为0时,AD590的温度为0V,当温度为67度时,电压大约为4.875度,
当温度在0—67.5度时,会有一个电压,用这个电压与TLC549的5V,相比较,因为TLC549为八位数,所以它的计数范围为0—255,设精确度为0.25度,所以它所能测量到的温度为63.5度,温度采集系统的工作过程举例说明:
当在某一温度时,AD590输出的电压为2.1V,所以所得到的输出数字为2.1/5*256为107,由此可得到的温度为107/4为26.75度,所以此时的温度为26.75度,当然此种方法存在误差,误差率在50%左右。
第五章课程设计总结和体会
这次单片机课程设计我们历时两个星期,经过这两个星期的实践和体验下来,学到的不仅是那些知识,更多的是团队和合作。
现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!
作为一名大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;
在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。
更重要的是如何把自己平时所学的东西应用到实际中。
虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。
我认为这个收获应该说是相当大的。
觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。
小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。
这项看起来不需要多少技术的工作却是非常需要耐心和精力在两个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!
附录
主要参考资料:
1.《电子设计自动化技术基础》马建国、孟宪元编清华大学出版2004年4月
2.《实用电子系统设计基础》姜威2008年1月
3.《单片机系统的PROTEUS设计与仿真》张靖武2007年4月
4.《单片机的原理与应用教程》赵全利、肖兴国2007年7月
成绩评定表:
指导老师成绩
答辩小组成绩
总成绩