99久精品_天天久久综合_亚洲精品国产品国语在线_亚洲色成人网站www永久四虎_久本草在线中文字幕亚洲_精品视频久久久久_成人免费看黄_中文字幕乱人伦高清视频_久久久久人妻啪啪一区二区_各处沟厕大尺度偷拍女厕嘘嘘

智能儀表的應(yīng)用程序設(shè)計(jì)

日期: 2018-12-18

1.智能儀表的典型軟件結(jié)構(gòu)

智能儀表是一種較完整的單片機(jī)應(yīng)用系統(tǒng)。一般硬件電路除基本擴(kuò)展部分外,都配置有采集電路、顯示器、按鍵、打印機(jī)等。相應(yīng)的軟件有采集、采集控制、數(shù)據(jù)處理、顯示、結(jié)果打印等。圖一是智能儀表的一種典型軟件結(jié)構(gòu)。按其功能,可分為三部分,即準(zhǔn)備程序、鍵功能程序和系統(tǒng)控制序。

1.1 準(zhǔn)備程序
準(zhǔn)備程序應(yīng)完成系統(tǒng)鍵操作之前的準(zhǔn)備工作。它包括:

1.1.1 初始化。
將系統(tǒng)中所有的命令、狀態(tài)以及有關(guān)的存儲單元置位成初始狀態(tài)。
1.1.2 系統(tǒng)測試。
利用測試程序檢查程序存儲器、數(shù)據(jù)存儲器以及硬件功能是否正常。
1.1.3 提示符顯示。
當(dāng)完成初始化設(shè)置和系統(tǒng)測試正常以后,應(yīng)在顯示器上顯示正常標(biāo)記,等待健掃描。若測試不正常,可再次初始化,進(jìn)行系統(tǒng)測試或用手動按鈕使系統(tǒng)強(qiáng)行復(fù)位。
1.1.4 鍵掃描等待。
對所有按鍵進(jìn)行查詢,沒有鍵按下時(shí),繼續(xù)顯示提示符。當(dāng)有鍵按下時(shí),便進(jìn)入鍵功能軟件控制。當(dāng)系統(tǒng)上電后,在正常情況下,顯示正常狀態(tài)提示符號,并準(zhǔn)備接收按鍵的操作控制。

1.2 鍵功能程序
這是一組散轉(zhuǎn)指令控制選擇的一組鍵功能程序模塊,每個(gè)模塊完成按鍵所指定的功能。根據(jù)散轉(zhuǎn)指令(JMP @A+DPTR),設(shè)置轉(zhuǎn)移入口地址表,實(shí)現(xiàn)鍵功能程序的長轉(zhuǎn)移(LJMP add16)時(shí),可設(shè)置的鍵功能程序模塊數(shù)量為256/3=85 個(gè)。鍵功能程序應(yīng)包括能由按鍵選擇控制的所有功能程序。鍵功能程序大致分為測、控功能程序,外設(shè)功能程序和操作控制功能程序。
1.2.1 測、控功能程序。
系統(tǒng)直接完成其主要測量、處理、控制功能的程序,如智能頻率計(jì)的頻率、周期、計(jì)數(shù)測量、標(biāo)度換算、存儲記憶等。

1.2.2 外設(shè)功能程序。
外部設(shè)備的控制程序,如顯示、打印等。

1.2.3 操作控制程序。
對系統(tǒng)要求實(shí)現(xiàn)多種模式操作時(shí)所附加的控制程序。典型的有按鍵復(fù)用功能設(shè)置、系統(tǒng)狀態(tài)測試、命令/數(shù)據(jù)的置入以及功能程序中的多種工作方式選擇等。

2.鍵功能程序結(jié)構(gòu)

