单片机设计报告温度传感器Word下载.docx
《单片机设计报告温度传感器Word下载.docx》由会员分享,可在线阅读,更多相关《单片机设计报告温度传感器Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
2.画出电路原理图,并对元件进行正确的封装、合理布局、布线,完成PCB图。
3.小组成员掌握相关操作,完成各自的演示实验;
4.进行单片机仿真实验,按照设计任务书的要求对基础实验进行创新,达到预期目的。
六、主要过程
1.由老师布置设计任务,并对相关知识进行了讲述,并领取工具;
2.在老师的指导下,安装相关软件,对软件的常用操作进行学习;
3小组成员按照分配的任务展开工作。
主要是:
搜集相关资料,绘制SCH和PCB图,对程序进行修改完成相关创新;
4.进行仿真实验,对问题进行反馈,小组成员内展开讨论;
5.递交设计结果及设计报告。
7、相关结果
1、设计原理图
2、由protel绘制的SCH图
3、由protel绘制的PCB图
4、基础设计仿真结果图
5、创新之后的仿真结果
(1)、程序
见附录1
(2)、结果
8、设计总结
这次课程设计的完成真的挺不容易的。
有的知识不太清楚,网上找的不符合课程设计要求,我们几个又跑到图书馆去找相关书籍,结果还是不太满意,最后还是求教于老师,还好老师有足够的耐心帮助我们完成课题设计。
虽然这次课程设计的完成有点吃力,但我还是挺珍惜课程设计的机会,因为它可以暴漏我自身的问题,让我更清楚的认识自己,同时,与组员之间讨论的时间多了,与老师接触的机会多了,锻炼了自己各个方面的能力。
而且,它是我们在校期间难得的实践机会。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上,不断收获喜悦,得到社会及他人对你的认可!
九、参考文献
电子CAD(Protel)教程中南大学出版社
10、附录
附录1C++算法仿真程序(main.c)
/*******************************************************************************
*
普中科技
实
验
名
:
18B20温度显示试验
实验说明
LCD1602显示温度值。
连接方式
见连接图
注
意
******************************************************************************/
#include<
reg51.h>
#include"
lcd.h"
temp.h"
void
LcdDisplay(int);
delay(unsigned
int
i)
;
//延迟
sbit
Beep
=
P1^5
//定义全局变量
unsigned
char
datas[]
{0,
0,
0};
//定义数组
函数名
main
函数功能
主函数
输入
无
输出
main()
{
LcdInit();
//初始化LCD1602
LcdWriteCom(0x88);
//写地址
80表示初始地址
LcdWriteData('
C'
);
while
(1)
LcdDisplay(Ds18b20ReadTemp());
//Delay1ms(1000);
//1s钟刷一次
if(datas[1]==2&
&
datas[2]>
=5||datas[1]>
2)
Beep=
1;
delay(5);
0;
}
delay()
延迟程序
i
*******************************************************************************/
i)
j;
for(i;
i
>
i--)
for(j
200;
j
j--);
LcdDisplay()
LCD显示读取到的温度
v
LcdDisplay(int
temp)
//lcd显示
float
tp;
if(temp<
0)//当温度值为负数
{
LcdWriteCom(0x80);
-'
//显示负
//因为读取的温度是实际温度的补码,所以减1,再取反求出原码
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算由?
.5,还是在小数点后面。
}
else
{
+'
//显示正
//因为数据处理有小数点所以将温度赋给一个浮点型变量
//如果温度是正的那么,那么正数的原码就是补码它本身
//算加上0.5,还是在小数点后面。
datas[0]
temp
/
10000;
datas[1]
%
10000
1000;
datas[2]
1000
100;
datas[3]
100
10;
datas[4]
LcdWriteCom(0x82);
//写地址
0'
+datas[0]);
//百位
LcdWriteCom(0x83);
+datas[1]);
//十位
LcdWriteCom(0x84);
+datas[2]);
//个位
LcdWriteCom(0x85);
.'
//显示
‘.’
LcdWriteCom(0x86);
+datas[3]);
//显示小数点
LcdWriteCom(0x87);
+datas[4]);
附录2C++算法仿真程序(lcd.c)
-------------------------------------------------------------------------------
:
: