freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的液位控制系統(tǒng)的設(shè)計(jì)論文-閱讀頁

2025-07-12 20:05本頁面
  

【正文】 出,低地平動作。輸入單端正電壓時(shí),VIN()接地;而差動輸入時(shí),直接加入VIN(+) VIN()。VREF 輔助參考電壓。VCC 電源供應(yīng)以及作為電路的參考電壓。系統(tǒng)中使用10K電阻與150pF電容組成RC振蕩電路,根據(jù)技術(shù)手冊計(jì)算公式: (31)其振蕩頻率約為606kHz,滿足芯片要求。常用的阻抗電壓轉(zhuǎn)換法如歐姆法。即 (32)式中,是轉(zhuǎn)化電壓,恒定電流,為被測電阻,為比例系數(shù)。為了簡化設(shè)計(jì)調(diào)試過程,使用系統(tǒng)內(nèi)部5V電壓作為模擬輸入,VIN()直接接地,通過接入傳感器分壓將阻抗轉(zhuǎn)換為電壓信號,接入電位器可實(shí)現(xiàn)模擬輸入。圖312 MAX485引腳圖RO引腳接到單片機(jī)串口接收引腳RXD(),DI引腳接到單片機(jī)串口發(fā)送引腳TXD()。為了節(jié)省單片機(jī)I/O口資源,將RE和DE引腳連在一起,輸入低電平時(shí),MAX485處于接收狀態(tài);輸入高電平時(shí),其處于發(fā)送數(shù)據(jù)狀態(tài)。A,B端為發(fā)送接收差分信號端,一般需在A,B端之間加匹配電阻,匹配電阻為120Ω。由于使用單片機(jī)I/O口的驅(qū)動電流較弱,不滿足繼電器吸合電流參數(shù)的要求,所以需使用三極管驅(qū)動繼電器吸合。為了防止電源尖峰脈沖引發(fā)的噪聲干擾以及高頻信號線間的耦合干擾,在電源入口處及芯片頂端或底端,接入去耦電容,以增強(qiáng)系統(tǒng)的穩(wěn)定性。圖314 繼電器部分電路圖圖315 電源指示燈電路圖 第4章 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件 系統(tǒng)軟件編譯開發(fā)環(huán)境8051系類單片機(jī)共擁有111條系統(tǒng)指令,可實(shí)現(xiàn)51種基本操作。C語言是一種編譯型程序設(shè)計(jì)語言。用C語言來編寫目標(biāo)系統(tǒng)軟件,會大大縮短開發(fā)周期,增加軟件的可讀性,便于改進(jìn)和擴(kuò)充。KEIL C51開發(fā)工具套件可用于匯編C語言程序、匯編源程序,鏈接和定位目標(biāo)文件和庫,創(chuàng)建HEX文件以及調(diào)試目標(biāo)程序。 系統(tǒng)主程序流程圖系統(tǒng)主程序的功能主要是完成對單片機(jī)的初始化,設(shè)置警戒液位的上下限,實(shí)時(shí)顯示液位值以及鍵盤掃描等工作。 系統(tǒng)初始化該模塊在系統(tǒng)上電開機(jī)時(shí)將系統(tǒng)端口、數(shù)據(jù)存儲區(qū)、標(biāo)志位、指針、地址等賦予有含義的值。表41 初始化參數(shù)及含義模塊變量/端口初始值功能控制端口初始化adRD/1A/D轉(zhuǎn)換芯片數(shù)據(jù)讀入控制,初始為不讀入adWR/0A/D轉(zhuǎn)換芯片轉(zhuǎn)換控制,初始為停止E/0通信接收發(fā)送控制,初始為接收DIS/0顯示數(shù)據(jù)鎖存控制,初始為保持RELAY/1繼電器控制,初始狀態(tài)為斷開波特率發(fā)生器初始化TMOD0x22單片機(jī)片內(nèi)定時(shí)/計(jì)數(shù)器工作在方式二SCON0x40串行口為8位UART工作方式TH10xf4波特率設(shè)置為4800bpsTL10xf4IE0禁止定時(shí)器中斷TR11啟動定時(shí)器REN1允許串行口接收數(shù)據(jù)時(shí)間初始化sec0x00初始化系統(tǒng)時(shí)間為2011年1月1日0時(shí)0分0秒星期六其中sec,min,hr,date,mon,day,year依次為秒、分、時(shí)、日、月、星期、年min0x00hr0x00date0x01mon0x01day0x06year0x11數(shù)據(jù)參數(shù)初始化xmark0x7531數(shù)據(jù)存儲狀態(tài)標(biāo)志字節(jié)指針numtab0x0001數(shù)據(jù)存儲區(qū)指針uplq0xCF高液位警戒高度,初始值downlq0x10低液位警戒高度,初始值初始化過程中,調(diào)用A/D轉(zhuǎn)換模塊獲得首次液位數(shù)據(jù),同時(shí)將其顯示,完成初始化工作開始CPU初始化參數(shù)設(shè)定是否有按鍵采樣子程序顯示實(shí)時(shí)液位數(shù)據(jù)處理子程序控制電機(jī)啟停按鍵處理是否圖41 主程序流程圖 顯示與A/D轉(zhuǎn)換的數(shù)據(jù)處理系統(tǒng)中,顯示輸出的要求為壓縮BCD碼,而A/D轉(zhuǎn)換輸入的數(shù)據(jù)是8位16進(jìn)制碼,因此在實(shí)現(xiàn)顯示之前需要編碼的轉(zhuǎn)換。為了通過LED直觀顯示液位高度,進(jìn)行轉(zhuǎn)換的思路如下:設(shè)輸入8位二進(jìn)制數(shù)據(jù)為,的商即為以分米為單位的液位高度數(shù)據(jù),余數(shù)為以厘米為單位的數(shù)據(jù),由于顯示位數(shù)僅為2位,最低位為分米,固使用“二舍三入”的辦法保留分米單位的整數(shù)倍數(shù)據(jù)。顯示轉(zhuǎn)換部分程序簡略如下:uchar dis_transform(uchar num){uchar ac, quotient, play, mid 。quotient = (numac)/5。ac=quotient%10。play=ac+mid*16。} 按鍵部分軟件設(shè)計(jì)由于使用的按鍵較少,所以本文采用了獨(dú)立式鍵盤,即每個(gè)按鍵單獨(dú)占用一根口線。查詢式鍵盤的程序流程圖如下:鍵盤管理程序入口Key_value=P3amp。0x3c圖42 鍵盤程序流程圖調(diào)用相應(yīng)子程序下面給出鍵盤掃描的主程序,其分支程序省略。Key_value=P3amp。 /*讀取鍵值*/switch(Key_value){case 0x38:delay(30000)。0x3c)) /*進(jìn)行判斷按鍵是否為干擾*/{manage_key2()。} /*調(diào)用子函數(shù)*/else break。if(Key_value==(P3amp。break。default:break。硬件設(shè)計(jì)中使用了74LS273鎖存數(shù)據(jù)。液位顯示部分程序簡略如下:display(){DIS=0。_nop_()。P0=dis_transform(prelq)。_nop_()。DIS=1。該模塊分為兩個(gè)階段,第一階段是為A/D轉(zhuǎn)換啟動控制,通過adWR復(fù)位→延遲→置位完成。兩個(gè)階段中可加如適當(dāng)?shù)难舆t,以滿足ADC0804 100ns的轉(zhuǎn)換時(shí)間。其程序流程圖如圖43所示。_nop_()。_nop_()。if(prelq=uplq amp。 key==1){RELAY=1。makemark(1)。amp。key=1。}}啟動A/D轉(zhuǎn)換讀取液位數(shù)據(jù)開始實(shí)際液位≥高警戒液位且電機(jī)已啟動關(guān)閉電機(jī)記錄數(shù)據(jù)實(shí)際液位≤低警戒液位且電機(jī)關(guān)閉返回啟動電機(jī)記錄數(shù)據(jù)是否是否圖43 液位檢測流程圖 通信協(xié)議及通信模塊軟件設(shè)計(jì)1) 通信協(xié)議為了使PC上位機(jī)與設(shè)備實(shí)現(xiàn)有意義的通信,設(shè)計(jì)了簡單的通信協(xié)議。傳送以字節(jié)為單位,發(fā)送命令與數(shù)據(jù)。軟件設(shè)計(jì)上,系統(tǒng)以查詢的方式檢測上位機(jī)的命令控制字,并及時(shí)進(jìn)入各響應(yīng)函數(shù)予以響應(yīng)。表43 通信協(xié)議上位機(jī)命令控制字含 義下位機(jī)命令控制字含 義0x00請求聯(lián)機(jī)檢測0xF0響應(yīng)聯(lián)機(jī)檢測成功0x01讀系統(tǒng)時(shí)間0xF1響應(yīng)寫時(shí)間指令,發(fā)送7字節(jié)時(shí)間數(shù)據(jù)0x02設(shè)置系統(tǒng)時(shí)間0xF2響應(yīng)度時(shí)間指令,接收7字節(jié)時(shí)間數(shù)據(jù)0x03讀當(dāng)前液位0xF3響應(yīng)讀當(dāng)前液位指令,發(fā)送1字節(jié)液位數(shù)據(jù)0x04讀記錄數(shù)據(jù)0xF4響應(yīng)讀記錄數(shù)據(jù)指令,發(fā)送2字節(jié)數(shù)據(jù)量及相應(yīng)數(shù)據(jù)0x05讀液位上下限0xF5響應(yīng)讀液位上下限指令,發(fā)送2字節(jié)液位上下限數(shù)據(jù)0x06設(shè)置液位上下限0xF6響應(yīng)設(shè)置液位上下限指令,接收2字節(jié)液位上下限數(shù)據(jù)0x07讀當(dāng)前液位及電機(jī)狀態(tài)0xF7響應(yīng)讀當(dāng)前液位及電機(jī)狀態(tài)指令,發(fā)送2字節(jié)液位數(shù)據(jù)及電機(jī)狀態(tài)開始判斷是否有通信請求通信響應(yīng)處理返回判斷請求信息是否滿足條件1滿足條件n響應(yīng)處理1響應(yīng)處理n… …圖44 通信檢測流程圖2)通信模塊的控制該模塊在控制上設(shè)計(jì)兩個(gè)函數(shù),一個(gè)是發(fā)送函數(shù),另一個(gè)是接收函數(shù)。發(fā)送的過程:置E為1,使系統(tǒng)處于發(fā)送數(shù)據(jù)狀態(tài);將數(shù)據(jù)寫入串行通信緩沖區(qū)SBUF;等待,直到發(fā)送完畢,將E清0,返回接收狀態(tài)。這兩個(gè)子程序在其他函數(shù)需要進(jìn)行串口通信時(shí)調(diào)用即可實(shí)現(xiàn)與上位機(jī)的串行通信。其中:l CH: 時(shí)鐘停止位寄存器2的第7位12/24小時(shí)標(biāo)志CH=0 振蕩器工作允許bit7=1,12小時(shí)模式CH=1 振蕩器停止bit7=0,24小時(shí)模式l WP: 寫保護(hù)位寄存器2的第5位:AM/PM定義WP=0 寄存器數(shù)據(jù)能夠?qū)懭?AP=1 下午模式WP=1 寄存器數(shù)據(jù)不能寫入 AP=0 上午模式l TCS: 涓流充電選擇DS:二極管選擇位TCS=1010 使能涓流充電 DS=01 選擇一個(gè)二極管TCS=其它 禁止涓流充電 DS=10 選擇兩個(gè)二極管DS=00 或11, 即使TCS=1010, 充電功能也被禁止l RS: 涓流充電電阻選擇位表44 RS狀態(tài)標(biāo)志及含義RS位電阻典型值00無無01R12KΩ10R24KΩ11R38KΩ由于DS1302數(shù)據(jù)傳輸方式為串行移位輸入輸出。地址沒有讀操作。讀寫的核心是產(chǎn)生SCLK移位信號與移位,讀操作是將數(shù)據(jù)從DS1302的I/O口移入單片機(jī),寫操作是將數(shù)據(jù)從單片機(jī)移入DS1302時(shí)鐘芯片。完成時(shí)間的模塊軟件的設(shè)計(jì)。iodat=0x00。j0。odat7=IO_DATA。SCLK=1。SCLK=0。ddat=ad。i0。_nop_()。_nop_()。SCLK=0。 上位機(jī)軟件設(shè)計(jì) 上位機(jī)軟件開發(fā)編譯環(huán)境VC++是Microsoft(微軟)開發(fā)的在Windows平臺下構(gòu)建32位應(yīng)用程序的強(qiáng)大而又復(fù)雜的可視化開發(fā)平臺,它是世界上使用最多的開發(fā)工具之一。目前,在VC++發(fā)展歷程下已有了產(chǎn)生了多個(gè)版本。同時(shí),面向不同開發(fā)對象推出了多項(xiàng)產(chǎn)品。本系統(tǒng)上位機(jī)軟件使用VC++ 。系統(tǒng)的大多數(shù)輔助功能通過上位機(jī)軟件與系統(tǒng)設(shè)備通信控制完成。因此,此次設(shè)計(jì)的上位機(jī)軟件具有如下功能:1) 能夠與系統(tǒng)設(shè)備進(jìn)行建立通信連接。3) 能夠獲取系統(tǒng)設(shè)備當(dāng)前液位、系統(tǒng)時(shí)間、高低液位警戒線等參數(shù)。5) 能夠讀取系統(tǒng)設(shè)備記錄的數(shù)據(jù)。 上位機(jī)軟件的界面設(shè)計(jì)直觀、人性的界面設(shè)計(jì)能夠?yàn)檐浖褂谜邘砗芏嗟姆奖?,同時(shí)也能夠?yàn)槠淞粝律羁痰挠∠?。在滿足上文上位機(jī)軟件的要求下,設(shè)計(jì)了一個(gè)主窗口,四頁標(biāo)簽子窗口的設(shè)計(jì)。實(shí)時(shí)液位組框啟動按鈕按下后用以顯示實(shí)時(shí)液位。啟動按鈕啟動實(shí)時(shí)監(jiān)控,初始時(shí)不可用,待串口打開成功且聯(lián)機(jī)成功后變?yōu)榭捎脿顟B(tài)。聯(lián)機(jī)檢測按鈕該按鈕初始時(shí)不可用,在打開串口后為可用狀態(tài),用來與系統(tǒng)設(shè)備進(jìn)行連接,并顯示聯(lián)機(jī)狀態(tài)。用來讀取系統(tǒng)設(shè)備時(shí)間并顯示。用來向系統(tǒng)設(shè)備寫入PC機(jī)當(dāng)前時(shí)間。用來向系統(tǒng)寫入日期時(shí)間系列組合框選定時(shí)間。設(shè)定范圍為2000年1月1日0時(shí)0分至2099年12月31日23時(shí)59分之間。讀取系統(tǒng)設(shè)備當(dāng)前液位及顯示。讀取系統(tǒng)設(shè)備當(dāng)前高低液位警戒線及顯示。設(shè)置系統(tǒng)設(shè)備高低液位警戒線,設(shè)置數(shù)據(jù)由上下液位滑塊提供。下液位滑塊確定下液位參數(shù),設(shè)置范圍:小于當(dāng)前上液位滑塊參數(shù),大于0米。讀取系統(tǒng)設(shè)備記錄數(shù)據(jù)。保存按鈕保存接收數(shù)據(jù)為文本文件,默認(rèn)文件名為Rec**.txt。計(jì)算耗水量按鈕使用接收數(shù)據(jù)計(jì)算耗水量繪圖按鈕使用接收數(shù)據(jù)繪制圖形界面設(shè)計(jì)效果如圖45所示。Windows 這個(gè)多作業(yè)系統(tǒng)除了協(xié)調(diào)應(yīng)用程序的執(zhí)行、分配內(nèi)存、管理資源之外,它同時(shí)也是一個(gè)很大的服務(wù)中心,調(diào)用這個(gè)服務(wù)中心的各種服務(wù)(每一種服務(wù)就是一個(gè)函數(shù)),可以幫應(yīng)用程式達(dá)到開啟視窗、描繪圖形、使用周邊設(shè)備等目的,由于這些函數(shù)服務(wù)的對象是應(yīng)用程序(Application),簡稱API。微軟沒有為串口操作提供相應(yīng)直接的MFC(Microsoft Foundation Classes)類。MSComm是微軟公司提供的簡化Windows下串行通信編程的ActiveX控件,為應(yīng)用程序提供了通過串行口收發(fā)數(shù)據(jù)的簡便方法。它提供一系列標(biāo)準(zhǔn)通信命令的使用接口,利用它可以建立與串口的連接,并可以通過串口連接到其他通信設(shè)備,發(fā)送命令,交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤。下面就程序中使用的MSComm控件的主要屬性作以說明。2) RThreshold屬性功能:在MSComm控件設(shè)置CommEvent屬性為ComEvRecevie并產(chǎn)生OnComm事件之前,設(shè)置并返回要接受的字符數(shù)。當(dāng)指定字符設(shè)置為零,不產(chǎn)生OnComm事件。說明:設(shè)置時(shí)以字符串常量或字符串指針傳遞參數(shù)。4) InPut屬性功能:從接受區(qū)內(nèi)讀取數(shù)據(jù)。當(dāng)InputMode屬性為0時(shí),變量中含有String型數(shù)據(jù);當(dāng)InputMode屬性為1時(shí),變量中含有Byte型數(shù)據(jù);5) OutPut屬性功能:想緩沖區(qū)寫數(shù)據(jù),發(fā)送緩沖區(qū)當(dāng)前數(shù)據(jù)。發(fā)送二進(jìn)制數(shù)據(jù)時(shí),將Byte型數(shù)據(jù)放入VARIANT型變量中。串口的使用需要初始化,一般初始化需要以下幾個(gè)步驟:1) 選擇串口號2) 選擇輸入方式3) 設(shè)置輸入輸出緩沖區(qū)大小4) 設(shè)置波特率、奇偶校驗(yàn)、數(shù)據(jù)位數(shù)、停止位數(shù)參數(shù)5) 打開串口6) 設(shè)置接收緩沖區(qū)接收多少數(shù)據(jù)響應(yīng)OnComm事件7) 設(shè)置當(dāng)前接受區(qū)長度8) 先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)在串口初始化完成根據(jù)設(shè)置響應(yīng)OnComm事件,在OnComm事件處理函數(shù)中對數(shù)據(jù)進(jìn)行相應(yīng)的處理。這樣設(shè)計(jì)的優(yōu)點(diǎn)是結(jié)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1