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

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

QQ登錄

只需一步,快速開始

搜索
查看: 1834|回復(fù): 0
收起左側(cè)

單片機(jī)液位檢測(cè)系統(tǒng)設(shè)計(jì)剖析

[復(fù)制鏈接]
ID:740223 發(fā)表于 2020-4-28 16:47 | 顯示全部樓層 |閱讀模式
一 功能簡(jiǎn)介
     本設(shè)計(jì)經(jīng)過調(diào)研,收集且分析相關(guān)技術(shù)資料,綜合考慮液位檢測(cè)技術(shù)發(fā)展和液位檢測(cè)系統(tǒng)特點(diǎn)的基礎(chǔ)上,提出把液位檢測(cè)顯示同超限報(bào)警綜合的解決方案。本系統(tǒng)采用AT89C51單片機(jī)作為處理器,主要完成以下工作:
         基于AT89C51的液位信息檢測(cè)設(shè)計(jì)方案。
         傳感器LM1042,A/D轉(zhuǎn)換芯片ADC0809與單片機(jī)的接口電路設(shè)計(jì)。
         LED數(shù)碼管的顯示是利用段碼加位碼循環(huán)動(dòng)態(tài)顯示實(shí)現(xiàn)的。
         設(shè)計(jì)主要軟件程序模塊,完成軟件設(shè)計(jì)。

二 系統(tǒng)硬件設(shè)計(jì)簡(jiǎn)介
該系統(tǒng)以AT89C51作為核心控制部件,外加傳感器。一片A/D轉(zhuǎn)換芯片和一片數(shù)碼管驅(qū)動(dòng)芯片來完成系統(tǒng)的預(yù)期任務(wù),即液位的檢測(cè)、顯示和超限報(bào)警。LM1042外接的熱阻探針溫度的變化依賴于周圍材料的熱阻的大小,從而可以根據(jù)探針在液體中的深度不同時(shí)電阻的不同檢測(cè)出液位的深度信息,由LM1042內(nèi)部轉(zhuǎn)換電路網(wǎng)絡(luò)轉(zhuǎn)換為與液位成線性關(guān)系的電壓信號(hào),再由A/D轉(zhuǎn)換芯片AD0809將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),實(shí)現(xiàn)液位信息的輸入,AT89C51從ADC0809讀取液位信息后進(jìn)行數(shù)據(jù)處理和超限判斷,隨后將處理過的數(shù)據(jù)分別通過位碼和段碼送給相應(yīng)的芯片。同時(shí),若液位超限則由單片機(jī)驅(qū)動(dòng)蜂鳴器報(bào)警。

各部分功能:
電源部分提供+5V +15V電壓供系統(tǒng)各部分使用。
傳感器LM1042實(shí)現(xiàn)液位信息到電壓信號(hào)的轉(zhuǎn)換。
3. ADC0809將放大器輸出的電壓信號(hào)經(jīng)A/D轉(zhuǎn)換后送到單片機(jī)。
4. AT89C51為處理器,實(shí)現(xiàn)液位信息的接收、數(shù)據(jù)處理、輸出到LED顯示端.
5.蜂鳴器部分在單片機(jī)檢測(cè)到液位超限是由單片機(jī)驅(qū)動(dòng)實(shí)現(xiàn)聲音報(bào)警。
6.單片機(jī)對(duì)液位數(shù)據(jù)處理后輸出,送給相應(yīng)芯片控制LED動(dòng)態(tài)顯示。

傳感器電路的設(shè)計(jì)

  由于我們?cè)谠O(shè)計(jì)的過程中未接觸到實(shí)際傳感器,在protues仿真軟件中采用電位器模擬的辦法,因此我們只是了解了傳感器的原理。傳感器電路設(shè)計(jì)部分并未實(shí)現(xiàn)。

  • A/D轉(zhuǎn)換部分的電路設(shè)計(jì)

本系統(tǒng)經(jīng)過采用AD0809芯片,其中11腳為電源端,最主要的6腳START,啟動(dòng)控制端口,高電平有效,EOC連接51單片機(jī)的終端輸入端,觸發(fā)中斷的信號(hào)。9腳是輸出時(shí)能端,電路圖中可以看出它是由P2.6控制的。10腳為時(shí)鐘接口,12,16分別為參考正,參考負(fù)。26腳為通道0的信號(hào)輸入端,23,24,25為通道選擇引腳,22為鎖存使能信號(hào)端,下面的八路信號(hào)是輸出端,由低到高的對(duì)應(yīng)八位二進(jìn)制數(shù)。13為參考地。 (見附錄電路原理設(shè)計(jì)圖)         

  • 數(shù)碼管顯示部分的電路設(shè)計(jì)

