單片機水流量檢測(測試)設(shè)計(共28頁)_第1頁
單片機水流量檢測(測試)設(shè)計(共28頁)_第2頁
單片機水流量檢測(測試)設(shè)計(共28頁)_第3頁
單片機水流量檢測(測試)設(shè)計(共28頁)_第4頁
單片機水流量檢測(測試)設(shè)計(共28頁)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機課程設(shè)計題 目 水流量顯示器 學 院 電子工程學院 專 業(yè) 自動化 班 級 學 號 姓 名 組 員 指導(dǎo)教師 2013年 5 月引言隨著現(xiàn)代社會的進步,經(jīng)濟的發(fā)展,人們對精神領(lǐng)域的追求更高,對生活水平的要求更高?,F(xiàn)代的家居生活是一種高品位、高質(zhì)量、個性化、智能化的方式。本系統(tǒng)就是基于STC89C52單片機控制的智能家居系統(tǒng),可以實際監(jiān)控室內(nèi)各種不同的家電設(shè)備,并能通過液晶屏動態(tài)顯示當前工作狀態(tài)。該系統(tǒng)與傳統(tǒng)的智能家居系統(tǒng)相比,具有功能多樣化、成本造價低等優(yōu)點,且符合當今社會智能、節(jié)能、環(huán)保的發(fā)展觀念,并在人們享受高品位、高質(zhì)量、個性化、智能化生活的同時提高人們的

2、節(jié)約意識。由于智能家居系統(tǒng)有眾多模塊,本課題只采取其中的水流量模塊進行單獨設(shè)計。關(guān)鍵詞: 單片機 水流量傳感器1. 任務(wù)設(shè)計當打開水龍頭時,根據(jù)單片機STC89C52的指令、水流量計傳感器采集水流量狀態(tài)。當單片機STC89C52掃描到水流量計傳感器的脈沖數(shù),經(jīng)過單片機STC89C52處理,計算出所采集的水流量后,通過液晶屏LCD1602能動態(tài)顯示當前水流量。2. 系統(tǒng)硬件電路的設(shè)計2.1主芯片STC89C522.1.1主要性能1)與MCS-52單片機產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲器2)1000次擦寫周期3)全靜態(tài)操作:0Hz33Hz 4)三級加密程序存儲器 5)32個可編程I/

3、O口線6)三個16位定時器/計數(shù)器八個中斷源7)全雙工UART串行通道8)低功耗空閑和掉電模式 9)掉電后中斷可喚醒 10)看門狗定時器11)雙數(shù)據(jù)指針12)掉電標識符 2.1.2芯片功能特性簡述:STC89C52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在線系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 STC89C52具有以

4、下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。8 位微控制器 8K字節(jié)在系統(tǒng)可編程 Flash。 圖2-1 單片機引腳 2.1.3引腳功能表2-1 STC89C52引腳介紹說明引腳功能介紹VCC+5V

5、電源電壓VSS電路接地端P0.0P0.78位漏極開路的雙向I/O通道P2.0P2.78位擬雙向I/O通道P3.0RXD,串行輸入口P3.1TXD,串行輸出口P3.2INT0,外部中斷輸入口P3.3INT1,外部中斷輸入口P3.4定時器/計數(shù)器外部事件脈沖輸入端P3.5定時器/計數(shù)器外部事件脈沖輸入端P3.6外部數(shù)據(jù)存貯器寫脈沖P3.7外部數(shù)據(jù)存貯器讀脈沖RST/VpD復(fù)位輸入信號ALE/PROG地址鎖存有效信號PSEN程序選通有效信號EA/VPP當保持TTL高電平,執(zhí)行內(nèi)部EPROM的指令,當使TTL為低電平, 從外部程序存貯器取出所有指令,在內(nèi)的EPROM編程時,此端為21編程電源輸入端XT

