1時,就表示有鍵按下; (2)通過“行掃描”確定已按鍵的行、列位置;所謂行掃描就是依次給每條行線輸入O信號,而其余各行都輸入1,并檢測每次掃描時所對應(yīng)的列信號;在發(fā)明2中就是在C 口先輸出111110 (PC5?PC0),然后是111101,直到最后是011111,并檢測每次所對應(yīng)的B 口輸入; 只有在某行上有鍵按下時,在這一行上輸入O (其他行為1),在列輸出上才能檢測到O信號;若是輸入為O的這一行上沒有按鍵按下,則收到的列信號仍然全是I ;因此,只要記下列信號不全為I時的C 口輸出及B 口輸入,就能確定以按鍵的位置;設(shè)發(fā)明2中處于第3行第I列的鍵已按下,則必須是行輸出信號為110111,檢測到的列信號為11101 ;對應(yīng)于其他的行信號,列信號都是11111 ;這樣,通過行掃描,就可以確定按鍵的行、列坐標(biāo); (3)確定是否有多鍵同時按下;有時一次按下的鍵不止一個,這在一般情況下是由于誤操作引起的,是不應(yīng)該出現(xiàn)的通常稱為竄鍵;出現(xiàn)這種情況時,就可能有不止一次會得到列信號不為全1,這時就不容易判斷哪個鍵是真正需要按下的;為了處理這種情況可采取兩種辦法:一是行掃描一定是掃到最后一行才結(jié)束,而不是檢測到列信號不為全I(xiàn)時就結(jié)束,以便發(fā)現(xiàn)竄鍵;二是如果出現(xiàn)了竄鍵,最簡單的處理辦法就是這次行掃描不算,再來一遍,即以最后放開的那個鍵為準(zhǔn);實(shí)際上,由于掃描的速度很快,真正找到兩個鍵同時按下的情況是很少的; (4)消除鍵抖動;一般按鍵在按下的時候有抖動的問題,即鍵的簧片在按下時會有輕微的彈跳,需經(jīng)過一個短暫的時間才會可靠地接觸;若在簧片抖動時進(jìn)行掃描就可能得出不正確的結(jié)果;因此,在程序中要考慮防抖動的問題;最簡單的辦法是在檢測到有鍵按下時,等待(延遲)一段時間再進(jìn)行“行掃描”,延遲時間為10?20ms ;這可通過調(diào)用子程序來解決,當(dāng)系統(tǒng)中有顯示子程序時,調(diào)用幾次顯示子程序也能同時達(dá)到消除抖動的目的; 8255A芯片介紹 自動加料系統(tǒng)有8個按鍵:啟動兩條生產(chǎn)線的“啟動I”鍵和“啟動2”鍵、分秒選擇鍵、時間設(shè)置加/減鍵、顯示生產(chǎn)線狀態(tài)切換鍵,時間設(shè)置鍵,時間切換鍵,由于單片機(jī)的并行口有限;本系統(tǒng)采用8255A擴(kuò)展并行口。 5.(I).8255A的內(nèi)部結(jié)構(gòu) 8255A的內(nèi)部結(jié)構(gòu)有以下幾部分組成: a.并行I/O端口 A、B、C 8255A的內(nèi)部有3個8位并行I/O 口:A 口、B 口、C 口;3個I/O口都可以通過編程選擇為輸入口或輸出口,但在結(jié)構(gòu)和功能上有所不同; A 口:含有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位輸入鎖存器; B 口:含有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位輸入鎖存器(不鎖存); C 口:含有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位輸入鎖存器(不鎖存); 當(dāng)數(shù)據(jù)傳送不需要聯(lián)絡(luò)信號時,這3個端口都可以用作輸入口或輸出口 ;當(dāng)々口 B 口需要有聯(lián)絡(luò)信號時,C 口可以作為A 口和B 口的聯(lián)絡(luò)信號線; b.工作方式控制電路:8255A的三個端口在使用使可分為A、B兩組;A組包括A口 8位和C 口高4位:B組包括B 口 8位和C 口低4位;兩組的控制電路中分別有控制寄存器,根據(jù)寫入的控制字決定兩組的工作方式,也可對C 口每一位置“I”或清“O”; c.數(shù)據(jù)總線緩沖器:數(shù)據(jù)總線緩沖器是三態(tài)雙向的8位緩沖器,是8255A與單片機(jī)數(shù)據(jù)總線的接口,8255A的DO?D7可以和AT89C51單片機(jī)的P0.0?P0.7直接相連;數(shù)據(jù)的輸入輸出、控制字和狀態(tài)信息的傳遞,均可通過數(shù)據(jù)總線緩沖器進(jìn)行; d.讀/寫控制邏輯:8255A讀/寫控制邏輯的作用是從CPU的地址和控制總線上接受有關(guān)信號,轉(zhuǎn)變成各種控制命令送到數(shù)據(jù)緩沖器及A組和B組的控制電路,控制A、B、C3個端口的操作;8255A共有40個引腳,一般為雙列直插DIP封裝,40個引腳可分為與CPU連接的數(shù)據(jù)線、地址和控制信號以及與外圍設(shè)備連接的三個端口線;.DO?D7:雙向三態(tài)數(shù)據(jù)總線;.RESET:復(fù)位信號,輸入,高電平有效;復(fù)位后,控制寄存器清0,A 口、B 口、C 口被置為輸入方式; ?:片選信號,輸入,低電平有效;.:讀信號,輸入,低電平有效;有效時,允許CPU通過8255A DO?D7讀取數(shù)據(jù)或狀態(tài)信息; ?:寫信號,輸入,低電平有效;有效時,允許 ?A1A0:端口控制信號,輸入;2位可構(gòu)成四種狀態(tài),分別尋址A 口、B 口、C 口和控制寄存器.PAO?PA7:A 口數(shù)據(jù)線,雙向;.PBO?PB7:B 口數(shù)據(jù)線,雙向;.PCO?PC7:C 口數(shù)據(jù)/信號線,雙向;當(dāng)8255A工作于方式O時,PCO?PC7分為兩組(每組4位)并行I/O數(shù)據(jù)線;當(dāng)8255A工作于方式I或方式2時,PCO?PC7為A 口、B 口提供聯(lián)絡(luò)信號; AlAO與、、信號一起,可確定8255A的操作狀態(tài),如發(fā)明所示: 8255A功能操作 Al AO 操作 O 0 1O I OO O 0I 1I OOO A口一數(shù)據(jù)總線B口一數(shù)據(jù)總線C口一數(shù)據(jù)總線輸入操作O01IOI01IIIIOOOO OO0O數(shù)據(jù)總線一A 口數(shù)據(jù)總線一B 口數(shù)據(jù)總線一C口數(shù)據(jù)總線一控制口輸出操作X1XXIX X01XIIIOO數(shù)據(jù)總線為高阻態(tài)非法狀態(tài)數(shù)據(jù)總線為高阻態(tài) 禁止操作 8255A 與 AT89C51 接口 電路。6.在連接鍵盤電路采用8255A為擴(kuò)展I/O口時,要在中間加入一個74LS373,74LS373是一個三態(tài)門的8D鎖存器,它可以作為AT89C51外部的一個擴(kuò)展輸入口,借口電路的工作原理是當(dāng)外設(shè)把數(shù)據(jù)準(zhǔn)備好后,發(fā)出一個控制信號加到373的G端,即鎖存端,使輸入數(shù)據(jù)在373中鎖存,同時信號加到AT89C51單片機(jī)的中斷請求端,單片機(jī)響應(yīng)中斷,在中斷服務(wù)程序中執(zhí)行下面程序: MOV DPTR,#0BFFFH MOVX A,ODPTR 在執(zhí)行上面的第二條指令時,P2.6=0,有效,通過或門后加到373的端,即373的三態(tài)門控制端,使三態(tài)門暢通,鎖存的數(shù)據(jù)讀入到累加器A中; 外部存儲器擴(kuò)展電路 自動加料機(jī)存在兩條生產(chǎn)線的輸送、排料、滿料、空料,共8個設(shè)置的重要數(shù)據(jù)需要讀/寫,并且能夠提供掉點(diǎn)保護(hù),所以就需要外闊程序存儲器;程序存儲器一般采用自讀存儲器,因?yàn)檫@種存儲器在電源關(guān)斷后,仍能保存程序,在系統(tǒng)上電后,CPU可取出這些指令予以重新執(zhí)行;只讀存儲器簡稱ROM ;R0M中的信息一旦寫入之后,就不能隨意更改,特別是不能在程序運(yùn)行的過程中寫入新的內(nèi)容,故稱之為只讀存儲器; 向ROM中寫入信息叫做ROM編程;根據(jù)編程的方式不同,ROM分為以下幾種: (1)掩膜ROM是在制造過程中編程;因編程是以掩膜工藝實(shí)現(xiàn)的,因此稱為掩膜ROM;這種芯片存儲結(jié)構(gòu)簡單,集成度高,但由于掩膜工藝由于成本較高,因此只適合于大批量生產(chǎn); (2)可編程ROM (PROM) PROM芯片出廠是并沒有任何程序信息,是由用戶用獨(dú)立的編程器寫入的,但PROM只能寫入一次,寫入內(nèi)容后,就不能在進(jìn)行修改;(3)EPROM EPROM是用電信號編程,用紫外線擦除的只讀存儲器芯片;在芯片外殼上的中間位置有一個圓形窗口,通過這個窗口照射紫外線射就可擦除原有的信息;(4)E2PR0M 這是一種用電信號編程,也用電信號擦除的ROM芯片,對E2PR0M的讀寫操作與RAM存儲器幾乎沒有什么差別,只是寫入的速度慢一些,但斷電后能夠保存信息; 此發(fā)明采用外擴(kuò)E2PR0M的擴(kuò)展方式;E2PR0M是電擦除可編程自讀存儲器,其突出優(yōu)點(diǎn)是能夠在線擦除和改寫,無須像ERPOM那樣必須用紫外線照射才能擦徹,較新的E2PR0M產(chǎn)品在寫入時能自動完成擦除,且不再需要專用的編程電源,可以直接使用單片機(jī)系統(tǒng)的+5V電源; 常用的E2PR0M芯片有2816/1816A,2817/2817A,2864A ;本發(fā)明采用的是用2864A的擴(kuò)展方式。7.2864A有四種工作方式: (O維持方式 當(dāng)為高電平時,2864A進(jìn)入低耗維持方式;此時,輸出線呈高阻態(tài),芯片的電流從140mA降至維持電流60mA ; (2)讀方式 當(dāng)和均為低電平而為高電平時,內(nèi)部的數(shù)據(jù)緩沖器被打開,數(shù)據(jù)送上總線,此時,可進(jìn)行讀操作; (3)寫方式 2864A提供了兩種數(shù)據(jù)方式:字節(jié)寫入和頁寫入 頁寫入:2864A片內(nèi)設(shè)置了 16字節(jié)的“頁緩沖器”,并將整個存儲器陣列劃分成512頁,每頁16個字節(jié);頁的區(qū)分可由地址的高9位來確定,地址線的低4位用以選擇頁緩沖器中的16個地址單元之一;寫方式時,為低電平,在下降沿,地址碼AO?A12被片內(nèi)鎖存器鎖存,在上升時數(shù)據(jù)被鎖存;片內(nèi)還有一個字節(jié)裝載限時定時器,只要時間未到,數(shù)據(jù)可以隨機(jī)地寫入頁緩沖器;在連續(xù)向頁緩沖器寫入數(shù)據(jù)的過程中,不用擔(dān)心限時定時器會益處,因?yàn)槊慨?dāng)下降沿時,限時定時器自動被復(fù)位并重新啟動計(jì)時; 字節(jié)寫入:字節(jié)寫入的過程與頁寫入的過程類似,不同之處是僅寫入一個字節(jié),限時定時器就溢出; (4)數(shù)據(jù)查詢方式 數(shù)據(jù)查詢是指用軟件來檢測寫操作中的頁存儲周期是否完成; 在頁存儲期間,如對2864A執(zhí)行讀操作,那么讀出的是最后寫入的字節(jié),若芯片的轉(zhuǎn)儲工作未完成,則讀出數(shù)據(jù)的最高位是原來寫入字節(jié)最高位的反碼;據(jù)此,CPU可判斷的編程是否結(jié)束;如果讀出的數(shù)據(jù)與寫入的數(shù)據(jù)相同,表示芯片已完成編程,CPU可繼續(xù)向2864A裝載下一頁數(shù)據(jù); 2864A與單片機(jī)接口時,2864A的片選端與高地址線P2.7連接,P2.7=0才能選中2864A,這種線選法決定了 2864A對應(yīng)多組地址空間,即:0000H?1FFFFH,2000H?3FFH1,4000H?5FFFH,6000H?7FFFH ;這8K字節(jié)存儲器可作為數(shù)據(jù)存儲器使用,但掉電后數(shù)據(jù)不丟失;2864A與AT89C51接口電路如發(fā)明:單片機(jī)由于受引腳數(shù)的限制,數(shù)據(jù)線和地址線是復(fù)用的,由PO 口兼用;為了將它們分離出來,以便同單片機(jī)片外的擴(kuò)展芯片正確的連接,需要在單片機(jī)外部增加地址鎖存器;我們這本發(fā)明中使用74LS373 ;74LS373是一種帶有三態(tài)門的8D鎖存器, 其引腳的功能如下: D7?DO:8位數(shù)據(jù)輸入線 Q7?QO:8位數(shù)據(jù)輸出線 G:數(shù)據(jù)輸入鎖存選通信號,高電平有效;當(dāng)該信號為高電平的時候,外部數(shù)據(jù)選通到內(nèi)部鎖存器,負(fù)跳變時,數(shù)據(jù)鎖存到鎖存器中;:數(shù)據(jù)輸出允許信號,低電平有效;當(dāng)該信號為低電平的時候,三態(tài)門打開,鎖存器中數(shù)據(jù)輸出到數(shù)據(jù)輸出線;當(dāng)該信號為高電平的時候,輸出線為高阻態(tài)。8.看門狗MAX813L電路 幾乎所有的單片機(jī)都需要復(fù)位電路,對復(fù)位電路的基本要求是:在單片機(jī)上電時能可靠復(fù)位,在下電時能防止程序亂飛導(dǎo)致EPROM中的數(shù)據(jù)被修改;另外,單片機(jī)系統(tǒng)在工作時,由于干擾等各種因素的影響,有可能出現(xiàn)死機(jī)現(xiàn)象導(dǎo)致單片機(jī)系統(tǒng)無法正常工作,為了克服這一現(xiàn)象,除了充分利用單片機(jī)本身的看門狗定時器(有些單片機(jī)無看門狗定時器)夕卜,還需外加看門狗電路;除此以外,有些單片機(jī)系統(tǒng)還要求在掉電瞬間單片機(jī)能將重要數(shù)據(jù)保存下來,因掉電的發(fā)生往往是根隨機(jī)的,因而此類單片機(jī)系統(tǒng)需要電源監(jiān)控電路,在掉電剛發(fā)生時能告知單片機(jī);MAXM公司推出的MAX813L剛好能滿足這些要求; MAX813L有雙列直插和貼片兩種封裝形式,其雙列直插如發(fā)明所示,引腳功能如下: 第①腳為手動復(fù)位輸入,低電平有效;第②、②腳分別為電源和地;第④腳為電源故障輸入;第⑤腳為電源故障輸出;第⑥腳為看門狗輸入,第⑦腳為復(fù)位輸出,第⑧腳為看門狗輸出; MAX813L的性能特點(diǎn): MAX813L的內(nèi)部結(jié)構(gòu)框發(fā)明如發(fā)明所示,具有以下主要性能特點(diǎn):由發(fā)明可知該芯片具有以下主要性能特點(diǎn): (1)復(fù)位輸出;系統(tǒng)上電、掉電以及供電電壓降低時,第⑦腳產(chǎn)生復(fù)位輸出,復(fù)位脈沖寬度的典型值為200ms,高電平有效,復(fù)位門限的典型值為4.65V ; (2)看門狗電路輸出;如果在1.6s內(nèi)沒有觸發(fā)該電路(即第⑥腳無脈沖輸入),則第⑧腳輸出一個低電平信號; (3)手動復(fù)位輸入,低電平有效,即第①腳輸入一個低電平,則第⑦腳產(chǎn)生復(fù)位輸出; (4)1.25V門限值檢測器,第④腳為輸入,第⑤腳為輸出;當(dāng)?shù)冖苣_電壓低于1.25V時,第⑤腳輸出一個低電平信號; MAX813L的典型應(yīng)用電路: MAX813L的典型應(yīng)用電路如發(fā)明所示;發(fā)明中單片機(jī)以AT89C51為例,MAX813L的第①腳與第⑧腳相連;第⑦腳接單片機(jī)的復(fù)位腳(AT89C51的第⑨腳);第⑥腳與單片機(jī)的Pl.4相連;在軟件發(fā)明中,Pl.4不斷輸出脈沖信號,如果因某種原因單片機(jī)進(jìn)入死循環(huán),則P 1.4無脈沖輸出;于是1.6s后在MAX813L的第⑧腳輸出低電平,該低電平加到第①腳,使MAX813L產(chǎn)生復(fù)位輸出,使單片機(jī)有效復(fù)位,擺脫死循環(huán)的困境;另外,當(dāng)電源電壓低于門限值4.65V時,MAX813L也產(chǎn)生復(fù)位輸出,使單片機(jī)處于復(fù)位狀態(tài),不執(zhí)行任何指令,直至電源電壓恢復(fù)正常,可有效防止因電源電壓較低時單片機(jī)產(chǎn)生錯誤的動作; 電源故障輸入PFI通過一個電阻分壓器監(jiān)測未穩(wěn)壓的直流電源;iPFI低于1.25V時,電源故障輸出腳第⑤腳PH)變低,可引起AT89C51中斷,進(jìn)行電源故障處理,或?qū)⒅匾獢?shù)據(jù)保存下來;把分壓器接到未穩(wěn)壓的直流電源是為了更早地對電源故障告警; MAX813L是一體積小、功耗低、性價(jià)比高的帶看門狗和電源監(jiān)控功能的復(fù)位芯片;它使用簡單、方便,它所提供的復(fù)位信號為高電平,因而是應(yīng)用于復(fù)位信號為高電平場合的單片機(jī)系統(tǒng)的理想芯片; 程序發(fā)明包括主程序、中斷程序、故障處理程序,系統(tǒng)中用到了兩個定時器中斷:定時器O每隔1.2s使Pl.7產(chǎn)生脈沖信號;定時器I產(chǎn)生Is的定時,使LED顯示遞減;故障處理程序使PC指針跳回到原來起動的相應(yīng)程序段;主程序完成內(nèi)部RAM數(shù)據(jù)區(qū)初始化、8255初始化,并根據(jù)按鍵信號跳轉(zhuǎn)到想應(yīng)程序段。
【專利摘要】<b>本發(fā)明自動加料機(jī)控制系統(tǒng)</b>是運(yùn)用單片機(jī)AT89S52來實(shí)現(xiàn)自動加料控制系統(tǒng)。在現(xiàn)代科學(xué)技術(shù)的許多領(lǐng)域中,自動控制技術(shù)起這愈來愈重要的作用,并且,隨著生產(chǎn)和科學(xué)技術(shù)的發(fā)展,自動化水平也越來越高。自動控制利用控制裝置使被控對象的某個參數(shù)自動的按照預(yù)定的規(guī)律運(yùn)行。本設(shè)置的自動加料機(jī)控制系統(tǒng)就是采用自動控制技術(shù)來實(shí)現(xiàn)功能的,這樣就大大提高了工作的效率,整個過程又快又穩(wěn)。
【IPC分類】B65G43/00
【公開號】CN105645070
【申請?zhí)枴?br>【發(fā)明人】祝金娥
【申請人】上海匯軼環(huán)??萍加邢薰?br>【公開日】2016年6月8日
【申請日】2014年11月9日