亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 太陽能熱水器智能控制系統程序.c

?? 太陽能熱水器智能控制系統的程序g.rar
?? C
字號:


//太陽能熱水器智能控制系統程序:
//定義頭文件和各個輸入管腳以及變量聲明
#include <reg52.h>
#include <absacc.h>
#include <stdio.h>
#include <intrins.h>

#define uint unsigned int//定義變量類型名
#define uchar unsigned char

/*定義8255a字符型字位口*/
#define DIGPORT XBYTE[0x1FFF]//PA口地址,位選碼地址
#define WORDPORT XBYTE[0X3FFF]//PB口地址,斷選碼地址
#define CCOM XBYTE[0X7FFFF]//控制字寄存器地址
#define KPORT XBYTE[0X5FFF]//PC口,鍵盤掃描地址

//DS1302_RST=1//定義DS1302時鐘芯片引腳操作
#define Set_DS1302_RST DS1302_RST=1
//DS1302_RST=0
#define Clr_DS1302_RST DS1302_RST=0
//DS1302_SDA=1
#define Set_DS1302_SDA DS1302_SDA=1        
//DS1302_SDA=0
#define Clr_DS1302_SDA DS1302_SDA=0
//DS1302_SCLK=1
#define Set_DS1302_SCLK DS1302_SCLK=1
//DS1302_SCLK=0
#define Clr_DS1302_SCLK DS1302_SCLK=0
//定義讀時間控制字
#define DS1302_SEC_Reg 0x80
#define DS1302_MIN_Reg 0x82
#define DS1302_HR_Reg 0x84
#define DS1302_DATE_Reg 0x86
#define DS1302_MONTH_Reg 0x88
#define DS1302_DAY_Reg 0x8a
#define DS1302_YEAR_Reg 0x8c
#define DS1302_CONTROL_Reg 0x8e
#define DS1302_CHARGER_Reg 0x90
#define DS1302_CLKBURST_Reg 0xbe
            //全局變量
            //為了方便,我把個位和十位分開了
uchar year1=0x88;
uchar year0=0x88;
uchar month=0x88;
uchar date=0x88;
uchar day=0x88;
uchar hour=0x88;
uchar minute=0x88;
uchar second=0x88;

/*定義P1口各管腳*/
sbit L0=P2^0;
sbit L1=P2^1;
sbit L2=P2^2;
sbit L3=P2^3;
sbit K0=P2^4;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit Hig=P1^4;
sbit DS1302_SDA=P1^5;//定義DS1302時鐘引腳與單片機引腳的連接
sbit DS1302_SCLK=P1^6;
sbit DS1302_RST=P1^7;

/*聲明調用函數*/
void inital(void);
void timer1_svr(void);
void display(void);
void delay(uchar j);
void DS1302_Write(uchar reg,uchar dat);
uchar DS1302_Read(uchar reg);
void DS1302_Init(void);
void ReadTime(void);
void WtTmCr();
void LvRead();
void TmRead();
void key(void);
uchar kbscan(void);
void DS1302(void);
void int0_int(void);
void int1_int(void);

/*定義調用存儲單元*/
/*顯示緩沖區(依次為高位低位)*/

uchar BUFFER[3]={0,0,0};
uchar WTLV;//水位值
uchar TMP;//水溫值
uchar WTLVSET;//水位設定值
uchar TMPSET;//水溫設定值
uchar buf[4]={0,0,0,0};
/*數碼管顯示編碼"0"-"9","A","-"*/
uchar code TABLE[]={0x7B,0x30,0xEA,0xF8,0xB1,0xD9,0xDB,0x70,0xFB,0xF9,0xF3,0x80};

main()
{
      inital();//初始化中斷、定時器、I/O口
		kbscan();//鍵盤掃描
	   key();//鍵盤處理
		TmRead();//讀取溫度
		LvRead();//讀取水位
		DS1302();//讀取時間
	   display();//顯示

}

void inital()
{
P1_0= P1_1= P1_2=K0=0;//初始化外部驅動口
DS1302_Init();
       EA=1;//開外部中斷
	   IT0=1;//外部中斷下降沿觸發
       EX0=1;//允許外部中斷0
       Hig=1;P1.3輸出高電平
       TMOD=0x11;定時器工作于方式1
       TH1=0X8A;//定時器1賦初值
       TL1=0XD0;
	    ET1=1;定時器1開定時中斷
		 TR1=1;//開啟定時器1
	    CCOM=0X80;//初始化8255A,送控制字,工作方式0
     
}

uchar kbscan(void)
{
     uchar recode;
		  if((KPORT&0X0F)!=0X0F)                  //若有鍵按下
	  {
	       delay(2);                           //延時抖動
          
          if((KPORT&0X0F)!=0X0F)            
			 {
			        recode=KPORT;
					  return(recode);
			 }
		}
		else
		return(0);
}