6、AL1內(nèi)部振蕩器外接晶振的一個輸入端XTAL2內(nèi)部振蕩器外接晶振的一個輸入端2.2時鐘電路單片機的最小系統(tǒng)有三部分組成,即電源,時鐘電路和復(fù)位電路。其中單片機的電源引腳與5V電源連通即可,而時鐘電路和復(fù)位電路還需接口擴展,這也是單片機的基本電路操作。時鐘電路用于產(chǎn)生單片機工作所需的時鐘信號,時序是指令執(zhí)行中各信號之間的相互關(guān)系。單片機本身就如同一個復(fù)雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應(yīng)在唯一的時鐘信號控制下嚴格地按時序進行工作。在STC89C52單片機內(nèi)部帶有時鐘電路,因此,只需要在片外通過XTAL1和XTAL2引腳接入定時控制元件(晶體振蕩器和電容),即可構(gòu)成一個穩(wěn)定的自激振

7、蕩器。在STC89C52芯片內(nèi)部有一個高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容。在單片機的XTAL1腳和XTAL2腳之間并接一個晶體振蕩器就構(gòu)成了內(nèi)部振蕩方式。STC89C52單片機內(nèi)部有一個高增益的反相放大器,XTAL1為內(nèi)部反相放大器的輸入端,XTAL2為內(nèi)部反相放大器的輸出端,在其兩端接上晶振后,就構(gòu)成了自激振蕩電路,并產(chǎn)生振蕩脈沖,振蕩電路輸出的脈沖信號的頻率就是晶振的固有頻率。在實際應(yīng)用中通常還需要在晶振的兩端和地之間各并上一個小電容。圖2-2 時鐘電路用晶振和電容構(gòu)成諧振電路。電容大小與晶振頻率和工作電壓有關(guān)。但電容的大小影響振蕩器的穩(wěn)定

8、性和起振的快速性,為了提高精度,本實驗板采用20pF的電容作為微調(diào)電容。在設(shè)計電路板時,晶振、電容等均應(yīng)盡可能靠近芯片,減小分布電容,以保證振蕩器振蕩的穩(wěn)定性。2.3復(fù)位電路復(fù)位是單片機的初始化操作,其目的是使CPU和系統(tǒng)中各部分處于一個確定的狀態(tài),并從這一狀態(tài)開始工作。系統(tǒng)上電路或死機后都要進行復(fù)位操作。單片機的RST引腳為復(fù)位引腳,振蕩電路正常工作后,RST端加上持續(xù)兩個機器周期的高電平后,單片機就被復(fù)位。復(fù)位電路有3種基本方式:上電復(fù)位,開關(guān)復(fù)位和看門狗復(fù)位。圖2-3 復(fù)位電路本課題采用按鍵開關(guān)復(fù)位是指通過接通按鈕開關(guān),使單片機進入復(fù)位狀態(tài)。開關(guān)復(fù)位電路一般不單獨使用。在應(yīng)用系統(tǒng)設(shè)計中,

9、若需使用開關(guān)復(fù)位電路,一般的做法是將開關(guān)復(fù)位與上電復(fù)位組合在一起形成組合復(fù)位電路,上電復(fù)位電路完成上電復(fù)位功能,開關(guān)復(fù)位電路完成人工復(fù)位。圖2-3中C7與R1構(gòu)成了上電復(fù)位電路。上電復(fù)位后,電源經(jīng)R1對C7充滿電源,C7等效于開路,RST端為低電平;單片機正常工作。按開關(guān)K1后,C7兩端電荷經(jīng)R1迅速放電,K1斷開后,由C7、R1及電源完成對單片機的復(fù)位操作。在上述電路中C7、R1按上電復(fù)位電路的設(shè)計而取值。 復(fù)位電路的作用非常重要,能否成功復(fù)位關(guān)系但單片機系統(tǒng)能否正常運行的問題。如果振蕩電路正常而單片機系統(tǒng)不能正常運行,其主要原因是單片機沒有完成正常復(fù)位,程序計數(shù)器的值沒有回0,特殊功能寄存

