【正文】
可以靈敏地反應(yīng)水滴滴下。 步進(jìn)電機(jī)驅(qū)動(dòng)和控制 如圖 5 圖 5 聲光報(bào)警 當(dāng)檢測(cè)到液面低于 3cm 時(shí)由單片機(jī)采集到報(bào)警信號(hào),由報(bào)警芯片發(fā)出聲光報(bào)警。 如圖 6 3 41B10111E891D12131F2 5 1035 1045 10178 05 0188 05 0281 21A5 61C5P 1 .7 91 0k81 0k101 0k121 0k131 0k111 0k141k195k22242325502650275067151k205k215k161kP 1 .6P 1 .5 abfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpA1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9A1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9 4 .7 k 4 .7 k 4 .7 k 4 .7 k 4 .7 k 4 .7 k 4 .7 k 4 .7 k4 .7 kv c cv c c v c c v c c v c c v c c v c c v c cv c cv c c12456amp。 A123amp。A1 0 k1 0 k 1 0 k 1 0 kV C C V C C V C C V C C162738495J17 4 l S 2 17 4 L S 2 174LS0016416474LS21 主 控 站 1 號(hào) 從站 第 4 頁(yè) 共 18 頁(yè) 圖 6 四、 系統(tǒng)軟件工作流程 如圖 7 到 圖 12 軟件設(shè)計(jì): 軟件部分參考流程圖,這里主要講述一下軟件編寫(xiě)過(guò)程中的幾個(gè)細(xì)節(jié)部分。在每次傳感器送來(lái)中斷的時(shí)候調(diào)用“傳感測(cè)量”子程序,在該子程序中,我們?cè)谌‘?dāng)前觸發(fā)時(shí)間時(shí),先把上一個(gè)脈沖發(fā)生的時(shí)間保存在“歷史寄存器”中,然后再更新“當(dāng)前寄存器”的值,即取當(dāng)前脈沖的 發(fā)生時(shí)間。 歷史寄存器 當(dāng)前寄存器 基準(zhǔn)時(shí)鐘 中斷前: 中斷時(shí): 注:箭頭方向?yàn)橹袛鄷r(shí)的賦值方向 圖 7 由于基準(zhǔn)時(shí)鐘是以 10 毫秒為最小單位的,而對(duì)于頻率范圍在 20Hz~150Hz 的脈沖而言,因?yàn)槲覀冊(cè)诤筮叺那蟮嗡僦幸玫?10 毫秒單位值,而水滴的下落并不能保證絕對(duì)的規(guī)則,經(jīng)測(cè)試發(fā)現(xiàn),每一次求差后的值總有幾個(gè)單位毫秒的變動(dòng),這個(gè)變動(dòng)就導(dǎo)致了最終運(yùn)算出來(lái)的滴速值的大幅度變化,后來(lái)驚 觀察發(fā)現(xiàn)這種誤差可以歸為周期性誤差,所以為了消除這個(gè)誤差,我們不是簡(jiǎn)單地只取一個(gè)差值,相反,我們是取了 10 個(gè)差值,然后再求平均值,這樣處理的最大一個(gè)好處是可以使周期性誤差的正、負(fù)偏差互相抵消,在很大程度上消除上述誤差。所以在本系統(tǒng)中對(duì)于建立一個(gè)科學(xué)合理的系統(tǒng)模型是很有必要的。因?yàn)槊繖z測(cè)到一個(gè)傳感信號(hào),我們就把設(shè)定值和當(dāng)前值進(jìn)行比較,這樣不僅提高了設(shè)備的響應(yīng)速度,而且由于我們這個(gè)系統(tǒng)n1 n (n1) (n+1) 模擬從 站 第 5 頁(yè) 共 18 頁(yè) 的基準(zhǔn)時(shí)鐘是以 10 毫秒為單位了,因?yàn)槲覀兡芊直娴?10 毫秒的數(shù)量級(jí),可以 使當(dāng)前值非常接近我們所設(shè)定的設(shè)定值。(圖 12) 運(yùn)算過(guò)程 :因?yàn)槲覀兿到y(tǒng)的基準(zhǔn)時(shí)鐘是以 10 毫秒為單位了,雖然加大了系統(tǒng)的精度,但是卻給系統(tǒng)的數(shù)值運(yùn)算帶來(lái)了麻煩,直接用四則運(yùn)算(特別是乘除的運(yùn)算)很容易帶來(lái)無(wú)法避免的運(yùn)算誤差,即在運(yùn)算是因?yàn)檫\(yùn)算位數(shù)的限制而帶來(lái)的數(shù)據(jù)尾數(shù)的丟失。而且查表法的結(jié)果便于以后系統(tǒng)誤差的自我校正,因?yàn)樗4媪艘粋€(gè)恒值。通過(guò)對(duì)數(shù)據(jù)的觀察,我們發(fā)現(xiàn)雖然每個(gè)時(shí)間量有兩個(gè)字節(jié),但是在秒字節(jié)的單元里,總共只能出現(xiàn) 4 種取值,即 2 和 3 以及 0 ,所以我們可以以這 4 個(gè)值為標(biāo)量對(duì)表格的數(shù)據(jù)進(jìn)行劃分,由 于有了秒字節(jié)單元來(lái)做區(qū)分,我們只要在表格中寫(xiě)入 10 毫秒字節(jié)單元的值就行了,通過(guò)綜合處理,在保證精度的基礎(chǔ)上,我們所建立的表格的字節(jié)數(shù)為 100 多個(gè),這樣不僅滿(mǎn)足了 8 位單片機(jī)的查表范圍,而且大大了節(jié)省了內(nèi)存,有利于系統(tǒng)資源的優(yōu)化分配。通信協(xié)議如下:先發(fā)送握手信號(hào),然后發(fā)送被呼叫的從機(jī)號(hào),每個(gè)從機(jī)在接收到地址時(shí)跟自身的地址進(jìn)行比較,如果不是被呼叫機(jī),則關(guān)閉 通信鏈路;如果是則發(fā)送響應(yīng)信號(hào)。數(shù)據(jù)包格式如下: 程序流程圖 操作碼 操作數(shù) 第 6 頁(yè) 共 18 頁(yè) 圖 8 第 7 頁(yè) 共 18 頁(yè) 傳感測(cè)量: 時(shí)鐘: 圖 9 圖 10 第 8 頁(yè) 共 18 頁(yè) 鍵盤(pán): 步進(jìn)電機(jī)控制: 圖 11 圖 12 第 9 頁(yè) 共 18 頁(yè) 源程序 : 時(shí)間基準(zhǔn)緩沖區(qū):秒 55h 秒 56h 鍵盤(pán)設(shè)置緩沖區(qū):秒 57h 秒 58h 傳感測(cè)量緩沖區(qū):前次 — 秒 51h 52h 當(dāng)前 — 秒 53h 54h 差值 — 秒 4fh 秒 50h 最終顯示緩沖區(qū):選擇值: 54h 測(cè)定值 5ah 5bh 5ch 設(shè)置值 5dh 5eh 5fh R4 用于步進(jìn)電機(jī)的步進(jìn)記憶 0000h ajmp main 0003h ajmp jpint 。t0 0013h ajmp cgint 。設(shè)置堆棧 mov 41h,00h mov 42h,00h