void key(void)

{    
     uchar key;
    key=kbscan();
	 delay(2);
	 if(key==0x01) 
				{
				   
					P1_1=1;//上水
         		
				}
			if(key==0x02) //設置水位
				{
				   if(WTLVSET==4)
					WTLVSET=0;
					else 
					WTLVSET+=WTLVSET;
         		   BUFFER[0]=WTLVSET;//顯示設置水位
                   display();
				   
				}
		if(key==0x04)//電加熱
				        {
				          P1_0=1;
				        }  
		if(key==0x08)//設置溫度
				      {

				        if(TMPSET>=80)
					     TMPSET=30;
					    else 
					     TMPSET=TMPSET+10;//增加十度
         	        	BUFFER[0]=TMPSET; 顯示設置水溫
                        display();
				       }  
}

void timer1_svr() interrupt 1
{
   TH1=0X8A;//重新給定時器1賦值
   TL1=0XD0;
   Hig=!Hig;//充放電變換
	if(Hig)//充電開始時啟動定時器0
	{
	    TL0=TH0=0X00;//定時器0賦初值0
       TR0=1;//啟動定時器0
	 }
}

void int0_int(void) interrupt 0//外部中斷0,測水位
{
  EX0=0;
  EX1=1;
  TR0=0;
  buf[0]=TL0;
  buf[1]=TH0;
}

void int1_int(void) interrupt 2//外部中斷1,測水溫
{
   EX1=0;
   EX0=1;
   TR0=0;
	buf[2]=TL0;
	buf[3]=TH0;
}

void TmRead()//水溫值處理
{
  uint val;
  val=buf[3]*256+buf[2];
   if(val<7549)
     TMP=97-int(val*8/1000);
  else  
      if(val<20000)
           TMP=50-int(val/1000);
      else
           TMP=30-int(val*5/10000);
       
}

void LvRead()//水位值處理
{
     if(buf[1]>60)
         {
	      WTLV=1;//
			L3=0;L2=1;L1=1;L0=1;
			}
	  else if(buf[1]>45)
	      {
			WTLV=2;
         L3=1;L2=0;L1=1;L0=1;
			}
	  else if(buf[1]>36)
	      {
			WTLV=3;
         L3=1;L2=1;L1=0;L0=1;
			}
	  else 
	      {
			WTLV=4;
         L3=1;L2=1;L1=1;L0=0;
			}
}

void WtTmCr()//水位、水溫控制
{
      if(WTLV==4)
		P1_1=0;
		if(WTLV==1)
		P1_1=1;
		if(TMP>=TMPSET)
		P1_0=0;
		if(TMP<TMPSET&&hour==0x19)
		P1_0=1;

}

void  display(void)
{
      uchar i;           //顯示緩沖區首址
      uchar delay;       //顯示延時
      uchar disp;        //顯示內容
      uchar digit;       //定義數碼管顯示位
      digit=0x0200;
      for(i=2;i>=0;i--)
      {
          if(BUFFER[i]>100) disp=BUFFER[i]%10+10;//顯示高位
          else disp=BUFFER[i]%10;

          DIGPORT=digit;
          WORDPORT=TABLE[disp];
          for(delay=0;delay<=200;delay++);
          digit=digit>>1;//顯示低位
          disp=BUFFER[i]/10;

          DIGPORT=digit;
          WORDPORT=TABLE[disp];

          for(delay=0;delay<=200;delay++);
          digit=digit>>1;
       }
}
    
void delay(uchar j)//延時程序
{
    uchar a,b;
	 for(a=0;a<j;a++)
	    for(b=0;b<200;b++)
		         ;
}

void DS1302()//時間程序
{
      ReadTime();
      BUFFER[1]=second;
	  BUFFER[2]=hour;
}

void DS1302_Write(uchar reg,uchar dat)//寫入時間
       {
            uchar i;
            Clr_DS1302_RST;
				_nop_();
            _nop_();            
            Clr_DS1302_SCLK;
            _nop_();
            _nop_();
            Set_DS1302_RST;
            _nop_();
            _nop_();
            for(i=8;i>0;i--)
            { 
            if(reg&0x01) Set_DS1302_SDA;
            else Clr_DS1302_SDA;
            _nop_();
            _nop_();
            Set_DS1302_SCLK; 
            _nop_();
            _nop_();
            Clr_DS1302_SCLK;
            _nop_();
            _nop_();
            reg>>=1;
            }
            for(i=8;i>0;i--)
            { 
            if(dat&0x01) Set_DS1302_SDA;
            else Clr_DS1302_SDA;
            _nop_();
            _nop_();
            Set_DS1302_SCLK;
            _nop_();
            _nop_();
            Clr_DS1302_SCLK;
            _nop_();
            _nop_();
            dat>>=1;
            }
            Clr_DS1302_RST;
            _nop_();
            _nop_();
       }