10、器沒有回到初始狀態(tài)。這時可以適當?shù)卣{(diào)整上電復(fù)位電路的阻容值,增加其充電時間常數(shù)來解決問題。2.4液晶顯示電路課題任務(wù)要求以LCD1602芯片顯示單片機處理后的溫度、水費和水流量,在此有必要詳盡的介紹LCD1602的特性和用法。2.4.1顯示特性 只需5V 電源電壓,低功耗、長壽命、高可靠性 內(nèi)置 192 種字符(160個 5×7 點陣字符和 32 個5×10 點陣字符) 具有 64 個字節(jié)的自定義字符 RAM 顯示方式:STN、半透、正顯 驅(qū)動方式:1/16DUTY,1/5BIAS 視角方向:6點 背光方式:底部 LED 通訊方式:4位或 8 位并口可選 標準的接口特性:適

11、配 MC51 和M6800 系列 MPU的操作時序。2.4.2引腳說明表2-2 液晶1602引腳說明管腳號 符號功 能1Vss電源地(GND)2Vdd電源電壓(+5V)3V0LCD驅(qū)動電壓(可調(diào)) 寄存器選擇輸入端,輸入MPU 選擇模塊內(nèi)部寄存器類型信號:RS=0,當MPU 進行寫模塊操作,指向指令寄存器;4RS當MPU 進行讀模塊操作,指向地址計數(shù)器;RS=1,無論MPU 讀操作還是寫操作,均指向數(shù)據(jù)寄存器5R/WR/W=0 讀操作;R/W=1 寫操作6E使能信號輸入端,輸入MPU 讀/寫模塊操作使能信號:4位方式通訊時,不使用DB0-DB37DB0數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)

12、傳送通道8DB1數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道9DB2數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道10DB3數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道11DB4數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道12DB5數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道13DB6數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道14DB7數(shù)據(jù)輸入/輸出口,MPU 與模塊之間的數(shù)據(jù)傳送通道15A背光的正端+5V16K 背光的負端0V16K 背光的負端0V2.4.3接口時序圖2-5 時序圖表2-3 液晶1602時序圖標號說明時序參數(shù)符號極限值單位測試條件最小值典型

13、值最大值E信號周期tc400ns引腳EE脈沖寬度Tpm150nsE上升沿/下降沿時間Tr,tf25ns地址建立時間Tsp130ns引腳E、RS、RW地址保持時間Thd110ns數(shù)據(jù)建立時間(讀操作)Td100ns引腳DB0DB7數(shù)據(jù)保持時間(讀操作)Thd220ns數(shù)據(jù)建立時間(寫操作)Tsp240ns數(shù)據(jù)保持時間(寫操作)Thd210ns程序?qū)崿F(xiàn)如下:/*寫指令程序*/void wr_com(unsigned char com) /寫指令 delay(1); /延時1ms RS=0; /寫命令設(shè)置 RW=0; /并行數(shù)據(jù)的讀寫 EN=0; /使能為0 P2=com; /輸入命令 delay(

14、1); /延時1ms EN=1; /使能為1 delay(1); /延時1ms EN=0; /使能為0 /*寫數(shù)據(jù)程序*/void wr_dat(unsigned char dat)/ 寫數(shù)據(jù) delay(1); /延時1ms RS=1; /寫數(shù)據(jù)設(shè)置 RW=0; /并行數(shù)據(jù)的讀寫 EN=0; /使能為0 P2=dat; /輸入數(shù)據(jù) delay(1); /延時1ms EN=1; /使能為1 delay(1); /延時1ms EN=0; /使能為02.4.4初始化指令:表2-4 清屏指令指令功能指令編碼執(zhí)行時間/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏000000000

15、11.64功能:清除液晶顯示器,即將DDRAM的內(nèi)容全部填入"空白"的ASCII碼20H; 光標歸位,即將光標撤回液晶顯示屏的左上方;將地址計數(shù)器(AC)的值設(shè)為0。表2-5 光標歸位指令指令功能指令編碼執(zhí)行時間/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0光標歸位000000001X1.64功能:把光標撤回到顯示器的左上方; 把地址計數(shù)器(AC)的值設(shè)置為0; 保持DDRAM的內(nèi)容不變表2-6 進入模式設(shè)置指令指令功能指令編碼執(zhí)行時間/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0進入模式設(shè)置00000001I/DS1.64功能:設(shè)定每次

