本科毕业论文-基于单片机STC89C52控制的数字温度计设计(7)

2019-05-17 16:52

附录I 元器件清单

1、 STC89C52单片机 2、 1602液晶显示屏 3、 万能红外接收头 4、 18B20温度传感器 5、 12M晶振一个 6、 10uF电解电容一个 7、 22pF电容2个 8、 10K电阻若干 9、

10K排阻一个

10、 开关一个 11、 蜂鸣器一个 12、 下载串口一个 13、 外接电源插孔一个

27

附录II 程序

/***************************************************************************

该电子钟具有遥控控制1602时间显示和修改作用;还具有检测温度随时变化的能力

**************************************************************************/

#include #include #define uchar unsigned char #define uint unsigned int sbit ACC0=ACC^0; sbit ACC7=ACC^7;

sbit clk=P0^7;//DS1302的接口 sbit IO=P0^1; sbit rst=P0^0; sbit key1=P3^7;//定时 sbit key2=P3^6;//加 sbit key3=P1^5;//减 /***/

sbit FM=P3^5;//蜂鸣器的接口 sbit DQ=P1^1;//18B20的接口 sbit lcdrs=P0^3;//1602的接口 sbit lcde=P0^2; uchar data disdata[5]; uint wendu;//温度值 uchar tflag;//温度正负标志 /******/ sbit we=P2^7; /*****/

#define Imax 14000 //此处为晶振为11.0592时的取值,

28

#define Imin 8000 //如用其它频率的晶振时, #define Inum1 1450 //要改变相应的取值。 #define Inum2 700 #define Inum3 3000 unsigned long m,Tc;

uchar Im[4]={0x00,0x00,0x00,0x00};

uchar f,IrOK,kkgbz,jdqbz,hpbz,pingbz,clkbz=0,dengbz=0,k11A,k11,k1; uchar key1A,key2A,key3A,key4A,key5A,key6A,key7A,key8A,key9A; uchar nian=12,yue=05,ri=01,xq=2,shi=20,fen=00,miao=00; uchar nian1,yue1,ri1,xq1,shi1,fen1,miao1; uchar shi2=12,shi3=13,fen2=12,fen3=13; uchar shi2A=14,shi3A=15,fen2A=14,fen3A=15; void keyscan3ABC(); void delay(uint z)//延时程序 { }

void fm()//蜂鸣器响的程序 { }

void intersvr1() interrupt 2 using 1//外部中断解码程序 {

Tc=TH0*256+TL0; //提取中断时间间隔时长 TH0=0; FM=0; delay(200); FM=1; uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

29

}

TL0=0; //定时中断重新置零 if((Tc>Imin)&&(Tc

{

m=0; f=1; return;

} //找到启始码

if(f==1)

{

if(Tc>Inum1&&Tc

{

Im[m/8]=Im[m/8]>>1|0x80; m++; }

if(Tc>Inum2&&Tc

{

Im[m/8]=Im[m/8]>>1; m++; //取码

}

if(m==32)

{

m=0; f=0;

if(Im[2]==~Im[3])

{

IrOK=1; fm();

}

}

else IrOK=0; //取码完成后判断读码是否正确

}//准备读下一码

30

/**********1602的程序**********/ void writecom(uchar com)//1602的写指令 { }

void writedate(uchar date)//1602的写数据 { }

/**********DS1302的程序**********/ void InputByte(uchar byte1)//1302-写单字节 {

uchar i; ACC=byte1; for(i=8;i>0;i--) { }

31

lcdrs=0; lcde=1; P2=com; delay(5); lcde=0; delay(5);

lcdrs=1; lcde=1; P2=date; delay(5); lcde=0; delay(5);

IO=ACC0; clk=1; clk=0;

ACC=ACC>>1;


本科毕业论文-基于单片机STC89C52控制的数字温度计设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年纤维素人造纤维现状研究及发展前景趋势(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: