湖北文理学院理工学院 参考文献
参考文献
[1]胡乾斌,李光斌,李玲,喻红.单片微型计算机原理与应用.华中科技大学出版社,1996.
[2]刘勇.数字电路.电子工业出版社,2004.
[3]陈正振.电子电路设计与制作.广西交通职业技术学院信息工程系,2007. [4]杨子文.单片机原理及应用.西安电子科技大学出版社,2006. [5]王萍.电子技术实验教程.机械工业出版社,2009.
[6]沈红卫.单片机应用系统设计实例与分析,北京:北京航空航天大学出版社.2003
[7]李光飞.单片机课程设计实例指导,北京:北京航空航天大学出版社. 2004 [8]王法能.单片机原理及应用,科学出版社. 2004
[9]楼然苗,李光飞.51系列单片机设计实例[M].北京航空航天大学出版社,2003.
[10]朱定华,戴汝平.单片微机原理与应用[M].清华大学出版社,2003. [11]胡汉才.单片机原理与接口技术[M].清华大学出版社,2004.
[12]余家春.Protel 99 SE电路设计实用教程[M].中国铁道出版社,2004. [13]张培仁.基于汇编语言编程MCS-51单片机原理与应用.北京:清华大学出版社,2003.
[14]T.Someya,J.Small,P.Kim,C.Nuckolls,J.T.Yardley.Alcohol vapor sensors based on single-walled carbon nanotube field effect transistors[M].Nano Letters,2003.
[15]M.Penza et al.Alcohol detection using carbon nanotubes acoustic and optical sensors[M].Applied Physics Letters,2004.
[16]F.Rettig,R.Moos.Direct thermoelectric gas sensors Design aspects and first gas sensors[M].Sens Actuators B,2007.
24
湖北文理学院理工学院 附录1:程序
附录1:程序
#include
#define uchar unsigned char #define uint unsigned int sbit lcden=P2^4;//1602管脚定义 sbit lcdrs=P2^6; sbit lcdws=P2^5;
sbit ds=P3^5;//ds18b20信号线 sbit beep=P2^3; //蜂鸣器管脚定义 sbit ACC_7 = ACC^7; //位寻址寄存器定义
sbit SCLK = P3^2; // DS1302时钟信号 sbit DIO= P3^3; // DS1302数据信号 sbit CE = P3^4; // DS1302片选 sbit key3=P1^0;//功能键定义 sbit key4=P1^1;//增大键定义 sbit key5=P1^2;//减小键定义
uchar shi,fen,miao,year,month,day,week; uchar flag,s1num; uint temp;
float f_temp; uint i; uint d;
uchar code table2[]={0x20,0x20,0x2e,0x20,0xdf,0x43}; uchar code table[]=%uchar code table1[]=\void delay(uint z)//延时1ms {
uint x,y; for(x=z;x>0;x--)
25
湖北文理学院理工学院 附录1:程序
}
for(y=110;y>0;y--);
void write_com(uchar com)//1602写命令 {
lcdrs=0; lcden=0;
P0=com; delay(5); lcden=1; delay(5); lcden=0; }
void write_data(uchar date)//1602写数据 {
lcdrs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; }
void dsreset(void) //DS18B20,初始化函数 {
uint i; ds=0; i=103;
while(i>0)i--; ds=1;
湖北文理学院理工学院 附录1:程序
i=4;
while(i>0)i--; }
bit tempreadbit(void)//读1位数据函数 {
uint i; bit dat; ds=0;i++;
ds=1;i++;i++;//i++起到延时作用 dat=ds;
i=8;while(i>0)i--; return(dat); }
uchar tempread(void) //读一个字节数据函数 {
uchar i,j,dat; dat=0;
for(i=1;i<=8;i++) { }
return(dat); }
void tempwritebyte(uchar dat) //向DS18B20写一个字节数据函数 {
uint i; uchar j; bit testb; for(j=1;j<=8;j++)
j=tempreadbit(); dat=(j<<7)|(dat>>1);