风扇调速

 

#include<reg52.h>

code unsigned char seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,

0x82,0xf8,0x80,0x90,0x40}; //显示段码

 

sbit TMDAT =P3^1; //DS18B20 的数据输入/输出脚DQ,根据情况设定

 

sbit P2_7=P2^7;

sbit P2_6=P2^6;

sbit P2_5=P2^5;

 

sbit jia=P2^4;

sbit jian=P2^3;

sbit di=P2^2;

sbit zh=P2^1;

sbit ga=P2^0;

      

j=0;

 

unsigned int sdata;//测量到的温度的整数部分

//unsigned char xiaoshu1;//小数第一位

//unsigned char xiaoshu2;//小数第二位

//unsigned char xiaoshu;//两位小数

 

bit fg=1; //温度正负标志

 

//*显示延时程序*///

 

void Delay(unsigned int tc)

{while( tc != 0 )

{unsigned int i;

for(i=0; i<80; i++);

tc--;}

}

 

延时部分///

 

void yanshi (unsigned int count)

{

unsigned char i;

while(count--)

{for(i=0;i<115;i++);}

}

 

void del()  /*延时1*/

{

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=100;j>0;j--)

for(k=248;k>0;k--);

}

 

 

/发送复位///

 

void fashong (void)

{

unsigned char i;

TMDAT = 0; for(i=0;i<103;i++);

TMDAT = 1; for(i=0;i<4;i++);

}

 

 

bit tmrbit (void) //读一位//

{                      

unsigned int i;

bit dat;

TMDAT = 0;

i++;

TMDAT = 1;

i++; i++; //微量延时 //

dat = TMDAT;

for(i=0;i<8;i++);

return (dat);

}

 

unsigned char tmrbyte (void) //读一个字节

{

unsigned char i,j,dat;

dat = 0;

for (i=1;i<=8;i++)

{ j = tmrbit(); dat = (j << 7) | (dat >> 1); }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include //#include #include"18b20.h" #include"12864.h" #include"ds1302.h" #include"风型.h" //#include"测速.h" #define uchar unsigned char #define uint unsigned int void Temperature(); void disp(uchar i,uchar j,uchar k,uchar x,uchar y,uchar z,uchar aa); void LcmClearBMP(); void LcmInit(); void zscl(uchar zsdata); void pwmmain(); void pwmkey(); void get_time(); void ds1302_init(); void set_time(); void set_ytime(); void d1(); void TEM(); void main() { uchar z,secs,secg,mins,ming,hours,hourg; TMOD=0x15; EA=1; ET1=1; EX1=1; IT1=0; TR0=1; TR1=1; pwmmain(); LcmClearBMP(); LcmInit(); ds1302_init(); set_time(); set_ytime(); PutStr(0,0,str2); FINT0=0; while(1) {while(!(FINT0)) { for(z=0;z<10;z++) { get_time(); secs=secsw(); secg=secgw(); mins=minsw(); ming=mingw(); hours=hoursw(); hourg=hourgw(); disp(hours,hourg,mins,ming,secs,secg,1); } TEM(); } while(FINT0) { if(jianzhi[0]==1) {if(jianzhi[1]==0) {TR0=0; TR1=0; LcmInit(); PutStr(0,0,str2); switch(jianzhi[3]) { case 0:{ WriteCommand(0x85); WriteData('0'); qq=zz=rr=1; } break; case 1:{ WriteCommand(0x85); WriteData('1'); rr=0; qq=zz=1; } break; case 2:{ WriteCommand(0x85); WriteData('2'); zz=0; qq=rr=1; } break; case 3:{ WriteCommand(0x85); WriteData('3'); qq=0; zz=rr=1; } break; } } else if(jianzhi[1]==1) { TR0=1; TR1=1; LcmInit(); PutStr(0,0,str4); //自然风 } else if(jianzhi[1]==2) { TR0=1; TR1=1; LcmInit(); PutStr(0,0,str5); //睡眠风 } } TEM(); if(P3_3)FINT0=0; } } } void TEM() {uchar Tsw,Tgw,Txs; Temperature(); pwmkey(); Tsw=isean(); Tgw=jsean(); Txs=ksean(); disp(Tsw,Tgw,Txs,0,1,2,0); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值