国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

某型樓層顯示器的軟硬件設(shè)計(jì)

2018-01-15 10:14:54呂志龍
科學(xué)與財(cái)富 2018年34期
關(guān)鍵詞:單片機(jī)消防

呂志龍

摘要:從RS422串口發(fā)送的廣播信息中截取有效信息,并以LED指示火警信息。

關(guān)鍵詞:消防 樓層顯示器 單片機(jī)

一、功能要求及總體設(shè)計(jì)

某型火災(zāi)主機(jī)預(yù)留有一個(gè)RS422A全雙工異步串口,并開放通訊協(xié)議。通過該串口向外廣播所有操作信息及探測(cè)器的故障、火警信息。本次設(shè)計(jì)的樓層顯示器(以下簡(jiǎn)稱“樓顯”),即是為了從此廣播信息中截取有效火警信息,并發(fā)出聲光提示。

樓顯應(yīng)具有以下功能:最多32臺(tái)樓顯通過RS422串口與火警主機(jī)組成主從式網(wǎng)絡(luò)。在樓顯群中唯一指定一臺(tái)與火警主機(jī)進(jìn)行全雙工通訊;其余樓顯僅單工接收。采用異步通訊方式,波特率可調(diào)。采用一個(gè)8位二進(jìn)制撥碼開關(guān):其低五位設(shè)定網(wǎng)絡(luò)地址,第六、第七位設(shè)定波特率,第八位設(shè)定單/雙工通訊方式。樓顯應(yīng)能根據(jù)內(nèi)置的工程數(shù)據(jù),從廣播信息中自行截取本樓層的火警信息。樓顯應(yīng)有監(jiān)視、報(bào)警等不同狀態(tài)及相應(yīng)指示。報(bào)警狀態(tài)優(yōu)先顯示。報(bào)警狀態(tài)應(yīng)有聲光提示,用戶可消音;新發(fā)報(bào)警應(yīng)能再次鳴響。樓顯應(yīng)能隨火警主機(jī)同步復(fù)位。授權(quán)用戶也可手動(dòng)復(fù)位。樓顯死機(jī)時(shí)應(yīng)能自動(dòng)重啟。監(jiān)視狀態(tài)下可自檢,自檢結(jié)束后應(yīng)自動(dòng)回到監(jiān)視狀態(tài)。采用64個(gè)LED顯示火警位置。振蕩頻率選定為11.0592MHz。

二、硬件設(shè)計(jì)

1 主控及存儲(chǔ)單元

采用89C52作為CPU及程序存儲(chǔ)器(片內(nèi)ROM),采用6264(容量8KB)作為片外RAM;采用W27C512(容量64KB)作為工程存儲(chǔ)器(片外ROM)。

2 串口轉(zhuǎn)換單元

RS422與TTL采用一塊MAX491芯片轉(zhuǎn)換。在RS422端還設(shè)計(jì)有隔離保護(hù)電路。

3 通訊設(shè)定單元

(略)

4 復(fù)位及看門狗單元

正常運(yùn)行時(shí),CPU的P1.0位向MAX705的WDI端定時(shí)輸出Watch Dog信號(hào);當(dāng)CPU死機(jī)或按下復(fù)位按鈕后,MAX705的WDO端會(huì)向CPU的RST端輸出一個(gè)復(fù)位脈沖信號(hào)。

5 面板按鍵及狀態(tài)指示單元

面板上設(shè)計(jì)有電源、通訊、監(jiān)視、預(yù)警、火警等狀態(tài)指示LED、蜂鳴器及自檢、消音鍵,分別由CPU的P1.1~P1.7位驅(qū)動(dòng)。

6 火警位置LED驅(qū)動(dòng)單元

將64個(gè)火警位置LED拆分成2塊完全相同的32個(gè)火警位置LED驅(qū)動(dòng)板,通過74HC688比較器的高6位對(duì)驅(qū)動(dòng)板尋址,低2位經(jīng)2/4線譯碼后對(duì)驅(qū)動(dòng)板上的4組74HC373鎖存器尋址。

7 片選信號(hào)分配

