久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1622|回復: 0
打印 上一主題 下一主題
收起左側

基于單片機壓力傳感器MPX4115檢測-報警系統(tǒng)proteus仿真+源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:190577 發(fā)表于 2023-11-25 20:08 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
一、系統(tǒng)方案
1、本設計采用這51單片機作為主控器。
2、MPX4115采集壓力值、DS18B20采集溫度值送到液晶1602顯示。
3、按鍵設置報警值。
4、蜂鳴器報警。


二、硬件設計
原理圖如下:

三、單片機軟件設計
1、首先是系統(tǒng)初始化
/*******************************************************************
                  液晶初始化
************************************************************************/
void chushihua()
{
  delayxms(20); //給液晶一段時間
  en=0;
  xiemingling(0x38);//設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口
  delayxms(20);
  xiemingling(0x38);//
  delayxms(20);
  xiemingling(0x0c);//設置開顯示,不顯示光標
  delayxms(20);
  xiemingling(0x06);//寫一個字符后地址指針加1
  delayxms(20);
  xiemingling(0x01);//顯示清零,數(shù)據(jù)指針清零
  delayxms(20);
  xiemingling(0x80);//指定字符顯示的實際地址,,,顯示位置的確定方法規(guī)定為"80H+地址碼x"
  delayxms(20);
}
2、液晶顯示程序
//**************毫秒*******************
void delayxms(uint ms)                                           //延時 x  ms
{
    uint a,j;
    for(a=0;a<ms;a++)
          for(j=0;j<110;j++);
}
/*******************************************************************
                  寫命令
************************************************************************/
void xiemingling(unsigned char mingling)
{
  en=0;
  rs=0;
  rw=0;
  P0=mingling;
  delayxms(5);
  en=1;
  delayxms(10);
  en=0;
}
/*******************************************************************
                  寫數(shù)據(jù)
************************************************************************/
void xieshuju(unsigned char shuju)
{   
  en=0;
  rs=1;
  rw=0;
  P0=shuju;
  delayxms(5);
  en=1;
  delayxms(10);
  en=0;
}
3、按鍵程序
/*********************************************************/
// 按鍵掃描
/*********************************************************/
void key()
{
        if(key5==0)
        {
                delay(10);
                if(key5==0)
                {
                        while(!key5);
                        c1=c;
                        temp1=temp;
           
    }
        }      
                if(key6==0)
        {
                delay(10);
                if(key6==0)
                {
                        while(!key6);
            mode=!mode;
                        chushihua(); //LCD1602初始化
    }
        }      
      
      
        if(key1==0)
        {
                delay(10);
                if(key1==0)
                {
                        while(!key1);
              h++;
                          if(h>1000) h=1000;
    }
        }      
      
        if(key2==0)
        {
                delay(10);
                if(key2==0)
                {
                        while(!key2);
                        if(h>=1) h--;
               
    }
        }      
        if(key3==0)
        {
                delay(10);
                if(key3==0)
                {
                        while(!key3);
              l++;
                          if(l>1000) l=1000;
    }
        }      
      
        if(key4==0)
        {
                delay(10);
                if(key4==0)
                {
                        while(!key4);
                        if(l>=1) l--;
               
    }
        }      
      
}
4、核心算法程序
void main(void)
{
         
          chushihua(); //LCD1602初始化
               
  while(1)
  {         
             key();         
          getdata=Adc0832(0);
                check_wendu();
          if(0<getdata<243)                                 
                {                           
                  int vary=getdata;                                                      
                        press=((10.0/23.0)*vary)+9.3;                                                                                                                          
                        temp=(int)(press*10);               
                                                                                 
                        dispbuf[3]=temp/1000;                                     //取壓力值百位
                        dispbuf[2]=(temp%1000)/100;                            //取壓力值十位
                        dispbuf[1]=((temp%1000)%100)/10;                    //取壓力值個位
                        dispbuf[0]=((temp%1000)%100)%10;                        //取壓力值十分位
                        if(temp/10<l){ led1=0;led2=1;beep=0;}
                        else  if(temp/10>h){led1=1;led2=0;beep=0;}
       else  {led1=1;led2=1;beep=1;}
           }
                if(mode==0)
                {
                xiemingling(0x80+0);
                xieshuju('Q');
               
                xieshuju(':');
                xieshuju(dispbuf[3]+0x30);      
                xieshuju(dispbuf[2]+0x30);      
                xieshuju(dispbuf[1]+0x30);
                xieshuju('.');               
                xieshuju(dispbuf[0]+0x30);      
                xieshuju(' ');
               
                xieshuju('T');
                xieshuju(':');
                xieshuju(c/1000+0x30);      
                xieshuju(c%1000/100+0x30);      
                xieshuju(c%1000%100/10+0x30);
                xieshuju('.');               
                xieshuju(c%10+0x30);      
      
               
               
                xiemingling(0x80+0x40);
                        xieshuju('H');
                xieshuju(':');
                xieshuju(h/100+0x30);      
                xieshuju(h%100/10+0x30);      
                xieshuju(h%10+0x30);
      
     xieshuju(' ');
    xieshuju('L');
                xieshuju(':');
                xieshuju(l/100+0x30);      
                xieshuju(l%100/10+0x30);      
                xieshuju(l%10+0x30);      
        }
        else
                {
                        xiemingling(0x80+0);
                xieshuju('R');
               
                       
                       
                                xiemingling(0xC0+0);
                xieshuju('Q');
               
                xieshuju(':');
                xieshuju(temp1/1000+0x30);      
                xieshuju(temp1%1000/100+0x30);      
                xieshuju(temp1%1000%100/10+0x30);
                xieshuju('.');               
                xieshuju(temp1%10+0x30);      
                xieshuju(' ');
                       
                        xiemingling(0xC0+0);
                xieshuju('Q');
               
                xieshuju(':');
                xieshuju(temp1/1000+0x30);      
                xieshuju(temp1%1000/100+0x30);      
                xieshuju(temp1%1000%100/10+0x30);
                xieshuju('.');               
                xieshuju(temp1%10+0x30);      
                xieshuju(' ');
               
                xieshuju('T');
                xieshuju(':');
                xieshuju(c1/1000+0x30);      
                xieshuju(c1%1000/100+0x30);      
                xieshuju(c1%1000%100/10+0x30);
                xieshuju('.');               
                xieshuju(c1%10+0x30);      
      
               
               
               
        }
               
  }
}