uchar DS1302_Read(uchar reg)//讀取時間
            {
            uchar dat=0,i;
            Clr_DS1302_RST;
            _nop_();
            _nop_();
            Clr_DS1302_SCLK;
            _nop_();
            _nop_();
            Set_DS1302_RST;
            _nop_();
            _nop_();
            for(i=8;i>0;i--)
            {

            if(reg&0x01) Set_DS1302_SDA;
            else Clr_DS1302_SDA;
            _nop_();
            _nop_();
            Set_DS1302_SCLK; 
            _nop_();
            _nop_(); 
            Clr_DS1302_SCLK;
            _nop_();
            _nop_();
            reg>>=1;
            }
            
            for(i=8;i>0;i--)
            { 
            dat>>=1;
            if(DS1302_SDA) dat|=0x80;
            Set_DS1302_SCLK;
            _nop_();
            _nop_();
            Clr_DS1302_SCLK;
            _nop_();
            _nop_(); 
            }
            Clr_DS1302_RST;
            _nop_();
            _nop_();
            return(dat);
            }

void DS1302_Init(void)//初始化DS1302
            {
            DS1302_Write(DS1302_CONTROL_Reg,0x00);//關閉寫保護 
            DS1302_Write(DS1302_SEC_Reg,0x80);//暫停 
            DS1302_Write(DS1302_CHARGER_Reg,0xa9);//涓流充電
            DS1302_Write(DS1302_YEAR_Reg,0x04); //年
            DS1302_Write(DS1302_MONTH_Reg,0x12); //月
            DS1302_Write(DS1302_DATE_Reg,0x09); //日
            DS1302_Write(DS1302_DAY_Reg,0x04); //周
            DS1302_Write(DS1302_HR_Reg,0x10); //時
            DS1302_Write(DS1302_MIN_Reg,0x25); //分
            DS1302_Write(DS1302_SEC_Reg,0x00); //秒
            DS1302_Write(DS1302_CONTROL_Reg,0x80);//打開寫保護
            }
