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

正文內(nèi)容

基于單片機(jī)的水流量測(cè)試畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-04-21 12:44 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 分別是sw2設(shè)定水流量上限,sw3增加上限值,sw4減少上限值。圖210 按鍵電路 報(bào)警電路 由于設(shè)定了水流量上限值,因此需要設(shè)計(jì)報(bào)警電路,超過設(shè)定值時(shí)進(jìn)行報(bào)警。,電路主要由一個(gè)電阻,一個(gè)NPN三極管,一個(gè)蜂鳴器組成,接在89C51的P21口上。工作原理:NPN三極管的基極由IO口控制,P21高電平時(shí)三極管導(dǎo)通,蜂鳴器與電源的通路接通,蜂鳴器報(bào)警,P21低電平時(shí)三極管截止,蜂鳴器的通路斷開不報(bào)警。圖211 報(bào)警電路 繼電器控制電路單片機(jī)是一個(gè)弱電器件,一般情況下它們大都工作在5V甚至更低。驅(qū)動(dòng)電流在mA級(jí)以下。而要把它用于一些大功率場(chǎng)合,比如控制電動(dòng)機(jī),顯然是不行的。所以,就要有一個(gè)環(huán)節(jié)來銜接,這個(gè)環(huán)節(jié)就是所謂的功率驅(qū)動(dòng)。繼電器驅(qū)動(dòng)就是一個(gè)典型的、簡(jiǎn)單的功率驅(qū)動(dòng)環(huán)節(jié)。在這里,繼電器驅(qū)動(dòng)含有兩個(gè)意思:一是對(duì)繼電器進(jìn)行驅(qū)動(dòng),因?yàn)槔^電器本身對(duì)于單片機(jī)來說就是一個(gè)功率器件;還有就是繼電器去驅(qū)動(dòng)其他負(fù)載,比如繼電器可以驅(qū)動(dòng)中間繼電器,可以直接驅(qū)動(dòng)接觸器,所以,繼電器驅(qū)動(dòng)就是單片機(jī)與其他大功率負(fù)載接口?;竟δ埽和〝嗨y。當(dāng)單片機(jī)的這個(gè)引腳輸出低電平的時(shí)候,就像繼電器電路的輸出引腳在打開三極管三極管,水就從上往下流,如果是輸出高電平,繼電器電路的輸出引腳就開始關(guān)三極管,繼電器因?yàn)橐驗(yàn)闆]有水流下來,就會(huì)停止。圖212 繼電器控制電路 小結(jié)電路的設(shè)計(jì),首先是把預(yù)定功能設(shè)定好,再看運(yùn)行這些需要什么樣的硬件,然后實(shí)施硬件的操作。各個(gè)模塊都要有合理的設(shè)計(jì)。仔細(xì)認(rèn)真是設(shè)計(jì)硬件電路的基本,一步走錯(cuò),整個(gè)設(shè)計(jì)就毀于一旦。在設(shè)計(jì)本課題時(shí),電路設(shè)計(jì)規(guī)則一定要注意,還有多多借鑒網(wǎng)絡(luò)上的眾多設(shè)計(jì)者分享的經(jīng)驗(yàn),益于自己的設(shè)計(jì),總之一切為課題的成功做準(zhǔn)備。第三章 軟件系統(tǒng)的設(shè)計(jì) 軟件設(shè)計(jì)總流程 程序要求液晶顯示有水溫和當(dāng)前水流量,同時(shí)具備設(shè)置水流量上限的功能。由于LCD1602的顯示屏幕有限,所以第一頁(yè)顯示水溫和水流量,第二頁(yè)顯示水流量上限。整個(gè)程序中結(jié)構(gòu)較為簡(jiǎn)單,但其中也有幾個(gè)重要而且比較費(fèi)腦筋的子程序,包括水測(cè)量程序、水流量上線的設(shè)定與調(diào)整、溫度數(shù)據(jù)轉(zhuǎn)換程序。界面1程序通斷水閥程序界面2程序界面開關(guān)流量測(cè)量程序溫度測(cè)量程序水流量控制開關(guān)程序系統(tǒng)初始化 在程序中可以分為3個(gè)主要模塊:水流量模塊,溫度模塊,顯示模塊。圖31 總流程圖 溫度程序模塊由溫度傳感器DS18B20采集的溫度數(shù)據(jù)讀取后溫度的低位和高位分別存在主芯片SCT89C52存儲(chǔ)器中。其中依定傳感器的設(shè)計(jì),讀出的數(shù)據(jù)最高位為0時(shí)溫度為正,溫度為1時(shí),溫度是負(fù)數(shù)。是以對(duì)溫度數(shù)據(jù)處理,將溫度數(shù)據(jù)高位和低位整合在一起,在判斷溫度的正負(fù)即可。如圖32所示:溫度標(biāo)志位為0返回?cái)?shù)據(jù)取反加一溫度標(biāo)志位為1溫度數(shù)據(jù)低八位和高八位合并讀取溫度跳過讀序列號(hào)跳過讀序列號(hào) 等待調(diào)用DS18B20復(fù)位跳過讀序列號(hào)DS18B20復(fù)位啟動(dòng)溫度轉(zhuǎn)換溫度為負(fù) NO YES圖32 溫度測(cè)量流程圖將已處理好的溫度數(shù)據(jù)的首先判斷它的正負(fù),然后再去運(yùn)行其他的代碼。在這里,程序還設(shè)定了溫度報(bào)警。溫度報(bào)警本來可以在DS18B20中對(duì)芯片進(jìn)行設(shè)置,但考慮到對(duì)芯片的熟悉度不夠,容易出錯(cuò),而在程序中設(shè)定比較容易理解,寫起來也不會(huì)太難。還有實(shí)際水的溫度不可能超過100度,所以測(cè)得100度以上的溫度值就會(huì)顯得多余。再就是美觀上的設(shè)定,測(cè)得的溫度在為個(gè)位時(shí),十位為0就會(huì)看起來不太美觀,只要把十位設(shè)定看不見即可。溫度各位分配資源十位不顯示十位為0溫度標(biāo)志為1返回百位為0紅燈亮溫度40攝氏度顯示“”號(hào)紅燈亮等待調(diào)用 NO YES NO YES YES NO YES圖33 數(shù)字不顯示流程圖部分溫度程序如下:ds1820 復(fù)位子程序/*****************ds1820 復(fù)位子程序******************/void ds1820rst(){unsigned char x=0。DQ = 1。 //DQ 復(fù)位delay_18B20(4)。 //延時(shí)DQ = 0。 //DQ 拉低delay_18B20(100)。 //精確延時(shí)大于 480usDQ = 1。 //拉高delay_18B20(40)。 //延時(shí)}ds1820 讀數(shù)據(jù)子程序/*************ds1820 讀數(shù)據(jù)子程序*******************/uchar ds1820rd() //讀數(shù)據(jù){unsigned char i=0。unsigned char dat=0。for (i=8。i0。i) //讀溫度 2 進(jìn)制 8 次{DQ = 0。 //給脈沖信號(hào)dat=1。 //將溫度數(shù)據(jù)轉(zhuǎn)移到 datDQ = 1。 //給脈沖信號(hào)if(DQ) //數(shù)據(jù)轉(zhuǎn)換dat|=0x80。delay_18B20(10)。}return(dat)。}ds1820 寫數(shù)據(jù)子程序/*******************ds1820 寫數(shù)據(jù)子程序******************/void ds1820wr(uchar wdata){unsigned char i=0。for (i=8。 i0。 i) //寫數(shù)據(jù) 2 進(jìn)制 8 次{DQ = 0。 //給脈沖信號(hào)DQ = wdataamp。0x01。 //數(shù)據(jù)傳送delay_18B20(10)。 //延時(shí)DQ = 1。 //給脈沖信號(hào)wdata=1。 //數(shù)據(jù)移位} } 水流量程序模塊水流量的測(cè)量主要依靠對(duì)得到的頻率處理,由流量計(jì)在一段時(shí)間下產(chǎn)生高電平的個(gè)數(shù)決定,即Q(流量)=F(頻率)/R(商家設(shè)定值)所以只要在單片機(jī)中設(shè)定一定的時(shí)間,并在該時(shí)間之下計(jì)算出得到的高電平即可。在本程序中STC89C52的兩個(gè)定時(shí)器T0為計(jì)數(shù)狀態(tài),T1為計(jì)時(shí)狀態(tài),這樣方可測(cè)量流量。 中斷程序運(yùn)行的時(shí)間到,就可以讀取計(jì)數(shù)器中的數(shù)值,將下數(shù)值讀出后把計(jì)數(shù)器賦值為0,等待下一次的取出,然后進(jìn)入對(duì)讀出數(shù)據(jù)的處理程序。 如圖34所示:等待調(diào)用中斷時(shí)間到 NO YES讀取頻率定時(shí)器賦值置時(shí)間標(biāo)志位水流量計(jì)算程序和轉(zhuǎn)換程序返回圖34 水流量測(cè)量流程圖 在預(yù)定時(shí)間到,即已經(jīng)取出了定時(shí)器的數(shù)值。我們計(jì)算的水流量最大是以每噸來計(jì)算并顯示的,故一個(gè)整形或長(zhǎng)整型的數(shù)不夠,故先把它放在了一個(gè)int變量的存儲(chǔ)空間內(nèi),做水流量的前三位,在定義一個(gè)長(zhǎng)整型的數(shù),把它作為水流量的后六位,這樣計(jì)算起來也比較容易,數(shù)據(jù)也不會(huì)起沖突,也是為將要計(jì)算水價(jià)做準(zhǔn)備。設(shè)定該水流量的最大計(jì)數(shù)為250噸,超過了定值,則會(huì)從0開始。如圖35所示:等待調(diào)用各個(gè)位置分配存儲(chǔ)空間流量計(jì)算清零流量后六位=25萬流量后六位加1流量前三位=1000計(jì)算流量前三位定時(shí)到 NO YES NO YES NO YES返回圖35 水流量數(shù)據(jù)處理流程圖 顯示程序 在程序中只是計(jì)算出流量值,溫度值以及和資源分配的情況,一些字母的顯示,都要另加,這樣才能盡善盡美的表達(dá)出顯示出來的意思。在顯示程序中加入了溫度的測(cè)量,所以在主程序中不必再測(cè)量溫度。在第一頁(yè)主要顯示的是溫度和水流量的后六位,最后溫度以℃結(jié)尾,水流量以L結(jié)尾。第二頁(yè)主要水流量設(shè)定的上限值,最后也以L結(jié)尾。顯示程序的流程圖如圖3圖37所示:打開水閥調(diào)整水流量上限值設(shè)定水流量上限值關(guān)閉水閥返回第一頁(yè)等待調(diào)用返回水流量顯示水流量測(cè)量溫度顯示溫度測(cè)量等待調(diào)用 圖36 第一頁(yè)顯示流程圖 圖37 第二頁(yè)顯示流程圖部分實(shí)現(xiàn)程序如下:寫指令程序/************************寫指令程序************************/void wr_(unsigned char ) //寫指令{delay(1)。 //延時(shí) 1msRS=0。 //寫命令設(shè)置RW=0。 //并行數(shù)據(jù)的讀寫EN=0。 //使能為 0P2=。 //輸入命令delay(1)。 //延時(shí) 1msEN=1。 //使能為 1delay(1)。 //延時(shí) 1msEN=0。 //使能為 0}/**********************寫數(shù)據(jù)程序***********************/void wr_dat(unsigned char dat)// 寫數(shù)據(jù){delay(1)。 //延時(shí) 1msRS=1。 //寫數(shù)據(jù)設(shè)置RW=0。 //并行數(shù)據(jù)的讀寫EN=0。 //使能為 0P2=dat。 //輸入數(shù)據(jù)delay(1)。 //延時(shí) 1msEN=1。 //使能為 1delay(1)。 //延時(shí) 1msEN=0。 //使能為 0} 小結(jié)本課題的程序全部用C 語言來編寫。在編寫過程中,會(huì)借鑒網(wǎng)絡(luò)的編程資料,會(huì)將整個(gè)程序進(jìn)行
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1