四、 proteus仿真設計
Proteus軟件是一款應用比較廣泛的工具,它可以在沒有硬件平臺的基礎上通過自身的軟件仿真出硬件平臺的運行情況,這樣就可以通過軟件仿真來驗證我們設計的方案有沒有問題,如果有問題,可以重新選擇器件,連接器件,直到達到我們設定的目的,避免我們搭建實物的時候,如果當初選擇的方案有問題,我們器件都已經(jīng)焊接好了,再去卸載下去,再去焊接新的方案的器件,測試,這樣會浪費人力和物力,也給開發(fā)者帶來一定困惑,Proteus仿真軟件就很好的解決這個問題,我們在設計之初,就使用該軟件進行模擬仿真,測試,選擇滿足我們設計的最優(yōu)方案。最后根據(jù)測試沒問題的仿真圖紙,焊接實物,調試,最終完成本設計的作品。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费骚视频 | 日韩在线观看 | 国产亚洲精品久久午夜玫瑰园 | 日韩在线免费视频 | 久久国产精品偷 | 国产欧美一区二区三区日本久久久 | 久久人人网 | 国产在线91 | 看av网 | 黄色播放 | 自拍视频国产 | 中文字幕一区二区三区精彩视频 | 久久久精品一区 | 91视频免费在观看 | 国产在线一区二区三区 | 天天操夜夜爽 | 日韩有码一区 | 日本在线免费看最新的电影 | 日本久草 | 欧美精品一区二区三区蜜桃视频 | 国产一区二区自拍 | 免费a大片| 亚洲高清在线观看 | 中文在线а√在线8 | 久久久爽爽爽美女图片 | 91丨九色丨国产在线 | cao视频 | 久久青青| 国产一区免费视频 | 欧美黄色片 | 精品国产精品三级精品av网址 | 日韩成人精品一区二区三区 | 亚洲三级在线 | 97国产精品 | 美女久久视频 | 久草网免费 | 久在线视频播放免费视频 | 国产95在线 | 中文字幕在线视频网站 | 国产成人精品免费视频 | 91麻豆蜜桃一区二区三区 |