要保證鍵功能程序的模塊化,又要實(shí)現(xiàn)鍵功能程序操作方式的多樣化,鍵功能程序中應(yīng)設(shè)有能實(shí)現(xiàn)不同操作方式的分支程序。為了能方便靈活地選擇不同的操作方式應(yīng)設(shè)置有命令字以及分支運(yùn)行的狀態(tài)字,這樣,系統(tǒng)控制程序便可根據(jù)命令要求,控制功能程序的轉(zhuǎn)移。
鍵功能程序結(jié)構(gòu)如圖2 所示。
◆狀態(tài)標(biāo)志置位。將本次鍵功能程序運(yùn)行方式、特點(diǎn)、分支選擇的特征置入RAM 中的狀態(tài)標(biāo)志單元中,以便系統(tǒng)控制程序查詢。
◆命令查詢。根據(jù)片內(nèi)RAM 中狀態(tài)命令單元的命令選擇不同的功能分支程序。
◆功能分支程序。在一個(gè)按鍵的主要功能中還有不同方式要求時(shí)設(shè)置的分支程序。例如,頻率測量功能程序中,不同的分支程序可以完成單次測量、連續(xù)測量、測量顯示、測量打印、測量存儲等子功能或初始化設(shè)置等。
鍵功能程序結(jié)構(gòu)、命令/狀態(tài)格式以及分支功能程序出口狀態(tài)應(yīng)和片內(nèi)RAM 中的命令/狀態(tài)區(qū)以及系統(tǒng)控制程序相呼應(yīng)。

3.系統(tǒng)控制程序與命令/狀態(tài)設(shè)置

系統(tǒng)控制程序與命令/狀態(tài)設(shè)置主要解決應(yīng)用程序中的循環(huán)轉(zhuǎn)移以及功能程序中的分支選擇。其轉(zhuǎn)移或選擇的條件是命令和狀態(tài)字。狀態(tài)字是依靠程序?qū)懭搿@鐝?fù)位后狀態(tài)字為全零,表明系統(tǒng)的全部功能程序處于準(zhǔn)備狀態(tài)。當(dāng)按下某個(gè)按鍵,或一組按鍵,系統(tǒng)執(zhí)行某一路徑的程序,如“單次頻率測量并打印結(jié)果”,隨著程序的執(zhí)行要在命令/狀態(tài)區(qū)設(shè)置相應(yīng)的狀態(tài)字。
命令字一般由外部輸入或由命令鍵輸入,在鍵功能程序中,根據(jù)命令狀態(tài)選擇功能分支程序。系統(tǒng)控制程序是在執(zhí)行完以后,控制系統(tǒng)程序的流向。它根據(jù)命令/狀態(tài)條件實(shí)現(xiàn)條件轉(zhuǎn)移控制。一般有循環(huán)轉(zhuǎn)移、置A 轉(zhuǎn)移、等待轉(zhuǎn)移以及復(fù)位轉(zhuǎn)移等。
循環(huán)轉(zhuǎn)移通常是實(shí)現(xiàn)鍵功能的循環(huán)操作,如連續(xù)采集、循環(huán)顯示等。保證功能鍵的入口地址不變,但可選擇分支程序。置A 轉(zhuǎn)移是不通過按鍵操作的鍵功能程序轉(zhuǎn)移。當(dāng)按一次鍵要完成幾個(gè)鍵功能操作內(nèi)容時(shí)使用。例如,頻率測量和測量結(jié)果打印分屬兩個(gè)按鍵功能程序,要實(shí)現(xiàn)頻率測量時(shí)可按頻率測理按鍵,并選擇置A 轉(zhuǎn)移,將頻率測理的出口狀態(tài)置為打印功能程序的散轉(zhuǎn)A 值。等待轉(zhuǎn)移是使系統(tǒng)返回鍵等待狀態(tài),等待下一次鍵操作。復(fù)位轉(zhuǎn)移是使系統(tǒng)返回到上電復(fù)位狀態(tài)。一般硬件復(fù)位按鈕其功能也是復(fù)位轉(zhuǎn)移。

4.內(nèi)存規(guī)劃

與軟件結(jié)構(gòu)設(shè)計(jì)相配合,必須將程序存儲器(ROM)和數(shù)據(jù)存儲器(RAM)實(shí)現(xiàn)規(guī)劃。按照上述的軟件結(jié)構(gòu),ROM、RAM 規(guī)劃內(nèi)容如圖三所示。圖中除了個(gè)別特定區(qū)域外,對于一個(gè)具體的智能儀表,每個(gè)部分規(guī)定的區(qū)域范圍不同,既要考慮系統(tǒng)的程序構(gòu)成,還要考慮到二次開發(fā)的擴(kuò)展余地。