16、定入1位數(shù)據(jù)后光標的移位方向,并且設(shè)定每次寫入的一個字符是否移動。表2-7 顯示開關(guān)控制指令指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0顯示開關(guān)控制0000001DCB功能:控制顯示器開/關(guān)、光標顯示/關(guān)閉以及光標是否閃爍。表2-8 設(shè)定顯示屏或光標移動方向指令指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0設(shè)定顯示屏或光標移動方向00000/功能:使光標移位或使整個顯示屏幕移位。表2-9 功能設(shè)定指令指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0功能設(shè)定0000/功能:設(shè)定

17、數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下:表2-10 設(shè)定CGRAM地址指令指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0設(shè)定CGRAM地址000CGRAM的地址(位)功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。表2-11 設(shè)定DDRAM地址指令指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0設(shè)定RAM地址00CGRAM的地址(位)40功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。 (注意這里我們送地址的時候應(yīng)該是0x80+Address,這也是前面說到寫地址命令的時候要加上0x80的原因) 表2-12

18、讀取忙信號或AC地址指令指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0讀取忙碌信號或AC地址0FBAC內(nèi)容(位)40功能:讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令;當BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令;讀取地址計數(shù)器(AC)的內(nèi)容。表2-13 數(shù)據(jù)寫入DDRAM或CGRAM指令一覽指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0寫數(shù)據(jù)到DDRAM或CGRAM10要寫的數(shù)據(jù)D7D040功能:將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符;將使用者自

19、己設(shè)計的圖形存入CGRAM。表2-14 從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽指令功能指令編碼執(zhí)行時間/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0從CGRAM或DDRAM中讀數(shù)據(jù)11要讀的數(shù)據(jù)D7D040功能:讀取DDRAM或CGRAM中的內(nèi)容。單片機和LCD液晶顯示器的連接圖2-6 液晶顯示電路2.5水流量測量電路課題任務(wù)中最重要的是水流量的測量。通過水流量傳感器的數(shù)據(jù)采集,根據(jù)商家的水流量傳感器的參數(shù)可以得出單片機在運算時的數(shù)據(jù)。水流量傳感器參數(shù):環(huán)境溫度:-1055流量計算在流量為:0.20.4L/Min時,1L=2100次;0.50.8L/Min時,1L=2280

20、次;0.91.2L/Min時,1L=2350次;1.22.5L/Min時,1L=2460次;(脈沖次數(shù)在流量變化時有一定程度的變動)接線方法白線:信號輸出;黑線:電源負(也可按客戶要求定做)測量精度:±5%(在流量穩(wěn)定的系統(tǒng),精度可達±2%)工作電壓:DC024V工作壓力:100PSI(7kg/cm)耐濕性能:在環(huán)境濕度為90%以下時性能保持穩(wěn)定壽命測試:本產(chǎn)品用進口干簧管作感應(yīng)元件,在負荷小于24V 1mA前提下, 開關(guān)壽命大于3億次。 圖2-15 水流量測量電路 2.6按鍵控制電路課題設(shè)計之初,要求基本實現(xiàn)的功能有水流量的控制、水價的改變。由于液晶顯示屏不能夠完全實現(xiàn)其

21、顯示,故又增加了換頁功能,共三個控制鍵。圖2-16 按鍵電路3. 軟件系統(tǒng)的設(shè)計3.1軟件設(shè)計總流程程序要求液晶顯示有當前水流量,總流量。水流量的測量由開關(guān)控制。由于LCD1602的顯示屏幕有限,所以又把程序設(shè)計成可以翻頁的形式。翻頁也用開關(guān)控制。由于在兩個界面里面都顯示水溫,故在顯示程序里加入測量水溫程序也未嘗不可。整個程序中結(jié)構(gòu)較為簡單,但其中也有幾個重要而且比較費腦筋的子程序,包括水測量程序、水流量數(shù)據(jù)的計算轉(zhuǎn)換程序。在程序中可以分為2個主要模塊:水流量模塊,顯示模塊如圖3-1所示:圖3-1 總流程圖3.2水流量程序模塊水流量的測量主要依靠對得到的頻率處理,由流量計在一段時間下產(chǎn)生高電平

