数字温度计的设计毕业论文Word格式文档下载.docx
- 文档编号:20728228
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:25
- 大小:441.08KB
数字温度计的设计毕业论文Word格式文档下载.docx
《数字温度计的设计毕业论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字温度计的设计毕业论文Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
(3)为电动装配提供阻焊徒刑,为元器件插装、检查、维修提供识别符和图形。
设计务任和要求
、大体范围-20℃——100℃
、精度误差小于℃
、LED数码直读显示
、能够任意设定温度的上下限报警功能
第二章系统整体方案及硬件设计
数字温度计设计方案论证
2.1.1方案一
由于本设计是测温电路,能够利用热敏电阻之类的器件利用其感温效应,在将随被测温度转变的电压或电流搜集过来,进行A/D转换后,就能够够用单片机进行数据的处置,在显示电路上,就能够够将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对搜集的信号进行放大时容易受温度的阻碍从而显现较大的误差。
2.1.2方案二
考虑到用温度传感器,在单片机电路设计中,大多都是利用传感器,因此这是超级容易想到的,因此能够采纳一只温度传感器DS18B20,此传感器,能够很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且利用单片机的接口便于系统的再扩展,知足设计要求。
从以上两种方案,很容易看出,采纳方案二,电路比较简单,费用较低,靠得住性高,软件设计也比较简单,故采纳了方案二。
系统整体设计
温度计电路设计整体设计方框图如下图,操纵器采纳单片机STC89C52,温度传感器采纳DS18B20,用4位LED数码管以串口传送数据实现温度显示。
图
有了整体设计方案后,下面确实是原
理图的制作了。
原理图如以下图及图示。
为了降低绘制PCB是的麻烦度,特意将数码管电路与主操纵电路分开画,最后二者是用导线连接。
数码管位选接P20—P23,段选接P0口。
图数码管电路
图单片机操纵电路
模块简介
系统由单片机最小系统、显示电路、按键、温度传感器等组成。
2.3.1主操纵器
单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能够知足电路系统的设计需要,很适合便携手持式产品的设计利用系统可用二节电池供电。
晶振采纳12MHZ。
复位电路采纳上电加按钮复位。
图晶振电路图复位电路
2.3.2显示电路
显示电路采纳4位共阴极LED数码管,P0
口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。
P2口的低四位作为数码管的位选端。
采纳动态扫描的方式显示。
2.3.3温度传感器
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相较,它能直接读出被测温度,而且可依如实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
1、独特的单线接口仅需要一个端口引脚进行通信;
2、多个DS18B20能够并联在惟一的三线上,实现多点组网功能
3、不必外部器件;
4、可通过数据线供电,电压范围为~V;
5、零待机功耗;
6、温度以9或12位数字;
7、用户可概念报警设置;
8、报警搜索命令识别并标志超进程序限定温度(温度报警条件)的器件;
9、负电压特性,电源极性接反时,温度计可不能因发烧而烧毁,但不能正常工作;
DS18B20能够采纳两种方式供电,一种是采纳电源供电方式,现在DS18B20的1脚接地,2脚作为信号线,3脚接电源。
为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必需有强的上拉,上拉开启时刻最大为10us。
采纳寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必需是三态的。
图温度传感器与单片机的连接
报警温度调整按键
本系统设计三个按键,采纳查询方式,一个用于选择切换设置报警温度和当前温度,另外两个别离用于设置报警温度的加和减。
均采纳软件消抖。
第三章系统软件算法分析
系统程序要紧包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,按键扫描处置子程序等。
主程序流程图
主程序的要紧功能是负责温度的实时显示、读出并处置DS18B20的测量的当前温度值,温度测量每1s进行一次。
如此能够在一秒之内测量一次被测温度,其程序流程见图所示。
图主程序流程图
读出温度子程序
读出温度子程序的要紧功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图示
温度转换命令子程序
温度转换命令子程序主若是发温度转换开始命令,当采纳12
位分辨率时转换时刻约为750ms,在本程序设计中采纳1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如图所示
图读文读流程图图温度转换流程图
计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图所示。
显示数据刷新子程序
显示数据刷新子程序主若是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一名。
程序流程图如图。
图计算温度流程图图显示数据刷新流程图
按键扫描处置子程序
按键采纳扫描查询方式,设置标志位,当标志位为1时,显示设置温度,不然显示当前温度。
如以下图示。
图按键扫描处置流程图
第四章电路仿真
通过仿真软件验证该原理图的可行性。
采纳protues软件对电路仿真,能够取得预期成效。
因protues软件中没有STC89C52故用AT89C52代替。
仿真图如图示。
图电路仿真图
右图为温度传感器的仿真成效图,此图验证了传感器的温度与数码管显示的数字一致。
当按下SET键一次时,进入温度报警上线调剂,现在显示软件设置的温度报警上线,按ADD或DEC别离对报警温度进行加一或减一。
当再次按下SET
键时,进入温度报警下线调剂,现在显示软件设置的温度报警下线,按ADD或DEC别离对报警温度进行加一或减一。
当第三次按下SET键时,退出温度报警线设置。
显示当前温度。
验证了电路图正确性后,下面就进入PCB的绘制了
第五章电路板制作进程
随着运算机技术的进展,电路设计中的很多工作都能够交由运算机来完成。
Protel99SE系统是一套成立在PC环境下的EDA电路集成设计系统,由于其高度的集成性与扩展性,专门快就成为PC平台上最流行的电子设计自动化软件。
在完本钱课程设计进程中,充分运用了Protel99SE的电路及PCB设计功能加速了设计进程,下面将就电路板的制作进程做详细论述。
Protel进行电路设计有两个步骤如以下图所示:
图PROTEL设计步骤
原理图编辑
原理图的设计是整个电路设计的基础,它决定了后面工作的进展。
原理图的设计进程能够按以下图所示的设计流程进行。
图设计流程图
(1)图纸设置是绘制电路图的第一步,必需依如实际电路的大小来选择合
的图纸设置图纸的大小包括设置图纸尺寸、网络和光标的设置等等。
(2)加载元器件库,在Protel99SE中,原理图中的元器件符号均寄存在不同的原理图元件库中,在绘制电路原理图之前,必需将所需的原理图元件库装入原理图编辑器。
(3)放置元器件,即将所需的元件符号从元件库中调入原理图中。
(4)调整元器件布局,将各个元件用具有电气性能的导线连接起来并进一步伐整元器件的位置、元器件标注的位置及连线等。
(5)最后打印存盘。
PCB制作
在绘制好原理图的情形下要想取得一块电路板还需要绘制一张PCB版图,PCB做的好坏将直接阻碍电路板的美观和性能,因此要尽可能把PCB做的合理。
咱们能够按以下流程来完成PCB的绘制。
开始计划电路板设置参数装入元件网表及封装
保留及打印手动调整布线元件布局
终止
图PCB设计流程图
整个进程中元器件的布局是关键,布局直接阻碍到最后做板的元件格局,因此在整个进程中要不断的调整直至最终合理。
图是本课程设计的最终PCB印刷电路,USB母座放在边上便于插拔电源线。
。
图电路PCB图
第六章电路调试进程
电路板的设计在通过了原理图的引用分析,元件的选取和电路原理的仿真验证后,通过PROTEL99即能够制作成对应的原理图,然后完成PCB的版图设计,最后便制作成完整的电路板。
电路板的制作完成只是占课题的一小部份,接下来将进入比较棘手也是较为需要耐心和细心的电路调试环节。
说实在的,关于电路调试实在有点怕,上一次课设调板的阴影还没散去呢。
调试,要的确实是耐性,毅力外加细心。
看似十全十美的电路板,检查了以后却是漏洞百出,断线的,虚焊的。
只是这些都不是大问题,有了多次电路设计体会后这些故障专门快就解决了。
接下来最棘手的应该是软件编程了。
编程向来都是我的软肋,只是还好,在广大网友的支持下,最后仍是弄定了。
总结与体会
本次课程设计即将进入尾声,回忆这两周来的电子设计制作经历,我感触甚是深刻。
通过本次课程设计,使我对电子设计及制作产生了较为浓厚的爱好,这不仅增强了自己对理论知识的明白得和巩固,还能提高自己的动手能力,能够说收成颇丰。
固然更重要的是,激起了我学好单片机的斗志。
本次课程设计要紧分为四部份:
设计、仿真、制作及调试。
这四个步骤在整个课程设计进程中起着重要的作用。
本次课程设计的任务是:
依照教师给出的设计题目的要求选择适合的电路,确信元件参数,对原理图进行电路仿真,制作PCB图等。
在整个设计制作进程顶用到了两个软件,PROTUES仿真软件和Protel99SE做板软件。
能够说,在此之前自己不曾利用过protues软件。
而且Protel99SE用起来也是相当的陌生,毕竟已隔快要半年多没用此软件做板了。
本次课设让我学到了如何去运用protues软件对电路进行仿真,仿真出来的成效与理论上的成效和与实物做出来的成效有何不同或相似。
而在利用Protel99SE软件设计时,我也有了很多的学习应用心得。
第一,在制作原理图的时候必然要超级细心,一个小错误都可能阻碍往后的制板工作。
第二,在做PCB时,本人不提倡应用自动布线工具。
尽管手动布线很烦人,但这能够提高你的动手能力,同时也能够提升你的耐力。
总之,在学习和运用设计电路软件时碰到了很多问题,在向教师和同窗请教后取得了解决,也在那个进程中学到了很多解决问题的方式。
做板可是说是在考验一个人的耐力和动手能力。
电路设计完以后确实是开始真正的做板了。
做板大致来讲有六个步骤:
买元件———>
印铜——>
侵蚀——>
打孔——>
安装元器件——>
焊接。
买元件时要注意元件的管脚要与封装一致,比如电位器有很多种,在选择时要注意管脚与自己铜板铜孔对应。
印铜时要注意熨斗的温度,温度不够时印铜很容易失败。
而侵蚀进程中侵蚀药品的量和水的温度则直接阻碍到侵蚀时刻的长短,这就要自己合理把握了。
打孔时最好利用口径略微大一点的针头,在打芯片的孔时要注意将孔打在一条直线上,以避免在插芯片时有困难。
在安装元器件时必然要做到对号入座,且有些器件要注意正负极,如假设不然电路不通是小事,元件爆炸就危险了。
焊接时必然要做到细心+耐心,不要急于求成。
固然关于一个初学者而言,刚开始焊出来的板子确实谈不上美观,只是当熟练以后,焊出美观的板来就不成什么问题了。
最能表现一个人的耐心程度,也最能学到东西的时期仍是在调试进程。
在整个进程中既要求熟练把握设计的原理,知道运用所学电学的大体理论,还要求善于查错,改错。
若是在调试进程中无法达到预期结果,就要从整个设计制作进程中
认真分析,细心查找错误,一步一步认真排查。
在找到错误以后,切不可马上舍弃这块板子从头做,若是不懂如何做,能够请教在这方面能力较强的同窗,尽可能做到以较少的改动来更正错误。
如此能够节约时刻和做板的本钱。
当调板不成功,尤其是花了好久时刻都未能成功的时候,大多数人都会显得相当急燥,而我确实是其中一个。
后来我去请教同窗和教师,在他们的开导和讲解之下,我静下心来从头开始分析,当检查到电路板时才发觉,原先有一根铜线与周边所附的铜被一点点没侵蚀掉的铜点连在了一路,尽管这只是一小点的铜点,却能造成了比较大的错误,致使有整个电路处于短路状态。
幸亏没把主控芯片给烧咯。
在修改以后,终于,一直期盼显现的结果出来了。
本次课程设计的可能题目是教师给出,固然咱们也能够自由选择。
我在学校图书馆和网上查阅了相关资料之后,确信了一个与目前我所学的知识比较接近且相对而言比较熟悉的题目。
能够说从确信题目,寻觅原理图,制作sch、pcb,到焊接调试,每一个步骤都付出了尽力,倾注了我两周的心血,也从中积存了宝贵的体会,最后终于大略上完成了设计任务。
从整体上看,这次电路设计制作仍是比较成功的,板子的调试结果与仿真得出的成效图仍是比较接近的。
拿着自己调试好的板子,内心总有些许的“成绩感”,这也只有真正是自己动过手的人材能体会到其中的喜悦。
本次课程设计给我的第一大感觉确实是:
要成功,就要有付出。
从这一次制作进程的心得体会当中,我意识到在以后的设计中我还需要做到再细心、再耐心、再专心。
回忆从制作开始到终止,没有哪一步不是注入了自己的心血,心情就兴奋不已,这次课程设计必将让自己的理论水平和实践能力上升到一个新的台阶,同时也让自己熟悉到实践的重要性。
谢辞
本设计在选题及研究进程中取得熊杰教师的悉心指导,多次询问设计进程,并为我指点迷津。
也感激学校及信息与通信学院的教师们为我提供了良好的研究和实践条件,谨向列位教师们表示真挚的敬意和谢忱。
在本学期的课程设计中,我能够顺利的完成设计,也离不同窗的热心帮忙和支持。
在此,我要向他们表示最衷心的感激,同时也要感激信息与通信学院科协的所有朋友带给我的帮忙。
没有他们在身旁的指点我也不可能完成课设任务。
愿把我这份成功的喜悦和欢乐都送给那些关切和支持过我,在最困难时候给予我帮忙的同窗和教师。
在此衷心祝愿他们一生如意
参考资料
[1]阎石.数字电子技术基础.高等教育出版社,2006
[2]王卫东.模拟电子电路基础[M].西安:
西安·
电子科技大学出版社,2003
[3]曹丙霞,赵艳华.PROTEL99SE原理图与PCB设计.电子工业出版社,2007
[4]李群芳,张士军,黄建.单片机微型运算机与接口技术.电子工业出版社,2020
[5]赵世强.电子电路EDA技术[M].西安:
西安电子科技大学出版社,2000
[6]郭天祥.新概念51单片机C语言教程.电子工业出版社,2020
附目录
程序源代码
#include"
"
//_nop_();
延时函数用
#definedmP0//段码输出口
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P2^7;
//温度输入口
sbitw0=P2^0;
//数码管4
sbitw1=P2^1;
//数码管3
sbitw2=P2^2;
//数码管2
sbitw3=P2^3;
//数码管1
sbitbeep=P1^7;
//蜂鸣器和指示灯
sbitset=P2^6;
//温度设置切换键
sbitadd=P2^4;
//温度加
sbitdec=P2^5;
//温度减
inttemp1=0;
//显示当前温度和设置温度的标志位为0时显示当前温度
uinth;
uinttemp;
ucharr;
ucharhigh=35,low=20;
ucharsign;
ucharq=0;
uchartt=0;
ucharscale;
//**************温度小数部份用查表法***********//
ucharcode
ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
//小数断码表
ucharcodetable_dm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
//共阴LED段码表"
0"
"
1"
2"
3"
4"
5"
6"
7"
8"
9"
不亮"
-"
uchartable_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
//个位带小数点的断码表
uchardatatemp_data[2]={0x00,0x00};
//读出温度暂放
uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};
//显示单元数据,共4个数据和一个运算暂用
/*****************11us延时函数*************************/
voiddelay(uintt)
{
for(;
t>
0;
t--);
}
voidscan()
intj;
for(j=0;
j<
4;
j++)
switch(j)
case0:
dm=table_dm[display[0]];
w0=0;
delay(50);
w0=1;
//xiaoshu
case1:
dm=table_dm1[display[1]];
w1=0;
w1=1;
//gewei
case2:
dm=table_dm[display[2]];
w2=0;
w2=1;
//shiwei
case3:
dm=table_dm[display[3]];
w3=0;
w3=1;
//baiwei
//else{dm=table_dm[b3];
//***************DS18B20复位函数************************/
ow_reset(void)
charpresence=1;
while(presence)
DQ=1;
_nop_();
//从高拉倒低
DQ=0;
//550us
delay(6);
//66us
presence=DQ;
//presence=0复位成功,继续下一步
delay(45);
//延时500us
presence=~DQ;
//拉高电平
/****************DS18B20写命令函数************************/
//向1-WIRE总线上写1个字节
voidwrite_byte(ucharval)
uchari;
for(i=8;
i>
i--)
//从高拉倒低
//5us
DQ=val&
0x01;
//最低位移出
val=val/2;
//右移1位
delay
(1);
/****************DS18B20读1字节函数************************/
//从总线上取1个字节
ucharread_byte(void)
ucharvalue=0;
value>
>
=1;
//4us
if(DQ)value|=0x80;
return(value);
/*****************读出温度函数************************/
read_temp()
ow_reset();
//总线复位
delay(200);
write_byte(0xcc);
//发命令
write_byte(0x44);
//发转换命令
write_byte(0xbe);
temp_data[0]=read_byte();
//读温度值的第字节
temp_data[1]=read_byte();
//读温度值的高字节
temp=temp_data[1];
temp<
<
=8;
temp=temp|temp_data[0];
//两字节合成一个整型变量。
returntemp;
//返回温度值
/****************温度数据处置函数************************/
//二进制高字节的低半字节和低字节的高半字节组成一字节,那个
//字节的二进制转换为十进制后,确实是温度值的百、十、个位值,而剩
//下的低字节的低半字节转化成十进制后,确实是温度值的小数部份
/********************************************************/
work_temp(uinttem)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 设计 毕业论文