找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 4224|回復(fù): 2
收起左側(cè)

單片機(jī)壓力報(bào)警系統(tǒng)Proteus仿真+程序設(shè)計(jì)

[復(fù)制鏈接]
ID:519003 發(fā)表于 2019-6-13 13:54 | 顯示全部樓層 |閱讀模式
系統(tǒng)組成:
(1)控制器�?刂破魇窍到y(tǒng)的核心部分,可以用工業(yè)計(jì)算機(jī)PLC、或者單片機(jī)。
(2)A /D轉(zhuǎn)換器。A/D轉(zhuǎn)換器可以把測得的模擬量轉(zhuǎn)換成數(shù)字量輸出,可以直接讀取。
(3)繼電器。繼電器在電路中起到斷電保護(hù)作用,是系統(tǒng)的安全保障。其種類很多,有電流繼電器、電壓及電器、速度繼電器等等。
(4)鍵盤。通過鍵盤可以設(shè)置限制電流大小。
(5)液晶顯顯示。液晶可以顯示設(shè)置電流以及實(shí)時(shí)電流值大小。
首先通過鍵盤設(shè)定電流值,然后檢測電流值,轉(zhuǎn)換成數(shù)字量通過數(shù)碼管顯示出來。當(dāng)電流過大時(shí)繼電器動(dòng)作,切斷電路,保護(hù)用電器。

仿真圖

仿真圖


代碼如下:
#include<reg51.h>
#include"delay.h"
#include"lcd602.h"
#include"ds18b20.h"
//**************端口定義*******************
sbit LED = P1^0;
sbit k1 = P1^4;
sbit k2 = P1^5;
sbit k3 = P1^6;
//**************數(shù)組定義*******************
uchar code tab2[]={"Temp:     "}; //5
uchar code tab3[]={" H     "}; //3
uchar code tab4[]={"L     "}; //8
//**************變量定義*******************
int temp1 = 400;   //上限
int temp3 = 100;         //下限
bit flag = 0;         //上下限選擇標(biāo)志
int temp4; //當(dāng)上限減到負(fù)數(shù)時(shí)
uchar temp5 = 0;
/*******************按鍵********************/
void key()
{
     if(flag == 0) //上限
         {
                 write_zifu(2,0,'*');
                 write_zifu(2,8,' ');
             if(k1 == 0)
                 {
                    delayxms(5);
                        while(k1 == 0);
                        temp1 += 10;
                 }

                 if(k2 == 0)
                 {
                    delayxms(5);
                        while(k2 == 0);
                        temp1 -= 10;
                 }
         }

         if(flag == 1)        //下限
         {
                 write_zifu(2,0,' ');
                 write_zifu(2,8,'*');
             if(k1 == 0)
                 {
                    delayxms(5);
                        while(k1 == 0);
                        temp3 += 10;
                 }

                 if(k2 == 0)
                 {
                    delayxms(5);
                        while(k2 == 0);
                        temp3 -= 10;
                 }
         }


         if(k3 == 0) //上下限選擇標(biāo)志
         {
            delayxms(5);
                while(k3 == 0);
                flag = ~flag;
         }
}
/*******************定時(shí)器T1初始化********************/
void T1_init()
{
          TMOD = TMOD | 0x10;            //設(shè)T1為方式1
          TH1 = (65535-20000)/256;       //計(jì)數(shù)20000個(gè)
          TL1 = (65535-20000)%256;
          EA = 1;                        //開啟總中斷         
          ET1 = 1;                       //允許T1中斷
          TR1 = 1;                       //啟動(dòng)
}
/*******************主函數(shù)********************/
void main()
{        
            chushihua();//lcd1602初始化
          write_string(1,0,tab2);
          write_string(2,0,tab3);
          write_string(2,9,tab4);
          T1_init();
          while(1)
          {
                          key();
                          ds1820disp();
                          /*溫度上限*/
                      if(temp1 < 0)
                          {
                                   write_zifu(2,2,'-');
                                   temp4 = temp1;
                                   temp4 = ~temp4;
                                   temp4 += 1;
                                     write_num3(2,3,temp4);
                                   write_zifu(2,7,' ');
                          }
                          else
                          {
                                     write_zifu(2,2,'+');
                                   if(temp1>=1000)
                                   {
                                              write_num4(2,3,temp1);
                                   }
                                   else
                                   {
                                              write_num3(2,3,temp1);
                                   }
                          }

                          /*溫度下限*/
                      if(temp3 < 0)
                          {
                                   write_zifu(2,10,'-');
                                     write_num3(2,11,-(temp3));
                                   write_zifu(2,15,' ');
                          }
                          else
                          {
                                     write_zifu(2,10,'+');
                                   if(temp3>=1000)
                                   {write_num4(2,11,temp3);}
                                   else
                                   {write_num3(2,11,temp3);}
                          }

                          /*報(bào)警*/
                          if(flag_temp == 1) //溫度小于零
                          {
                              if((-t)>temp1 || (-t)<temp3) {LED = 0;}
                              else {LED = 1;}
                          }
                          else //溫度大于零
                          {
                              if(t>temp1 || t<temp3) {LED = 0;}
                              else {LED = 1;}
                          }
          }           
}
/**************************定時(shí)器T1中斷服務(wù)函數(shù)************************************/
void T1_time() interrupt 3   
{
      TH1 = (65535-20000)/256;       //計(jì)數(shù)20000個(gè)
          TL1 = (65535-20000)%256;
          temp5 += 1;
          if(temp5 >= 25)
          {
             temp5 = 0;
                 TR1 = 0;
                 ReadTemperature();
                 TR1 = 1;
          }
}


原理圖

原理圖

單片機(jī)壓力報(bào)警系統(tǒng)設(shè)計(jì).zip

136.27 KB, 下載次數(shù): 54, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2019-6-16 01:07 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

ID:737870 發(fā)表于 2020-4-26 15:43 來自手機(jī) | 顯示全部樓層
admin 發(fā)表于 2019-6-16 01:07
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)

全部嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表