我們發(fā)現(xiàn)RAM(6264,8KB)的地址線只有13根,CPU對(duì)撥碼開關(guān)的總線收發(fā)器(74HC245)只執(zhí)行讀操作,對(duì)火警位置LED驅(qū)動(dòng)板執(zhí)行寫操作時(shí)不須輸出地址。利用這個(gè)特性設(shè)計(jì)了一個(gè)特殊的譯碼電路,解決了片選線的不足。

8 供電單元(略)

三、軟件設(shè)計(jì)

1 選用27C512芯片存儲(chǔ)工程數(shù)據(jù),建議用戶采用ASM96語(yǔ)言按下述格式編寫“cseg at(報(bào)警回路地址*510+報(bào)警設(shè)備地址*4+番號(hào))*2 dcb樓顯網(wǎng)絡(luò)地址,報(bào)警位置LED地址;”,并編譯、燒寫。

2 程序采用C51語(yǔ)言編寫,模塊化設(shè)計(jì),由主函數(shù)及自檢、清顯示、串口中斷、通訊信息分析、火警信息處理、火警信息顯示等子函數(shù)組成,下面分別介紹:

2.1 串口中斷響應(yīng)子函數(shù)Serial

程序?qū)Υ谛畔⒉捎谩爸袛唷狈绞絻?yōu)先響應(yīng)。

在Serial中,程序首先將接收緩沖器SBUF內(nèi)的字符賦給局部變量RecvByte:如果RecvByte等于ENQ空閑呼號(hào),則雙工樓顯回送ACK握手信號(hào);如果RecvByte等于NAK錯(cuò)誤標(biāo)識(shí),則雙工樓顯重發(fā);如果RecvByte等于0xff或其它字符,則保存,以待進(jìn)一步處理。

火警主機(jī)的復(fù)位信息及探測(cè)器的火警信息將被保存在全局二維字符數(shù)組RecvChar[RecvCount][RecvIndex]中。字符序號(hào)計(jì)數(shù)器RecvIndex隨著當(dāng)前信息組中已接收字符的增多而不斷自增,當(dāng)7個(gè)字符全部接收后回零。信息組計(jì)數(shù)器RecvCount隨著有效信息組的增多而不斷自增。

至此,Serial結(jié)束,閃爍一次通訊狀態(tài)指示LED后,程序返回原中斷點(diǎn)。

2.2 信息分析子函數(shù)Analyse

如果接收的是復(fù)位指令,則程序同步復(fù)位至監(jiān)視狀態(tài)。如是火警信息且在本樓顯的范圍,則調(diào)用AlarmProcs進(jìn)一步處理。如是其它信息,則放棄。

2.3 火警信息處理子函數(shù)AlarmProcs

程序中定義了一個(gè)全局字符數(shù)組變量AlarmPost[AlarmCount]作為火警位置LED的狀態(tài)表,表征著各個(gè)火警位置LED所對(duì)應(yīng)的探測(cè)器的火警狀態(tài)(1——火警;0——正常)。全局字符變量AlarmCount作為火警計(jì)數(shù)器,累計(jì)本樓顯的火警總數(shù),最大值64。初始化時(shí),該兩變量全部清零。

當(dāng)Analyse調(diào)用AlarmProcs后,程序首先根據(jù)外置ROM中的對(duì)照表來修改AlarmPost[64]的狀態(tài)值,然后根據(jù)狀態(tài)值的變化驅(qū)動(dòng)面板指示LED及蜂鳴器,并調(diào)用ScanAlarm刷新顯示。

2.4 火警位置LED顯示子函數(shù)ScanAlarm

ScanAlarm首先根據(jù)AlarmPost[64]來計(jì)算8個(gè)火警位置LED顯示數(shù)組AlarmGroup[8]的值,再逐組輸出。

2.5 主函數(shù)main

程序上電后,自動(dòng)執(zhí)行主函數(shù)main,首先初始化,讀入撥碼開關(guān)的設(shè)置值并對(duì)本機(jī)網(wǎng)絡(luò)地址NetAddr、波特率BaudRate、單/雙工通訊Answer賦值,啟動(dòng)相關(guān)定時(shí)器,置樓顯初始狀態(tài)為監(jiān)視Monite等,最后進(jìn)入無限主循環(huán)語(yǔ)句While(1)。