電路圖可以參見上面的圖2-8,大致控制是通過P0口將段碼送給245增加驅(qū)動(dòng)后,送至LED的A-DP的輸入端,控制顯示的大小。同時(shí)通過P2.0,P2.1作為139譯碼器的輸入信號(hào)選出一路信號(hào)后,作為位碼送至LED的1-4端口,決定哪一位顯示。整個(gè)LED顯示電路的控制主要是通過245的使能端控制實(shí)現(xiàn)的。至于它的動(dòng)態(tài)顯示,是由于在一個(gè)時(shí)刻,只能送一個(gè)位碼,一個(gè)段碼,也就是只能保證一位數(shù)字的正確顯示,通過快速的程序循環(huán)就實(shí)現(xiàn)了動(dòng)態(tài)的顯示過程。

              

  • 報(bào)警裝置的電路設(shè)計(jì)

BU(P2.5接口)蜂鳴器用于報(bào)警。當(dāng)檢測(cè)到液位高于200cm或者低于100cm時(shí),啟動(dòng)報(bào)警裝置。

        


    第六章 系統(tǒng)軟件部分的設(shè)計(jì)

    系統(tǒng)的硬件確定以后,功能完善的軟件能夠很好的指導(dǎo)和協(xié)調(diào)硬件的工作,可使系統(tǒng)發(fā)揮其最大的作用,并且便利以后的更新?lián)Q代升級(jí)。

     一個(gè)完整的系統(tǒng)都離不開對(duì)系統(tǒng)狀態(tài)的監(jiān)控,為了更好的協(xié)調(diào)軟件,硬件各個(gè)部分正常工作就必須對(duì)整個(gè)系統(tǒng)進(jìn)行嚴(yán)密監(jiān)控。在本系統(tǒng)中定時(shí)器T0中斷服務(wù)程序擔(dān)任數(shù)據(jù)讀取,處理和輸出顯示任務(wù),每隔一定的時(shí)間對(duì)A/D轉(zhuǎn)化進(jìn)行一次采樣,并進(jìn)行相應(yīng)的處理,在經(jīng)過LED驅(qū)動(dòng)電路來實(shí)現(xiàn)液位的顯示。而主程序完成的任務(wù)相對(duì)簡(jiǎn)單,它只是完成初始化和啟動(dòng)T0定時(shí)的工作。

在該系統(tǒng)的軟件部分的設(shè)計(jì)中,第一部分主要是對(duì)流程圖的介紹,第二部分是系統(tǒng)工作程序的編程內(nèi)容,由于全部編程部分較多,只取最重要的水位檢測(cè)主程序段。本程序段主要實(shí)現(xiàn)啟動(dòng)ADC0809轉(zhuǎn)換器,并從A/D轉(zhuǎn)換器采集信號(hào)的功能。

二 程序清單

#include<reg51.h>
unsigned char A_DV0;                                //A_D轉(zhuǎn)換得到值
unsigned Hmax,Hmin;                                //上下限值
unsigned char A_DV[4];                               //當(dāng)前液位值
char T0c=0;
char A;                                             //T0計(jì)時(shí)次數(shù)
void T0Run(void);                                    //T0啟動(dòng)子程序
void LED(unsigned char A_DV[]);                       //LED顯示子程序
void A_DRun(void);                                   //啟動(dòng)A_D轉(zhuǎn)換子程序
void A_DReA_D(void);                                //A_D轉(zhuǎn)換子程序
int Height;
bit Bjj(int Height,unsigned  Hmax,Hmin);              //數(shù)值比較函數(shù)
sbit BU=P2^5;
sbit L1=P2^0;
sbit               L2=P2^1;
sbit ST=P2^6;
sbit OE=P2^7;
sbit EOC=P3^2;
main()
    {   
                   BU=0;
         Hmax=200;                              //上限值,根據(jù)實(shí)際情況設(shè)定
         Hmin=100;                              //下限值 ,根據(jù)實(shí)際情況設(shè)定
         T0Run();
                            while(1);
    }
