當(dāng)前位置:歐亞貿(mào)易網(wǎng) > 技術(shù)中心 > 所有分類
| 防爆電子秤的設(shè)計原理 | 2021-03-17 |
防爆電子秤的軟件設(shè)計 3.1防爆電子秤主程序設(shè)計軟件程序的主要任務(wù)有:重量、單價、總價等參數(shù)的顯示;數(shù)據(jù)管理;數(shù)據(jù)處理;數(shù)據(jù)運(yùn)算等功能。 3.1.1主程序設(shè)計思路電子秤軟件設(shè)計的總體思想是:根據(jù)預(yù)先編制的程序?qū)y量進(jìn)行控制,完成自動診斷、自動清零、自動邏輯判斷、自動存取數(shù)據(jù)完成重量的測試;搜集和處理測得數(shù)據(jù),并通過對重量的測試,按各種參數(shù)之間關(guān)系,經(jīng)計算后自動求出一系列有關(guān)未知參數(shù),如重量、單價和總價監(jiān)控軟件采用模塊技術(shù)設(shè)計,根據(jù)系統(tǒng)功能,將軟件分為若干個功能相對獨(dú)立的模塊,為每一個模塊設(shè)計程序流程圖。該秤功能程序模塊包括:系統(tǒng)初始化、A/D轉(zhuǎn)換數(shù)據(jù)處理、鍵盤中斷處理、顯示模塊,數(shù)據(jù)處理模塊。 3.1.2主程序工作原理軟件程序包括主程序、顯示程序、鍵盤處理程序、A/D轉(zhuǎn)換程序、數(shù)據(jù)轉(zhuǎn)換處理程序??刂破髦校罷89C52的INT1為A/D中斷請求輸入線,INT0為鍵盤中斷服務(wù)程序。A/D中斷服務(wù)程序完成采樣數(shù)據(jù)的存儲;鍵盤中斷服務(wù)程序完成掃描,判斷數(shù)字鍵或功能鍵,若為數(shù)字將其數(shù)據(jù)送入數(shù)據(jù)緩沖區(qū)和顯示緩沖區(qū)。若是功能鍵進(jìn)入相應(yīng)功能鍵處理程序。鍵盤上有數(shù)字鍵0~9、00和五個功能鍵,數(shù)字鍵用于輸入商品單價、物體重量,功能鍵有單價、清零、刪除、確定、小數(shù)點(diǎn)。(1)AT89C52輸入輸出端口定義如下:P0口——A/D轉(zhuǎn)換數(shù)據(jù)采集P1口——芯片8279與單片機(jī)的接口嚴(yán)正長:電子秤設(shè)計14P2.0、P2.1——采樣值高低字節(jié)的讀取P2.7——8279的片選端P3口——8279與ICL7109的控制端(2)外部中斷INT0用于A/D轉(zhuǎn)換服務(wù)程序外部中斷INT0完成A/D轉(zhuǎn)換中斷請求,包括數(shù)據(jù)采集及處理,當(dāng)采集完一次申請中斷,總共采集8次。(3)外部中斷INT1用于鍵盤中斷服務(wù)程單片機(jī)外部中斷INT1完成對鍵盤顯示接口功能芯片8279的按鍵和數(shù)據(jù)狀態(tài)顯示的控制,并可輸入單價,各種命令處理,顯示價格、重量等參數(shù)。(4)定時中斷T0用于A/D轉(zhuǎn)換中斷延時電子秤作為一種稱重儀器,對所稱精確度要求頗高,所以必須通過數(shù)值濾波求的有效采樣值,通過定時來完成這一系列的操作。我們定時0.5S,即定時為50ms,分10次來累計結(jié)果。(5)定時中斷T2用于鍵盤中斷延時T2設(shè)為定時器狀態(tài),定時時間為13ms。在中斷服務(wù)中首先掃描鍵盤,判斷有無鍵按下。若有,則執(zhí)行鍵識別程序。然后返回主程序進(jìn)行其他操作。(6)初始化程序完成所有系統(tǒng)設(shè)置系統(tǒng)初始化程序完成對鍵盤接口功能芯片8279初始化設(shè)置,完成片內(nèi)RAM劃分,堆棧指針的設(shè)置。完成對各種功能程序段運(yùn)行開關(guān)的設(shè)置,中斷優(yōu)先級的確定。 3.2系統(tǒng)初始化系統(tǒng)上電后,對系統(tǒng)進(jìn)行初始化。初始化程序[7]主要完成對單片機(jī)內(nèi)專用寄存器的設(shè)定,單片機(jī)工作方式及端口的工作狀態(tài)的規(guī)定、RAM自檢、各標(biāo)志位的設(shè)置、設(shè)置棧指針、分配內(nèi)存空間、設(shè)定計數(shù)器/定時器的工作方式。 3.2.1 AT89C52的初始化 1. AT89C52作為系統(tǒng)控制單元,是系統(tǒng)[8]程序中斷,數(shù)據(jù)處理中心,也是其它各模塊紐帶,對其初始化意義非常大。 (1)程序存儲器的初始化程序存儲器用于存放程序、常數(shù)和表格,在執(zhí)行程序時,從程序存儲器中按地址依次取指令執(zhí)行。AT89C52片內(nèi)含有8K字節(jié)閃速可編程/擦除只讀存儲器。編址范圍0000H~1FFFH; (2)數(shù)據(jù)存儲器的初始化AT89C52的數(shù)據(jù)存儲器有256字節(jié),編址為00H~FFH,內(nèi)部分工作寄存器區(qū)(00H~1FH)、位尋址區(qū)(20H~2FH)、數(shù)據(jù)緩沖器區(qū)(30H~FFH)。 (3)堆棧指針在系統(tǒng)初始化時指向07H單元,我們根據(jù)需要讓其在RAM區(qū)開辟堆棧區(qū)MOVSP,2FH;從30H開始堆棧,擬議存放數(shù)據(jù)采樣值與各中間參數(shù)。 2.定時器/計數(shù)器初始化(1)定時器/計數(shù)器T0初始化在程序的開始處,我們設(shè)置0.5S定時來處理采樣值。所以根據(jù)實際情況,我們設(shè)T0為定時器并且定時為50ms。因定時時間夠大,所以采用16位定時/計數(shù)方式工作。所以T0設(shè)定為工作方式1,非門控方式,TMOD.2=0,M1=0,M0=1,GATE=0;方式寄存器TM TH0、TL0初值計算由于T=(65536-X)×1=50000得X=15536=3CB0H即TH0=3CH,TL=0B0H(2)定時器/計數(shù)器T1初始化我們設(shè)T1為計數(shù)器,也用16位定時/計數(shù)方式工作。所以TMOD.6=1,TMOD.5=0,TMOD.4=1,非門控制方式。TMOD=B=51H(3)定時器/計數(shù)器T2初始化T2作為鍵盤中斷延時定時器。定時13ms,其初始化根據(jù)中斷實際應(yīng)用來設(shè)置。 3.中斷初始化(1)系統(tǒng)中中斷請求源包括外部INT0和INT1中斷請求,中斷的允許或禁止是由內(nèi)可進(jìn)行位尋址的8位中斷允許寄存器IE來控制的。其中EA是總開關(guān),如果它等于0,則所有中斷都不允許,本系統(tǒng)中SETB EA讓它總開。ET0,ET1分別為定時0,1的中斷允許,ET0、ET1為外部中斷允許,它們根據(jù)實際程序應(yīng)用來設(shè)置,利用位操作指令SETB來實現(xiàn)。(2)中斷響應(yīng)過程CPU響應(yīng)中斷時,首先把當(dāng)前指令的下一條指令(就是中斷返回后將要執(zhí)行的指令)的地址送入堆棧,然后根據(jù)中斷標(biāo)記,將相應(yīng)的中斷入口地址送入PC,執(zhí)行PC指向所指地址程序。中斷完成后,一定要執(zhí)行一條RETI指令,執(zhí)行這條后,CPU將會把堆棧中保存著的地址取出,送回PC,那么程序就會從主程序的中斷處繼續(xù)往下執(zhí)行。 3.2.2 8279的初始化1.8279的初始化本課題中8279是連接鍵盤與顯示的接口芯片,在系統(tǒng)上電復(fù)位后,8279的命令/狀態(tài)口地址為7FFFH,數(shù)據(jù)口地址為7FFEH,清除8279FIFO堆棧和顯示RAM,設(shè)置編碼掃描、輸入方式、掃描頻率,開外部中斷。電子秤的顯示是8位顯示,外部譯碼,驅(qū)動顯示。(1)鍵盤/顯示器方式設(shè)置命令字掃描計數(shù)器設(shè)定為編碼方式,將鍵盤設(shè)置為雙鍵互鎖,顯示器選取右入口顯示方式,則命令字為10H。(2)AT89C52的晶振頻率f=12MHZ,則ALE線的輸出頻率為f/12=1MHZ,8279內(nèi)部時鐘頻率要求100KHZ,則分頻系數(shù)應(yīng)取20,命令字為34H。(3)寫顯示RAM命令字設(shè)命令給出了顯示RAM的地址信息,AI取1,寫顯示RAM地址自動加1,則命令字為90H,另外顯示屏蔽消隱命令字為A0和,清除命令字取D1H. 3.2.3 ICL7109的初始化本課題中讓7109工作于直接輸出方式,P1.0口控制轉(zhuǎn)換。見原理圖所示,RUN/HOLD接+5V,以使7109連續(xù)轉(zhuǎn)換。由于采用了3.58MHZ的晶振并經(jīng)58分頻,轉(zhuǎn)換速率為7.5次/秒。根據(jù)圖可知數(shù)據(jù)口地址為FEFFH。 3.3 A/D轉(zhuǎn)換結(jié)果處理程序在智能防爆電子秤控制系統(tǒng)中,除了控制單元和執(zhí)行單元外,還必須有反饋環(huán)節(jié)。在反饋環(huán)節(jié)中,最重要的就是對數(shù)據(jù)的采集。本文以AT89C52單片機(jī)為核心,設(shè)計一個基于單片機(jī)的數(shù)據(jù)采集系統(tǒng),通過模擬電壓形式輸入系統(tǒng),經(jīng)雙積分A/D轉(zhuǎn)換器ICL7109可以采集12路模擬量,精度為12位,并經(jīng)多次采樣,通過濾波,取得更精確的重量值。 3.3.1 A/D轉(zhuǎn)換過程智能防爆電子秤作為稱重工具,其對數(shù)據(jù)的精度要求非常高,A/D轉(zhuǎn)換器位數(shù)的確定與整個測量控制系統(tǒng)所需測量的范圍和精度有關(guān),本設(shè)計選擇雙計分型A/D轉(zhuǎn)ICL7109,它模擬量采集精度達(dá)到12位,在實際應(yīng)用中,可以對電壓信號進(jìn)行直接采集,為了使所采樣值更精確,我們要將采樣值進(jìn)行數(shù)字濾波。STATUS作為中斷請求信號與單片機(jī)的中斷輸入端相連。由于采用了3.58MHz的晶振并經(jīng)58分頻,故7109完成一次轉(zhuǎn)換所需的時間為T=8192(脈沖周期)×58/3.58=132.72ms,即轉(zhuǎn)換速率為7.5次/秒。7109輸出的12位數(shù)據(jù)及極性、過量程標(biāo)志分別由HBEN和LBEN控制,分兩次送入單片機(jī)。 3.3.2采樣數(shù)據(jù)處理 (1)采樣取值我們在單片機(jī)內(nèi)開辟30H~45H單元存放采樣值,工作寄存器0組存放中間參數(shù),R0為地址指針,指向擬以采樣值的片內(nèi)RAM地址;R7存采樣次數(shù)。 (2)數(shù)據(jù)濾波本課題中,利用算術(shù)平均值法濾波可以抑制智能電子秤采樣時隨機(jī)干擾。其原理是將8次采樣值相加,然后求其平均值作為有效采樣值。將8次采樣值累加和放在R3、R4、R5中,求的平均值在R4、R5中。 3.4鍵盤與顯示處理程序我們知道鍵盤和顯示是人與微機(jī)系統(tǒng)打交道的主要設(shè)備。在本系統(tǒng)中我們采用8279可編程鍵盤/顯示管理接口。利用8279可實現(xiàn)對鍵盤/顯示器的自動掃描,以減輕CPU負(fù)擔(dān),并具有顯示穩(wěn)定、程序簡單、不會出現(xiàn)誤動作等特點(diǎn)。 3.4.1程序原理 (1)8279鍵盤、顯示程序可分為四個部分 1.主程序:首先將8279初始化,對8279寫入相應(yīng)的命令字,使其按要求工作,然后開始不斷掃描鍵盤,判斷是否有鍵按下,當(dāng)沒有鍵盤按下時則繼續(xù)掃描鍵盤;當(dāng)有鍵盤有鍵按下時就取出鍵值,并判斷是功能鍵還是數(shù)字鍵,且轉(zhuǎn)到相應(yīng)的子程序處理。 2.鍵掃描子程序:主要判斷有無鍵按下,利用8279的狀態(tài)字節(jié)可判斷FIFO RAM中已鍵入數(shù)據(jù)的個數(shù)或沒有輸入字符。當(dāng)狀態(tài)字節(jié)的低四位全為0時,便可判斷無鍵按下。 3.當(dāng)判斷有鍵按下后,就轉(zhuǎn)向取鍵值子程序。首先取出行、列號進(jìn)行拼裝,得到所需的鍵號。然后與數(shù)OAH相比較,從而判斷出是功能鍵還是數(shù)字鍵。若是功能鍵就轉(zhuǎn)到功能鍵處理子程序;若是數(shù)字鍵就調(diào)用顯示子程序進(jìn)行顯示。 4.顯示子程序。首先置顯示緩沖區(qū)首址和計數(shù)長度,然后取顯示數(shù)據(jù)轉(zhuǎn)換為段選碼,送到LED上顯示。 3.4.2鍵盤模塊當(dāng)發(fā)現(xiàn)有鍵按下時,首先判斷是命令鍵還是數(shù)字鍵。若是數(shù)字鍵,則把按鍵讀數(shù)存入存儲器,并顯示;若是命令鍵,則根據(jù)按鍵讀數(shù)查閱轉(zhuǎn)移表;以獲得處理子程序的入口。子程序執(zhí)行完后繼續(xù)掃描鍵盤。本系統(tǒng)中鍵盤控制采用中斷方式實現(xiàn),利用外部中斷1端口來實現(xiàn)。采用4*4的16鍵,分為數(shù)字鍵:0~9、00和5個命令鍵:置零、小數(shù)點(diǎn)、刪除、確定、單價。數(shù)字鍵和小數(shù)點(diǎn)鍵:用于輸入單價;刪除:用于輸入的單價錯誤的時候,重新輸入;置零:清楚顯示界面;單價:輸入單價前使用;確定:稱重時輸入單價完畢后確定,即可顯示總價。當(dāng)輸入為字符時,執(zhí)行相應(yīng)的子程序。 3.4.3顯示模塊操作者是從顯示設(shè)備上獲取微機(jī)系統(tǒng)的信息,因此,操作者每操作一下,顯示設(shè)備上都應(yīng)該有一定的反應(yīng)。這說明,顯示模塊與操作有關(guān),即監(jiān)控程序需要調(diào)用顯示模塊。顯示模塊可以由命令鍵來驅(qū)動或者自動執(zhí)行模塊來驅(qū)動。通常,自動執(zhí)行模塊調(diào)用時,只讓一處調(diào)用顯示模塊,其他各處不得直接調(diào)用顯示模塊,此時要設(shè)置一個顯示申請標(biāo)志,當(dāng)某模塊需要顯示時,將申請標(biāo)志置位,同時設(shè)定有關(guān)顯示內(nèi)容,將顯示模塊安排在一個重復(fù)執(zhí)行的循環(huán)中。 3.5數(shù)據(jù)處理程序電子秤作為一種自動計價和稱重的儀表,其系統(tǒng)內(nèi)有著大量的數(shù)據(jù)需處理,包括重量計算,價格計算。數(shù)據(jù)處理主要有多字節(jié)的乘法運(yùn)算,二-十進(jìn)制轉(zhuǎn)換,十-二進(jìn)制轉(zhuǎn)換。 3.5.1重量輸出本課題中,A/D轉(zhuǎn)換采用ICL7109芯片,它是12位輸出,重量計算要求精確到克,其輸出值范圍為B~B轉(zhuǎn)換為十進(jìn)制數(shù)0~4096,而系統(tǒng)所要求輸出重量范圍0~10000g,所以我們進(jìn)行線性參數(shù)的標(biāo)度變換,AX=(AM/NM)NX。其量化單位為10000/4096=2.44。如下:為使技術(shù)方便我們將2.44=244/100,即化為定點(diǎn)數(shù)來算。244=B,100=B采樣值在R4R5中,并選用工作寄存器1組。 防爆電子秤機(jī)械部分得設(shè)計的主要原則是:在精度要求符合的情況下,結(jié)構(gòu)簡單,容易裝配,價格低廉。當(dāng)重物放在托盤上時,壓力傳感器彈簧產(chǎn)生變形,改變電路中的電流,使壓力信號轉(zhuǎn)變成電信號,通過單片機(jī)處理后顯示到LED顯示器。 4.2各個零部件的作用及工作原理 (1)螺釘:固定秤體得各個部分,安裝電路控制板。 (2)彈簧導(dǎo)向:起固定彈簧的作用。 (3)彈簧:作為稱重傳感器,傳遞所稱物體的重量。( 4)秤盤:盛放被稱的物體。 (5)顯示窗口:預(yù)留安裝顯示數(shù)碼管。 (6)鍵盤窗口:預(yù)留安裝鍵盤。 (7)底座支撐:支撐整個秤體。 (8)牙孔:預(yù)留裝配電路控制板。 (9)秤體上蓋:秤體的一部分。 (10)秤體下蓋:秤體的一部分。 (11)秤體:商用電子秤得主體部分,主要包括顯示部分、鍵盤按鈕、電路控制部分等。 | |