城南学院 室内煤气和天然气泄漏报警器的设计
参考文献
[1] 尹勇,王洪成.单片机接口技术与应用[M].北京:北京航天航空大学出版社,2004.
[2] 陈岭丽,冯志华.检测技术和系统[M].北京:清华大学出版社,2005. [3] 李华.MCS-51系列单片机原理及应用[M].北京:北京航天航空大学出版社,1995.
[4] 周慈航.单片机应用程序设计技术[M].北京:北京航天航空大学出版社,1991. [5] 赵宝军,吴冬艳.一氧化碳报警器的研究[J].中华临床与卫生,2004:122-122 [6] 何希才,薛永毅.传感器及其应用实例[M].北京:机械工业出版社,2004. [7] 夏继强.单片机实验与实践教程北京[M]:北京航天航空大学出版社,2001. [8] 陈正义.单片机控制实习[M].北京:人民邮电出版社,2006.
[9] 陈小忠,黄宁,赵小侠.单片机接口技术实用子程序北京:人民邮电出版社,2005.
[10] 沙占友.集成化智能传感器原理及应用[M].北京:电子工业出版社,2004.1:
198-222.
[11] 李鸿.单片机原理及应用[M].湖南:湖南大学出版社,2004.
[12] R.Akaya,A.A.Kulaksiz.A microcontroller-based stand-alone photovoltaic power
system for residential appliances[J]. Applied Energy 2004,(78):419-431. [13] Bang-Chao Yang. Duan Jianhua. Monoxide sensor applications and progress [J].
Sensor technology, 2001,(12).
[14] Wu-WeiHua,He-ZiLi.The application of new carbon monoxide sensor research
[J]. Mining Express. 2001,(7).
第 27 页 共 34 页
城南学院 室内煤气和天然气泄漏报警器的设计
致谢
经过大半个学期以来,毕业设计在吴一帆老师的细心指导下终于成功完成了!在此,对吴老师表示衷心的感谢,在设计过程中,吴老师经常督促我认真完成各项任务,并经常指导我攻克各处难题。吴老师不仅工作认真负责,以及对学生的严格要求,也让我受益匪浅。
在设计过程中,也和同学讨论了不少,很多地方都有同学给的建议在,在此也谢谢我身边的同学!
再次感谢吴老师,在您的指导下,我得以顺利地完成毕业设计,给自己大学生涯画上了一个完满的句号。
第 28 页 共 34 页
城南学院 室内煤气和天然气泄漏报警器的设计
附录A 主程序C语言源代码
#include
#define uchar unsigned char #define uint unsigned int
sbit DQ = P1^0; //DS18B20 数据线引脚 sbit LED = P1^3; Sbit input = P1^1;
Unsigned char flag; //负数标志 Uchar code scan[4]={0xef,0xf7,0xfb,0xfd}; //行扫描数组 Uchar code table[13]{0x3F,0x06,0x5B,
0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x39,0x00}; Uchar code
ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
Uchar dispbuf[8]; //显示缓存区 Uchar temper[2]; //存放温度的数组 Uchar TCNT;
Void delay (usigned int us) {
While(us- -); }
//DS18B20复位函数//
Viod reset(void) {
Uchar x = 0; DQ = 1;
第 29 页 共 34 页
城南学院 室内煤气和天然气泄漏报警器的设计
Delay(8); DQ = 0; Delay(80); DQ = 1; Delay(14); X = DQ; Delay(20); }
//从DS18B20读一个字节//
uchar readbyte(void) {
Uchar i = 0; Uchar dat = 0; For (i = 8;i > 0;i--) { DQ = 0; Dat > > = 1; DQ = 1; If (DQ) Dat丨 = 0x80; Delay(4); }
Retrun(dat); }
//从DS18B20写一个字节//
Void writebyte(unsigned char dat) {
Uchar i = 0; For (i = 8; i > 0;i--)
第 30 页 共 34 页
{ DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; Dat > > = 1; } Delay(4); }
Void readtemp(void) {
Uchar a = 0,b = 0; Reset( );
Writebyte(0xCC); Writebyte(0x44); Reset( ); Writebyte(0xCC);
Writebyte(0xBE); A = readbyte( ); B = readbyte( ); If (b > 0x0f) {
A = ~a + 1; If(a = = 0) B = ~b + 1; Else b = ~b; Flag = 10; }
城南学院 室内煤气和天然气泄漏报警器的设计
//从DS18B20中读取实时温度值//
//跳过序列号 //启动温度转换 //读9个寄存器,前2个为温度 //低位 //高位
//判断是否为负值 第 31 页 共 34 页