void ReadTime(void)//讀取時間
            {
            uchar dat;
            dat=DS1302_Read(DS1302_YEAR_Reg);//年
            year0=dat&0x0f;
            year1=dat>>4;
            dat=DS1302_Read(DS1302_MONTH_Reg);//月
            month=dat;
            dat=DS1302_Read(DS1302_DATE_Reg);//日
            date=dat;
            dat=DS1302_Read(DS1302_DAY_Reg);//周
            day=dat;
            dat=DS1302_Read(DS1302_HR_Reg);//時
            hour=dat;
            dat=DS1302_Read(DS1302_MIN_Reg);//分
            minute=dat;
            dat=DS1302_Read(DS1302_SEC_Reg);//秒
            second=dat;
            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费版在线| 中文字幕乱码久久午夜不卡| 精品少妇一区二区三区 | 在线一区二区三区四区| 欧美一区二区三区在线视频| 国产精品久久久久影院老司 | 国产日韩欧美综合在线| 一区二区三区四区不卡在线| 欧美日韩国产乱码电影| 久久综合狠狠综合久久综合88| 一级做a爱片久久| 国产一区91精品张津瑜| 欧美日韩免费视频| 中文字幕日韩精品一区| 韩国女主播成人在线| 91精品国产入口在线| 亚洲香肠在线观看| 99精品欧美一区二区三区小说| 精品久久久久久综合日本欧美 | 在线日韩国产精品| 欧美激情一区二区三区在线| 国产一区二区不卡老阿姨| 91精品国产乱码| 偷拍日韩校园综合在线| 91精品91久久久中77777| 中文字幕一区免费在线观看| 成人性生交大片免费看中文网站| 精品国产区一区| 久久精品国产亚洲a| 亚洲乱码国产乱码精品精小说| 国产麻豆午夜三级精品| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产一区二区三区日韩| 在线播放亚洲一区| 日韩国产精品久久久久久亚洲| 在线观看国产一区二区| 亚洲国产wwwccc36天堂| 欧美日韩一区视频| 丝袜脚交一区二区| 日韩欧美精品在线视频| 黄色成人免费在线| 日本不卡一二三区黄网| 蜜臀av性久久久久蜜臀av麻豆| 成人国产精品免费| 日韩精品中文字幕在线不卡尤物 | 亚洲视频一区在线观看| 蜜桃一区二区三区在线观看| 成人h版在线观看| 在线不卡免费av| 亚洲蜜臀av乱码久久精品| 国产一区不卡视频| 9191精品国产综合久久久久久| 中文字幕不卡在线播放| 看电视剧不卡顿的网站| 91麻豆国产自产在线观看| 久久久久久久久久美女| 日韩精品一二三区| 在线视频一区二区三| 中文av字幕一区| 精品一区二区三区av| 欧美日韩国产片| 亚洲制服丝袜av| 97久久久精品综合88久久| 国产偷国产偷精品高清尤物| 免费黄网站欧美| 欧美绝品在线观看成人午夜影视| 亚洲男同性视频| 成人午夜电影久久影院| 久久精品亚洲精品国产欧美kt∨| 免费成人在线网站| 在线综合+亚洲+欧美中文字幕| 亚洲在线免费播放| 在线精品视频免费播放| 亚洲精品日韩专区silk| 99久久国产综合精品女不卡| 欧美国产一区二区| 成人黄色国产精品网站大全在线免费观看| 久久综合av免费| 国产经典欧美精品| 国产精品乱码久久久久久| 成人高清免费在线播放| 国产精品国产三级国产普通话蜜臀| 国产一二精品视频| 国产欧美一区二区精品秋霞影院 | 国产精品99久久久久久久vr| 日韩欧美aaaaaa| 成人av在线播放网站| 日韩成人一级片| 一区二区三区国产精品| 久久精品一区二区三区av| 免费观看日韩av| 久久久三级国产网站| 国产白丝网站精品污在线入口| 日本一区二区三区四区在线视频 | 国产精品第四页| 色激情天天射综合网| 亚洲国产一区在线观看| 日韩一区二区三区电影| 韩国理伦片一区二区三区在线播放| 久久综合国产精品| 91老师国产黑色丝袜在线| 亚洲午夜在线电影| 精品国精品国产| 不卡一区在线观看| 日韩精品欧美成人高清一区二区| 精品日产卡一卡二卡麻豆| 国产jizzjizz一区二区| 一区二区三区不卡视频| 日韩欧美高清一区| 成人18精品视频| 日韩精品电影一区亚洲| 亚洲国产电影在线观看| 欧美日韩和欧美的一区二区| 国产精品一区二区久久不卡| 一区二区三区四区不卡在线| 2022国产精品视频| 欧美亚洲国产一卡| 国产精品一区免费视频| 亚洲成a人v欧美综合天堂| 久久夜色精品一区| 欧美综合色免费| 国产mv日韩mv欧美| 日本va欧美va精品发布| 自拍偷在线精品自拍偷无码专区| 欧美福利视频一区| 色综合视频一区二区三区高清| 伦理电影国产精品| 丝袜亚洲另类欧美综合| 亚洲日本va午夜在线影院| 久久亚洲影视婷婷| 欧美巨大另类极品videosbest | 香蕉乱码成人久久天堂爱免费| 国产人成一区二区三区影院| 7777精品伊人久久久大香线蕉经典版下载 | 欧美在线看片a免费观看| 欧美性xxxxxxxx| 国产成人免费视频| 美女爽到高潮91| 天天色综合天天| 亚洲欧美另类综合偷拍| 国产喷白浆一区二区三区| 欧美电影免费提供在线观看| 欧美日韩精品专区| 欧美在线999| 一本色道综合亚洲| 91同城在线观看| www.欧美色图| 99久久精品国产导航| 波多野结衣亚洲一区| 成人性生交大片免费看在线播放| 国产在线视频精品一区| 黄色日韩网站视频| 狠狠色伊人亚洲综合成人| 九一久久久久久| 狠狠狠色丁香婷婷综合激情| 久久国产福利国产秒拍| 久久精品av麻豆的观看方式| 久久精品国产秦先生| 久久国产精品一区二区| 国产尤物一区二区在线| 国模娜娜一区二区三区| 国产精品影视在线| 国产99久久久国产精品| 成人av手机在线观看| 91同城在线观看| 欧美日韩一区在线| 欧美成人一区二区| 国产网红主播福利一区二区| 亚洲国产经典视频| 一区二区三区蜜桃网| 婷婷激情综合网| 国产一区二区三区四区五区入口| 国产精品888| 色综合视频一区二区三区高清| 欧美亚洲高清一区二区三区不卡| 正在播放亚洲一区| 久久精品人人做| 亚洲欧美电影一区二区| 日韩高清一区在线| 国产精品一区三区| 91成人在线免费观看| 日韩欧美的一区二区| 国产精品卡一卡二| 亚洲五码中文字幕| 国产专区综合网| 96av麻豆蜜桃一区二区| 91精品国产综合久久久久久漫画| 久久久久久久久久美女| 亚洲综合图片区| 国产在线视频一区二区| 91免费观看视频在线| 精品国产一二三区| 亚洲精品视频免费看| 久久97超碰色| 在线看日韩精品电影| ww亚洲ww在线观看国产| 亚洲香蕉伊在人在线观| 国产91精品精华液一区二区三区| 欧美日韩mp4| ...av二区三区久久精品|