void T0Run(void)                                  //T0啟動(dòng)子程序
  {
    IE=0x82;                                     //啟動(dòng)中斷T0  
    TMOD=0x01;                                  //設(shè)置T0工作于模式1
    TH0=0xff;                                 
    TL0=0xec;                                     //送入計(jì)數(shù)初值
    TR0=1;
              ST=0;
              OE=0;                                         //啟動(dòng)定時(shí)器T0
  }
void time0(void) interrupt 1
  {
    TH0=0xff;
              TL0=0xec;                                      //重裝計(jì)數(shù)初值
    T0c++;
    if(T0c>19)                                      //如果計(jì)時(shí)20次即1s  
      {      
                 T0c=0;
       A_DRun();                                    //啟動(dòng)A_D轉(zhuǎn)換                                                        
       A_DReA_D();
       LED(A_DV);
       Bjj(Height,Hmax,Hmin);
      }
}
void A_DRun(void)                                   //啟動(dòng)A_D程序
{
                ST=0;
                ST=1;
                ST=0;
}
void A_DReA_D(void)
{   
     int A_DV0;
     while(EOC==0);
              OE=1;
              A_DV0=P1;
              OE=0;                                                                                                                                                                        
     Height=A_DV0;                                                                                                                              //計(jì)算A_D轉(zhuǎn)換值
     A_DV[0]=Height%10;                             //逐位分離液位值
     A_DV[1]=(Height%100)/10;
     A_DV[2]=(Height%1000)/100;
     A_DV[3]=0;
}
void LED(unsigned char A_DV[])                         //LED顯示子程序      
{
  int i,k;
  char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   
                   //數(shù)字零到數(shù)字九的共陽極顯示時(shí)的七段碼
  char b[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
  for(i=0;i<1000;i++)                                                  
              //設(shè)定循環(huán)次數(shù),使這四位數(shù)循環(huán)快速顯示,實(shí)現(xiàn)長(zhǎng)時(shí)間的動(dòng)態(tài)顯示
  {

   k=A_DV[3];
   L1=1;
   L2=1;
   A=a[k];
   P0=A;   
                                                     //顯示第3位            
   k=A_DV[0];
   L1=0;
   L2=1;
   A=b[k];  
   P0=A;
                                                     //顯示第2位
   k=A_DV[1];
   L1=1;
   L2=0;
   A=a[k];
   P0=A;
                                                      //顯示第1位
   k=A_DV[2];
   L1=0;
   L2=0;
   A=a[k];
   P0=A;  
}
}
bit Bjj(int Height,unsigned  Hmax,Hmin)               //數(shù)值比較函數(shù)
{  if(Height>Hmax||Height<Hmin)
     BU=1;
    else BU=0;                   //p2.5接的是蜂鳴器,到有高電平時(shí),蜂鳴器就會(huì)響起
     return 1;
}   

            

以上的Word格式文檔51黑下載地址:
單片機(jī)51hei設(shè)計(jì)——液位檢測(cè)系統(tǒng)剖析.doc (940 KB, 下載次數(shù): 20)

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色婷婷国产精品综合在线观看 | 成人教育av| 亚洲日本中文字幕在线 | 一区中文 | 欧美成人自拍 | 水蜜桃亚洲一二三四在线 | 亚洲精品在线免费播放 | 欧美成年网站 | 欧美 日韩精品 | 久久精品亚洲 | 久久成人国产 | 超碰一区二区 | 天天草天天射 | 亚洲欧美日韩精品久久亚洲区 | 日本一区二区三区免费观看 | 亚洲第一免费播放区 | 日韩一级精品视频在线观看 | 国产99久久精品一区二区300 | 久久精品一级 | 国产清纯白嫩初高生视频在线观看 | 国产一区二区在线免费 | 91欧美精品成人综合在线观看 | 欧洲一区二区在线 | 国产一级特黄aaa大片评分 | 亚洲综合大片69999 | 国产成人精品综合 | 懂色av蜜桃av | 一区二区不卡高清 | 欧美精品久久久久久 | 激情五月婷婷在线 | 久久噜噜噜精品国产亚洲综合 | 久久久久国产精品免费免费搜索 | 中文字幕福利视频 | 国产乱码精品1区2区3区 | 91网站在线看 | 欧美一区二区三区大片 | 91久久久久 | 国产色婷婷精品综合在线手机播放 | 啪啪免费网站 | 亚洲一区二区三区在线播放 | 黄a在线播放 |