电子万年历的设计毕业论文 下载本文

湖北文理学院理工学院 参考文献

参考文献

[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);