日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          多功能智能控制器

          作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          一、使用說明:

          本《多功能智能控制器》是我業(yè)余時間設(shè)計(jì)的一款小型智能控制器。此控制器主要是利用AT89C52作為主控制器件,以2*8LCD作為顯示,具有手動、遙控、定時等方式控制繼電器,且具有溫度顯示功能等??梢苑旁谌魏涡枰悄芸刂频牡胤健?/p>本文引用地址:http://yuyingmama.com.cn/article/201611/315655.htm

          功能說明:

          定時器的基本功能:

          1.使用2*8LCD液晶模塊顯示器顯示現(xiàn)在的時間。

          2.顯示格式為“HH:MM:SS”,在第二行顯示時間。

          3.由WLED和冒號閃動來做秒計(jì)數(shù)表示。

          手動按鍵的基本功能:

          1.操作鍵K1:進(jìn)入或退出設(shè)置現(xiàn)在的時間。

          2.操作鍵K2:整點(diǎn)報(bào)時開關(guān)。并有相應(yīng)的指示燈DLED顯示(DLED亮則整點(diǎn)報(bào)時,DLED滅則不整點(diǎn)報(bào)時)。

          3.操作鍵K3:鬧鈴控制開關(guān)。并有相應(yīng)的指示燈CLED顯示(CLED亮則鬧鈴開啟,DLED滅則關(guān)閉鬧鈴)。

          4.操作鍵K4:進(jìn)入或退出鬧鈴時間設(shè)置。

          5.操作鍵K5:繼電器1手動開關(guān)。并有相應(yīng)的指示燈顯示。

          6.操作鍵K6:繼電器2手動開關(guān)。

          注:以上按鍵說明都是按鍵的第一功能按鍵。K2的第二功能是小時的加;K3的第二功能時分鐘的加。

          遙控按鍵的基本功能:

          現(xiàn)在時間設(shè)置:

          1.TIME:進(jìn)入設(shè)置現(xiàn)在的時間。

          2.下一首歌按鍵:表示分鐘的加。

          3.上一首歌按鍵:表示小時的加。

          4.停止按鍵:表示退出現(xiàn)在時間設(shè)置。

          開關(guān)功能:

          R/L:表示整點(diǎn)報(bào)時開關(guān)。

          P/N:表示鬧鈴開關(guān)。

          鬧鈴時間設(shè)置:

          1.RETURN:進(jìn)入鬧鈴時間設(shè)置。

          2.向前快進(jìn):表示小時加。

          3.向后快進(jìn):表示分鐘加。

          4.停止按鍵:表示退出鬧鈴時間設(shè)置。

          二、三D圖:

          三、程序:

          1.系統(tǒng)頭文件:

          #ifndef __CONFIG_H__

          #define __CONFIG_H__

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

          /* "以下為系統(tǒng)配置" */

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

          #include

          #include

          #include

          #include "ir.h"

          #include "lcd1602.h"

          #include "ds18b20.h"

          #define RELAY P3_5 // 繼電器1引腳

          #define FELAY P3_6 // 繼電器2引腳

          #define F_LED P2_3 // 繼電器2工作指示燈

          #define Y_LED P2_4 // 繼電器1工作指示燈

          #define C_LED P2_5 // 定時控制指示燈

          #define D_LED P2_6 // 整點(diǎn)報(bào)時指示燈

          #define W_LED P2_7 // 時鐘工作指示燈

          #define K1 P1_0 // 當(dāng)前時間的設(shè)置與結(jié)束

          #define K2 P1_1 // 整點(diǎn)報(bào)時開關(guān)/小時加1

          #define K3 P1_2 // 鬧鈴控制開關(guān)/分鐘加1

          #define K4 P1_3 // 鬧鈴時間的設(shè)置與結(jié)束

          #define K5 P1_4 // 手動控制繼電器1

          #define K6 P1_5 // 手動控制繼電器2

          uchar hour,min,sec; // 當(dāng)前時間寄存器

          uchar armhour,armmin,armsec; // 控制時間寄存器

          uchar con_1s; // 時間計(jì)數(shù)器

          uchar data Time[8]={0x30,0x30,0x3a,0x30,0x30,0x3a,0x30,0x30}; // 顯示時間暫存

          void turn_on_information(void);//開機(jī)信息信息

          // 時間控制部分

          void TimeOut(void);//到點(diǎn)工作

          void O_clock(void);//整點(diǎn)報(bào)時

          void Scan(bit mark,bit line,uchar arr[]);//顯示

          // 手動控制部分函數(shù)

          void Keyscan(void); // 手動按鍵掃描

          void Set_time(void); // 手動設(shè)置當(dāng)前時間

          void Set_ctrltime(void); // 手動設(shè)置控制時間

          // 遙控部分函數(shù)

          void Telecontrol(void); // 遙控按鍵掃描

          void Tele_Set_time(void); // 遙控設(shè)置當(dāng)前時間

          void Tele_Set_ctrltime(void); // 遙控設(shè)置控制時間

          // 密碼鎖部分函數(shù)

          void Coded_lock(void);

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

          函 數(shù) 名:void Clearmen(void)

          功 能:系統(tǒng)初始化

          說 明:對系統(tǒng)引腳變量及中斷進(jìn)行初始化

          入口參數(shù):無

          返 回 值:無

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

          void Clearmen(void)

          {

          //***************** 中斷初始化 *****************

          // 中斷允許寄存器IE

          /*----------------------------------------------------

          | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |

          - - - - - - - - - - - - - - - - - - - - - - - -

          | EA | | ET2 | ES | ET1 | EX1 | ET0 | EX0 |

          -----------------------------------------------------*/

          IE = 0x00; // "清除中斷"

          EX0 = 1; // 0"外部中斷0允許"

          ET0 = 1; // 1"定時器0中斷允許"

          EX1 = 0; // 2"外部中斷1允許"

          ET1 = 1; // 3"定時器1中斷允許"

          ES = 0; // 4"串行中斷允許"

          ET2 = 0; // 5"定時器2中斷允許"-52才有

          EA = 1; // "中斷總允許"

          // 中斷優(yōu)先級管理寄存器IP

          /*----------------------------------------------------

          | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |

          - - - - - - - - - - - - - - - - - - - - - - - -

          | | | PT2 | PS | PT1 | PX1 | PT0 | PX0 |

          -----------------------------------------------------*/

          IP = 0x00; // "清除中斷優(yōu)先級"

          PS = 0; // "串行中斷優(yōu)先"

          PX0 = 0; // "外部中斷0"

          PT0 = 1; // "定時器中斷0"

          PX1 = 0; // "外部中斷1"

          PT1 = 0; // "定時器中斷1"

          // 定時器控制寄存器TCON

          /*----------------------------------------------------

          | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |

          - - - - - - - - - - - - - - - - - - - - - - - -

          | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |

          - - - - - - - - - - - - - - - - - - - - - - - -

          | 用于定時器 | 用于外中斷 |

          -----------------------------------------------------*/

          TCON = 0x00;

          IT0 = 1; // "外部中斷0觸發(fā)方式 0=電平 1=邊沿"

          IE0 = 0; // "外部中斷0申請標(biāo)志"

          IT1 = 0; // "外部中斷1觸發(fā)方式 0=電平 1=邊沿"

          IE1 = 0; // "外部中斷1申請標(biāo)志"

          TR0 = 0; // "T0運(yùn)行控制"

          TF0 = 0; // "T0溢出標(biāo)志"

          TR1 = 0; // "T1運(yùn)行控制"

          TF1 = 0; // "T1溢出標(biāo)志"

          // 定時器模式控制寄存器TMOD

          /*----------------------------------------------------

          | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |

          - - - - - - - - - - - - - - - - - - - - - - - -

          |GATE| C/T| M0 | M1 |GATE | C/T | M0 | M1 |

          - - - - - - - - - - - - - - - - - - - - - - - -

          | 高4位用于T1 | 低4位用于T0" |

          -----------------------------------------------------*/

          TMOD=0x11; // 定時器T0、T1為16位定時模式1

          TH0=0x3C;TL0=0xB0; // 定時器0賦初值

          TH1=0x3C;TL1=0xB0; // 定時器1賦初值

          ET0=1;TR0=1;EA=1; // 開定時器0

          //***************** 變量及引腳初始化 **********************************

          hour=0; min=0; sec=0; // 當(dāng)前時間初始化

          armhour=0;armmin=0;armsec=0; // 控制時間初始化

          IRIN=1;BEEP=1;RELAY=1; FELAY=1;

          W_LED=1;D_LED=1;C_LED=1; // 指示燈初始化

          F_LED=1;Y_LED=1;

          Adjust_Res(0x5f); // 調(diào)整18B20的分辨率 0x1f:0.5; 0x3f:0.25; 0x5f:0.125

          }

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

          函 數(shù) 名:void Delay_50us(uint t)

          功 能:延時函數(shù)

          說 明:系統(tǒng)用延時

          入口參數(shù):無

          返 回 值:無

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

          void Delay_50us(uint t)

          {

          uchar j;

          for(;t>0;t--)

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

          ;

          }

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

          函 數(shù) 名:void Work_led(uchar count)

          功 能:工作指示燈閃爍提示

          說 明:閃爍以提示工作狀態(tài)

          入口參數(shù):無

          返 回 值:無

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

          Work_led(uchar count)

          {

          while(count--)

          {

          W_LED=~W_LED; //工作燈取反

          Delay_50us(3000);

          }

          C_LED=1;

          }

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

          函 數(shù) 名:void turn_on_information(void)

          功 能:開機(jī)顯示信息

          說 明:第1行顯示產(chǎn)品名;第2行動態(tài)顯示作者信息

          入口參數(shù):無

          返 回 值:無

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

          uchar code string[]=" 2008-1-20";

          void turn_on_information(void)

          {

          uchar num=30;

          uchar *cp;

          cp=string;

          do

          {

          WriteCommandLCM(0x01,1); // 顯示清屏

          Delay_50us(100);

          DisplayListChar(0,0,"zhao jun");

          DisplayListChar(0,1,cp);

          Delay_50us(8000);

          cp++;

          if(*cp==