每次循環(huán),程序都要檢查是否有已接收待分析的信息。為此,程序定義了兩個(gè)全局變量:已接收信息組計(jì)數(shù)器RecvCount、已處理信息組計(jì)數(shù)器ProcsCount。初始化階段,該兩變量全部清零。

如果RecvCount和ProcsCount均不為0,且RecvCount大于ProcsCount,表明有已接收未分析處理的信息,則程序?qū)⒄{(diào)用Analyse進(jìn)行分析處理。在Analyse中,按照“先接收,先處理”的原則,程序提取最早接收到的一組信息RecvChar[ProcsCount][0]~ RecvChar[ProcsCount][6]進(jìn)行分析處理。每處理完一組信息后,程序即返回主函數(shù)的原調(diào)用點(diǎn),并將ProcsCount增1。如果此時(shí)RecvCount等于ProcsCount,表明接收信息已全部被分析處理,則程序?qū)ecvCount和ProcsCount全部清零,隨后接收到的信息組將覆蓋RecvChar[0][0]~RecvChar[0][6]。

每次循環(huán),程序還要查詢一次自檢鍵和消音鍵。如果監(jiān)視狀態(tài)下按下了自檢鍵,則轉(zhuǎn)入自檢狀態(tài);如果自檢結(jié)束,或自檢狀態(tài)下再次按下了自檢鍵,或自檢狀態(tài)下發(fā)生了報(bào)警,則返回監(jiān)視狀態(tài)。報(bào)警狀態(tài)下,按自檢鍵不予響應(yīng)。如果按下了消音鍵,則停止蜂鳴器的鳴動(dòng)。

每隔500ms,程序還將執(zhí)行一次“喂狗”指令。

如此,則完成了一次循環(huán)。

2.6 自檢子函數(shù)SelfCheck

(略)

2.7 關(guān)于定時(shí)器

在程序中設(shè)置了一個(gè)硬件定時(shí)器T0(50ms)作為基礎(chǔ)定時(shí)器,并設(shè)置了若干定時(shí)計(jì)數(shù)器變量作為軟定時(shí)器。每當(dāng)基礎(chǔ)定時(shí)器溢出時(shí),各定時(shí)計(jì)數(shù)器增1;當(dāng)各定時(shí)計(jì)數(shù)器值達(dá)到其設(shè)定值時(shí),則視為其軟定時(shí)器溢出,程序?qū)υ摱〞r(shí)計(jì)數(shù)器清零,并執(zhí)行相應(yīng)的定時(shí)操作,這樣就實(shí)現(xiàn)了無限量的軟定時(shí)器。

結(jié)束語(yǔ)

此型樓顯屬量產(chǎn)的初級(jí)產(chǎn)品,還存在著一些不足之處,可在后續(xù)的產(chǎn)品中得到改進(jìn)。

參考文獻(xiàn):

[1]《單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì)》 徐愛鈞 彭秀華著

[2]《MCS51系列單片機(jī)實(shí)用接口技術(shù)》 李華 主編

猜你喜歡
單片機(jī)消防
《消防界》征稿啟事
“消防體檢”保安全
水上消防(2021年5期)2022-01-18 05:33:40
全國(guó)消防日11月9日
一架MQ-9收割者正在執(zhí)行消防任務(wù)
軍事文摘(2020年21期)2020-11-12 05:44:32
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
漫畫說消防
消防界(2019年2期)2019-09-10 07:22:44
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
消防也幽默
讀者(2018年18期)2018-08-31 05:40:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
左贡县| 鄢陵县| 丹棱县| 丰顺县| 鄱阳县| 健康| 叙永县| 繁昌县| 靖州| 方正县| 桑日县| 出国| 吉水县| 五家渠市| 丹巴县| 轮台县| 海城市| 公安县| 海南省| 白朗县| 龙州县| 治县。| 乌兰察布市| 弥勒县| 六枝特区| 宣恩县| 曲阜市| 桂平市| 滨海县| 巴林左旗| 黑龙江省| 汉中市| 沂南县| 读书| 高安市| 南江县| 新竹县| 文成县| 宁城县| 额尔古纳市| 通化市|