致谢 致谢
通过这一阶段的努力,我的毕业论文《基于单片机的火灾报警系统设计》在老师精心指导和关怀下完成了。这期间不论是选题还是专业知识,任守华老师都帮助了我好多,没有他授予的知识,我是不可能完成这次设计的,感谢老师您的辛勤付出。在此我要特别感谢我的毕业设计指导老师XXX老师,从论文的修改到最后的定稿,都凝注了指导老师的心血。导师严谨求实和一丝不苟的学风、扎实勤勉和孜孜不倦的工作态度时刻激励着我努力学习,并将鞭策我在未来的工作中锐意进取、奋发努力。导师的指导将使我终生受益。还要对所有授课老师表示深深的谢意!正是他们的教导,才能使我的知识得以丰富,使我的视野得以拓宽,使我的自身修养得以提高!感谢各位到场老师,是你们在百忙之中抽出时间来对我的论文进行指导,你们的意见和建议将是我一生的财富!感谢所有帮助过我的人们!
回想大学四年的时光,仿佛尽在昨天。最后,我还要感谢在我大学四年的学习期间给我极大关心和支持的家人、各位老师以及我的同学和朋友。是你们在生活和学习上不断给与我支持、帮助和无微不至的关怀,是你们不断地给与了我信心,让我在人生中一次次坚强地走下去。
—22—
附录 附录一 总电路图
—23—
附录 附录二 实物图
—24—
附录 附录三 软件程序
#include
变量范围0~255 变量范围0~65535
#include
//数码管段选定义 0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码 //数码管位选定义
uchar code smg_we[]={0x7f,0xbf,0xdf,0xef};
uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
sbit CS=P3^2; //CS定义为P3口的第2位脚,连接ADC0832CS脚 sbit CLK=P3^3; //CLK定义为P3口的第3位脚,连接ADC0832CLK脚 sbit DO=P3^4; //DO定义为P3口的第4位脚,连接ADC0832DO脚 sbit dq = P3^5; //18b20 IO口的定义 sbit beep = P3^6; //蜂鸣器IO口定义 uint temperature,s_temp ; //温度的变量 uchar dengji,s_dengji; //烟物等级
uchar shoudong; //手动报警键 bit flag_300ms = 1; uchar key_can; //按键值的变量 uchar menu_1; //菜单设计的变量
/**************************1ms延时函数*****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i /******************************延时函数*****************************/ void delay_uint(uint q) { while(q--); } —25— 附录 /******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, s_temp); byte_write(0x2001, s_dengji); byte_write(0x2060, a_a); } /****************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { s_temp = byte_read(0x2000); s_dengji = byte_read(0x2001); a_a = byte_read(0x2060); } /*********************开机自检eeprom初始化************************/ void init_eeprom() { read_eeprom(); //先读 if(a_a != 1) //新的单片机初始单片机内问eeprom { s_temp = 50; s_dengji = 5; a_a = 1; write_eeprom(); //保存数据 } } /***********************18b20初始化函数*****************************/ void init_18b20() { bit q; dq = 1; delay_uint(1); //15us dq = 0; delay_uint(80); dq = 1; //把总线拿高 //给复位脉冲 //750us //把总线拿高 等待 —26—