22、的個數(shù)決定,即Q(流量)=F(頻率)/R(商家設(shè)定值)所以只要在單片機中設(shè)定一定的時間,并在該時間之下計算出得到的高電平即可。在本程序中STC89C52的兩個定時器T0為計數(shù)狀態(tài),T1 為計時狀態(tài),這樣方可測量流量。3.2.1水流量的讀取程序中斷程序運行的時間到,就可以讀取計數(shù)器中的數(shù)值,將下數(shù)值讀出后把計數(shù)器賦值為0,等待下一次的取出,然后進入對讀出數(shù)據(jù)的處理程序。如圖3-4所示:圖3-2 水流量數(shù)據(jù)的處理程序在預(yù)定時間到,即已經(jīng)取出了定時器的數(shù)值。我們計算的水流量最大是以每噸來計算并顯示的,故一個整形或長整型的數(shù)不夠,故先把它放在了一個int變量的存儲空間內(nèi),做水流量的前三位,在定義一個長

23、整型的數(shù),把它作為水流量的后六位,這樣計算起來也比較容易,數(shù)據(jù)也不會起沖突,也是為將要計算水價做準備。設(shè)定該水流量的最大計數(shù)為250噸,超過了定值,則會從0開始。如圖3-5所示:圖3-3 水流量數(shù)據(jù)處理流程圖3.3顯示程序在程序中只是計算出流量值,溫度值以及和資源分配的情況,一些字母的顯示,都要另加,這樣才能盡善盡美的表達出顯示出來的意思。所以在主程序中不必再測量溫度。在第一頁主要顯示的是總水流量的后三位,最后以t結(jié)尾。第二頁主要當前水流量的前三位,最后以kg結(jié)尾。4. 總結(jié)在為期兩周的實訓(xùn)中,我學到了很多,在整個過程中,包括最開始的課題設(shè)計、焊接、程序編寫,到最后的調(diào)試我都參與其中??梢赃@么

24、說,在這兩個星期中學到的東西比我兩個月學到的還要多。在最開始設(shè)計課題時,查了很多資料,經(jīng)過組員的討論,最終確定了現(xiàn)在這個方案。在焊接的過程中,基本上沒出什么問題,一切都很順利的進行著。在編寫程序以及調(diào)試的過程中出現(xiàn)了一些問題,比如:當有水流過時,傳感器多計數(shù)的脈沖達不到我們設(shè)計時的要求,所以經(jīng)過了多次修改,最終實現(xiàn)了功能。在整個過程中要特別感謝丁文斌老師的指導(dǎo),沒有他耐心的指導(dǎo),我們是不會做的這么好的。參考文獻1 張菁,基于單片機水流量控制系統(tǒng)方案的研究。2007(9)。2 樓然苗,51系列單片機設(shè)計實例. 北京航空航天大學出版社,2003。3 蘇鐵力、關(guān)振海等.傳感器及其接口技術(shù)M.中國石化

25、出版社,1998.4 肖晴,液晶顯示流量的控制,2005(2)。5 譚浩強,C程序設(shè)計(第二版). 清華大學出版社. 1999年12月第2版附件1. 原理圖附件2 實物圖附件3 仿真圖附件4 元器件清單元器件名稱型號數(shù)量(個)單片機STC89C511水流傳感器探頭DS18B201液晶顯示器LCD16021晶振11.0596MHZ1電阻500歐2電阻1K1電阻4.7K1電阻10K1瓷片電容22pF2瓷片電容0.1uF2電解電容20uF2電解電容100uF1發(fā)光二極管紅色1發(fā)光二極管黃色2發(fā)光二極管綠色1電源接口5V1撥頭開關(guān)1按鍵3總計255. 程序#include<reg51.h>

