基于单片机的温度测量系统
8 致谢
在设计过程中,遇到许多自己不能解决的问题,是马老师在百忙之中帮助自己解决难题,同时也借此机会感谢老师在学习期间对自己的培养。
转眼间,我在上海电力学院度过了宝贵的四年时光,这四年的学习生活经历将是我一生的财富。
在本论文即将完成之际,我要衷心的感谢我的毕业设计指导老师马进明老师。马老师以其严谨的作风、负责的态度,在毕业设计的整个学习和研究中给予了我很大的支持与帮助,无论是在学习还是生活上都让我深受影响。在我理论刚入门阶段马老师给了我决定性和方向性的帮助,没有他的帮助,我将迷失在大量的参考文献中难以自拔。从论文的选题、撰写到各细微的部分马老师都倾注了心血,使我深深感受到马老师严谨治学的态度。尤其在论文写作中,我非常感谢马老师的严格要求和细心指点。马老师严谨的治学态度、敏锐的洞察力以及分析问题的独到见解对我今后的生活工作将起到莫大的促进和帮助。对此,我在这表示崇高的敬意和深深的谢意!
感谢所有教育过我的老师!你们传授给我的专业知识是我不断成长的源泉,也是完成本论文的基础。我还要向关心和支持我学习的朋友们表示真挚的谢意!感谢他们对我的关心、关注和支持!
感谢自动化034班全体同学对我的支持与帮助,感谢我的室友在大学四年中的的朝夕相伴,他们在生活和学习中给了我很大的关怀与帮助,使我渡过了一段难忘的快乐时光。
大学的生活让我有了坚强的性格,冷静的头脑和永远乐观的态度。最重要的是让我有了责任感,对自己、对家人和对社会。
我愿在未来的学习过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学和朋友。永远以一颗为人民服务的心来回报。
30
基于单片机的温度测量系统
参考文献
[1] 陈忠平主编《基于Proteus的51系列单片机》,电子工业出版社出版 [2] 陆彬主编《51系列单片机开发》,电子工业出版社出版
[3] 李朝青编著《单片机原理及接口技术》,北京航空航天大学出版社 [4] 杨志忠编著《数字电子技术》,高等教育出版社出版
[5] 赵亮、侯国锐:单片机C语言编程与实例,人民邮电出版社,2003 [6] 王松武,于鑫,武思军:电子创新设计与实践,北京:国防工业出版社,2005 [7] 刘笃仁编著《传感器原理及应用技术》,西安电子科技大学出版社出版 [8] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J]..
TQM Journal. 2008
[9] Yeager Brent.How to troubleshoot your electronic scale[J].. Powder and Bulk
Engineering. 1995
[10]冯建华,赵亮:单片机应用系统设计与产品开发[M] .北京:人民邮电出版社,
2004.
[11]阎石编著数字电子技术基础(第三版),北京:高等教育出版社,1989 [12]王幸之,钟爱琴,王雷:AT89系列单片机原理与接口技术[M].北京:北京航
空航天大学出版社, 2004.
31
基于单片机的温度测量系统
附 录
附录1:系统总图
附录2: 程序
#include
#define uchar unsigned char #define uint unsigned int sbit DATA = P1^1; //DS18B20接入口 uchar
0x79,0x71};//共阴极字型码 int temp; //温度值 int ss; int dd; int j;
32
code
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,
//中间的一个变量
基于单片机的温度测量系统
uchar data b;//定时器中断次数 uchar data buf[4];//字型显示中间变量 int alarmH=320; //默认报警值 int alarmL=100; //定义开关的接入口 sbit k1=P2^5;//+ sbit k2=P2^6;//- sbit k3=P2^7;//确认 sbit k4=P2^4; //切换 sbit bell=P1^0; //蜂鸣器 sbit HLight=P1^2; //正温指示灯 sbit LLight=P1^3; //负温度指示灯 sbit warn=P1^4; //报警指示灯 sbit Red=P1^6; //温度上限设置指示灯 sbit Green=P1^7; //温度下限设置指示灯 bit set=0; int n;
//函数的声明区 void key_to1(); void key_to2(); void delay(uint); void key(); void Show(); //函数的定义区 /*延时子函数*/ void delay(uint num) { }
//DS18b20温度传感器所需函数,分为初始化,读写字节,读取温度4个函数 Init_DS18B20(void) {
uchar x=0;
33
//初始化
bit Flag=0; //设置标志
while(num--) ;
//传感器初始化
基于单片机的温度测量系统
DATA = 1; //DQ复位 delay(10); //稍做延时
DATA = 0; //单片机将DQ拉低 delay(80); //精确延时 大于 480us //450 DATA = 1; //拉高总线 delay(20);
x=DATA; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(30); }
ReadOneChar(void) //读一个字节 {
uchar i=0; uchar dat = 0; for (i=8;i>0;i--)
DATA = 0; // 给脉冲信号 dat>>=1;
DATA = 1; // 给脉冲信号 if(DATA) dat|=0x80; delay(8);
{ }
return(dat); }
WriteOneChar(unsigned char dat) //写一个字节 {
uchar i=0; for (i=8; i>0; i--) {
DATA = 0; DATA = dat&0x01;
delay(10); DATA = 1; dat>>=1; }
34