4.1 ROM 規(guī)劃原則

? 4.1.1 按照MCS-51 單片機(jī)的復(fù)位及中斷入口地址的規(guī)定,002FH單元地址以前的空間都作為中斷、復(fù)位入口地址區(qū),在這些地址單元中設(shè)置轉(zhuǎn)移指令,轉(zhuǎn)移到相應(yīng)的中斷服務(wù)程序或復(fù)位啟動程序。
? 4.1.2 程序存儲器中功能程序及子程序數(shù)量較多時(shí), 盡可能設(shè)置入口地址表。
? 4.1.3 要留有擴(kuò)展余地。二次開發(fā)擴(kuò)展區(qū)盡可能放在高位地址區(qū)。
? 4.1.4 一般的常數(shù)、表格集中設(shè)置表格區(qū)。

4.2 RAM 規(guī)劃原則

? 4.2.1 數(shù)據(jù)存儲器RAM 按照應(yīng)用程序所使用的數(shù)據(jù)類型規(guī)劃。通常將頻繁使用, 而且內(nèi)存占用數(shù)量較固定的數(shù)據(jù)盡可能放在高位地址。
? 4.2.2 片內(nèi)RAM 容量較小,盡可能重疊使用。例如,數(shù)據(jù)暫存區(qū)與顯示、打印緩沖區(qū)重疊。
? 4.2.3 當(dāng)系統(tǒng)中擴(kuò)展有外部數(shù)據(jù)存儲器時(shí), 外部數(shù)據(jù)存儲器一般用作存放大塊數(shù)據(jù)。如測量結(jié)果數(shù)據(jù)。

5.系統(tǒng)可靠性的軟件設(shè)計(jì)

為了保證系統(tǒng)可靠運(yùn)行,應(yīng)用程序設(shè)計(jì)應(yīng)考慮配置有測試程序以及陷阱復(fù)位措施。測試程序是用來檢查應(yīng)用系統(tǒng)軟、硬件是否處于正常狀態(tài)。通常有功能測試、初始化狀態(tài)測試以及ROM、RAM 初始狀態(tài)測試。具體測試程序視具體情況而定。例如,對于通用頻率計(jì)可在系統(tǒng)內(nèi)設(shè)置標(biāo)準(zhǔn)信號源,啟動功能測試后,對內(nèi)部標(biāo)準(zhǔn)信號實(shí)現(xiàn)系統(tǒng)的全部功能,如測量、處理、顯示、打印,以及最后顯示是否正常的標(biāo)記。
在軟件運(yùn)行時(shí)為了防止非正常和程序“逃逸”而出現(xiàn)的死循環(huán),可以采取軟件陷阱復(fù)位措施。即在程序存儲器中所有空白區(qū)填入特定的數(shù)字。當(dāng)程序“逃逸”后進(jìn)入程序空白區(qū),在這些特定數(shù)字的引導(dǎo)下進(jìn)入上電復(fù)位入口,使系統(tǒng)進(jìn)入復(fù)位狀態(tài)。例如,在MCS-51 應(yīng)用系統(tǒng)的程序存儲器的空白區(qū)中連續(xù)放置以下的機(jī)器碼:20000000020000002000000002000000…并保證不小于兩個(gè)循環(huán)長度時(shí),只要程序進(jìn)入此區(qū)域便會自動轉(zhuǎn)入系統(tǒng)復(fù)位狀態(tài)。
主站蜘蛛池模板: 周口市| 科技| 三江| 蓬溪县| 临澧县| 南木林县| 宜宾县| 南木林县| 旬阳县| 江津市| 兴海县| 崇左市| 右玉县| 英山县| 阜城县| 河南省| 汝州市| 扶余县| 光泽县| 博兴县| 菏泽市| 岢岚县| 土默特左旗| 邵阳市| 怀宁县| 乐安县| 梅河口市| 晋中市| 左贡县| 漠河县| 孝感市| 英吉沙县| 夏邑县| 泰兴市| 凤台县| 砀山县| 波密县| 曲沃县| 福海县| 扶沟县| 简阳市|