26、#define uchar unsigned char#define uint unsigned intsbit DQ=P10; /ds18b20與單片機連接口sbit RS=P11;sbit RW=P12;sbit EN=P13;sbit p37=P36; /流量正常運行接口sbit p36=P37; /溫度報警接口sbit p14=P14; /功能按鍵接口sbit p15=P15;sbit p16=P16;uchar code table=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x20; /0-9數(shù)字和顯示無 unsigned

27、long int a;float f,zong;uint tvalue;uchar n1,n2,n3,n4,n5,n6,n7,n8,n9;uchar tflag,d,g,kai,j,j1,j2,b; /*延時子程序*/void delay(uint z) int x,y; for(x=z;x>0;x-)for(y=120;y>0;y-); /*延時1us子程序*/ void delay_18B20(unsigned int i)/延時1微秒 while(i-); /*液晶顯示寫指令*/ void wr_com(unsigned char com) /寫指令 delay(1); /延

28、時1ms RS=0; /寫命令設(shè)置 RW=0; /并行數(shù)據(jù)的讀寫 EN=0; /使能為0 P2=com; /輸入命令 delay(1); /延時1ms EN=1; /使能為1 delay(1); /延時1ms EN=0; /使能為0 /*液晶顯示寫數(shù)據(jù)*/void wr_dat(unsigned char dat)/寫數(shù)據(jù) delay(1); /延時1ms RS=1; /寫數(shù)據(jù)設(shè)置 RW=0; /并行數(shù)據(jù)的讀寫 EN=0; /使能為0 P2=dat; /輸入數(shù)據(jù) delay(1); /延時1ms EN=1; /使能為1 delay(1); /延時1ms EN=0; /使能為0/*水流量計算程序

29、與數(shù)據(jù)轉(zhuǎn)換程序*/void loop () uint zong1; if(g=0) /判斷時間是否到 zong=(b/0.1)+zong; /得出總流量的后三位 g=1; /將標志為為1if(zong>=1000) /判斷總流量后三位是否大于1000a+; /總流量前六位加1zong=0; /后三位清零 if(a>=) /總流量前六位大于1百萬a=0; /總流量前六位清零zong1=(int)zong ; /總流量后三位轉(zhuǎn)換為整形 n9=a/; /總流量9位全部分配n8=a%/10000;n7=a%10000/1000;n6=a%1000/100;n5=a%100/10;n4=a%

30、10;n3=zong1%1000/100;n2=zong1%100/10;n1=zong1%10; /*流量程序*/ void liuliang() while(d>=2) /時間到? d=0; /d清零 b=TH0*256+TL0; /讀取頻率 TH0=0x00; /計數(shù)器清零 TL0=0x00; g=0; /時間標志位 loop(); /水流量計算程序與數(shù)據(jù)轉(zhuǎn)換程序 /*第一頁顯示子程序*/ void display1() wr_dat(0x3a); /顯示: wr_com(0x80+0x40); /水流量(t)顯示 wr_dat(0x46); wr_dat(0x4c); wr_da

31、t(0x4f); wr_dat(0x57); wr_dat(0x3a); wr_dat(0x20); wr_dat(tablen9); wr_dat(tablen8); wr_dat(tablen7); wr_dat(0x2e); /顯示小數(shù)點 wr_dat(tablen6); wr_dat(tablen5); wr_dat(tablen4); wr_dat(0x20); /顯示小數(shù)點 wr_dat(0x74); wr_dat(0x20); /*第二頁顯示子程序*/ void display2() wr_dat(0x3a); /顯示: wr_dat(tablej2);wr_dat(0x2e);wr_dat(tablej1);wr_dat(0x5c);wr_dat(0x2f);wr_dat(0x74);wr_dat(0x20);wr_com(0x80+0x40+5);/水流量(kg)顯示wr_dat(0x20);wr_dat(0x20);wr_dat(tablen4);wr_dat(0x2e); /顯示小數(shù)點 wr_dat(tablen3);wr_dat(tablen2);wr_dat(tablen1);wr_dat(0x20);wr_dat(0x6b);wr_dat(0x67); /*控制流量測量的開關(guān)程序*/ void kaiguan1() if(p1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論