DZ177自動(dòng)加料機(jī)控制系統(tǒng)
DZ177自動(dòng)加料機(jī)控制系統(tǒng),dz177,自動(dòng),加料,控制系統(tǒng)
更多資料查詢 www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)整理目 錄第一章 緒 論 ...........................................................11.1 題目來源及課題意義 ............................................11.2 自動(dòng)加料機(jī)控制系統(tǒng)的工作原理及技術(shù)要求 ........................11.3 系統(tǒng)的主要技術(shù)參數(shù): ..........................................1第二章 方案論證 ......................................................22.1 單片機(jī)的選擇 ..................................................22.2 物位傳感器的選擇 ..............................................32.3 存儲(chǔ)器擴(kuò)展電路的選擇 ..........................................52.4 LED顯示電路選擇 ...............................................72.5. 鍵盤輸入電路 ..................................................8第三章 自動(dòng)加料機(jī)主電路 .............................................103.1 系統(tǒng)結(jié)構(gòu)原理圖 ...............................................113.2 主機(jī)電路核心器件介紹 .........................................103.3 顯示電路 .....................................................183.4 繼電器控制電路 ...............................................223.5 鍵盤及顯示電路 ...............................................233.6 外部存儲(chǔ)器擴(kuò)展電路 ...........................................273.7 看門狗 MAX813L電路 ...........................................303.8 料位開關(guān) .....................................................32第四章 系統(tǒng)的抗干擾及可靠性 .........................................35第五章 軟件設(shè)計(jì) .....................................................36第六章 結(jié)論語 .......................................................38參考文獻(xiàn): .........................................................39附錄 A:系統(tǒng)框圖 ....................................................40附錄 B:系統(tǒng)硬件框圖 ................................................41程序清單: .........................................................411第一章 緒 論1.1 題目來源及課題意義在現(xiàn)代科學(xué)技術(shù)的許多領(lǐng)域中,自動(dòng)控制技術(shù)起這愈來愈重要的作用,并且,隨著生產(chǎn)和科學(xué)技術(shù)的發(fā)展,自動(dòng)化水平也越來越高。自動(dòng)控制利用控制裝置使被控對(duì)象的某個(gè)參數(shù)自動(dòng)的按照預(yù)定的規(guī)律運(yùn)行。本設(shè)計(jì)的自動(dòng)加料機(jī)控制系統(tǒng)就是采用自動(dòng)控制技術(shù)來實(shí)現(xiàn)功能的,這樣就大大提高了工作的效率,整個(gè)過程又快又穩(wěn)。1.2 自動(dòng)加料機(jī)控制系統(tǒng)的工作原理及技術(shù)要求本設(shè)計(jì)的由單片機(jī)控制的自動(dòng)加料系統(tǒng)是與料斗式干燥機(jī)配套的加料系統(tǒng)。根據(jù)加料工藝要求,其工作原理是:先將真空管關(guān)閉,啟動(dòng)電機(jī),用低真空氣流將塑料樹脂粒子送入真空管,電機(jī)停轉(zhuǎn),再將粒子排入料斗,如此循環(huán)。在設(shè)計(jì)的控制系統(tǒng)中,可用一個(gè)電機(jī)控制兩個(gè)加料生產(chǎn)線,由方向閥切換。兩個(gè)生產(chǎn)線既可單獨(dú)運(yùn)行,也可同時(shí)運(yùn)行。假如兩者同時(shí)運(yùn)行,當(dāng)一生產(chǎn)線輸送結(jié)束后,判斷到另一個(gè)生產(chǎn)線排料已經(jīng)結(jié)束,那么,電機(jī)不停轉(zhuǎn)而方向閥換向,從而為另一個(gè)生產(chǎn)線送料。這樣可以發(fā)揮控制系統(tǒng)和電機(jī)的效率,從而實(shí)現(xiàn)供料自動(dòng)化??刂葡到y(tǒng)的控制器有單片機(jī) 89C51 和擴(kuò)展電路組成,單片機(jī)控制繼電器,繼電器控制交流接觸器,又由接觸器控制電機(jī)等執(zhí)行機(jī)構(gòu)的運(yùn)動(dòng)。本控制系統(tǒng)可以根據(jù)送料工藝的需要,設(shè)置兩條生產(chǎn)線的輸送、排料、滿料、空料等參數(shù)值,也可裝載系統(tǒng)前次工藝參數(shù)值。1.3 系統(tǒng)的主要技術(shù)參數(shù):(1) 用一臺(tái)電機(jī)控制兩條生產(chǎn)線(2) 要能檢測到滿料狀態(tài),并顯示出輸送、排料、滿料時(shí)間(3) 時(shí)間誤差:0.1 秒(4) 具有抗干擾能力2第二章 方案論證2.1 單片機(jī)的選擇20 世紀(jì) 80 年代以來,單片機(jī)的發(fā)展非常迅速,就通用單片機(jī)而言,世界上一些著名的計(jì)算機(jī)廠家已投放市場的產(chǎn)品就有 50 多個(gè)系列,數(shù)百個(gè)品種。目前世界上較為著名的 8 位單片機(jī)的生產(chǎn)廠家和主要機(jī)型如下:美國 Intel 公司: MCS—51 系列及其增強(qiáng)型系列美國 Motorola 公司:6801 系列和 6805 系列美國 Atmel 公司:89C51 等單片機(jī)美國 Zilog 公司:Z8 系列及 SUPER8美國 Fairchild 公司:F8 系列和 3870 系列美國 Rockwell 公司:6500/1 系列美國 TI(德克薩司儀器儀表)公司:TMS7000 系列NS(美國國家半導(dǎo)體)公司:NS8070 系列 等等。盡管單片機(jī)的品種很多,但是在我國使用最多的還是 Intel 公司的 MCS—51 系列單片機(jī)和美國 Atmel 公司的 89C51 單片機(jī)MCS—51 系列單片機(jī)包括三個(gè)基本型 8031、8051 、87518031 內(nèi)部包括一個(gè) 8 位 CPU、128 個(gè)字節(jié) RAM, 21 個(gè)特殊功能寄存器(SFR ) 、4 個(gè) 8 位并行 I/O 口、1 個(gè)全雙工串行口、2 個(gè) 16 位定時(shí)器/ 計(jì)數(shù)器,但片內(nèi)無程序存儲(chǔ)器,需外擴(kuò) EPROM 芯片。比較麻煩,不予采用8051 是在 8031 的基礎(chǔ)上,片內(nèi)集成有 4K ROM,作為程序存儲(chǔ)器,是一個(gè)程序不超過 4K 字節(jié)的小系統(tǒng)。ROM 內(nèi)的程序是公司制作芯片時(shí),代為用戶燒制的,出廠的 8051 都是含有特殊用途的單片機(jī)。所以 8051 適合與應(yīng)用在程序已定,且批量大的單片機(jī)產(chǎn)品中。也不予采用。8751 是在 8031 基礎(chǔ)上,增加了 4K 字節(jié)的 EPROM,它構(gòu)成了一個(gè)程序小于4KB 的小系統(tǒng)。用戶可以將程序固化在 EPROM 中,可以反復(fù)修改程序。但其價(jià)格相對(duì) 8031 較貴。8031 外擴(kuò)一片 4KB EPROM 的就相當(dāng)與 8751,它的最大優(yōu)點(diǎn)是價(jià)格低。隨著大規(guī)模集成電路技術(shù)的不斷發(fā)展,能裝入片內(nèi)的外圍接口電路也可以是大規(guī)模的。也不予采用。AT89C51是美國 ATMEL公司生產(chǎn)的低電壓,高性能 CMOS 8位單片機(jī),片內(nèi)含 4K bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和 128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)3器(ROM) ,器件采用 ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) MCS-51指令系統(tǒng),片內(nèi)置通用 8位中央處理器(CPU)和 Flash存儲(chǔ)單元。功能強(qiáng)大AT89C51單片機(jī)可提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。此設(shè)計(jì)就采用 AT89C51。2.2 物位傳感器的選擇物位是指貯存容器或工業(yè)生產(chǎn)設(shè)備里的液體、粉粒壯固體、氣體之間的分界面位置,也可以是互不相溶的兩種液體間由于密度不等而形成的界面位置。根據(jù)具體用途分為液位、料位、界位傳感器或變送器。物位不僅是物料耗量或產(chǎn)量計(jì)量的參數(shù),也是保證連續(xù)生產(chǎn)和設(shè)備安全的重要參數(shù)。特別是在現(xiàn)代工業(yè)中,生產(chǎn)規(guī)模大,速度高,且常有高溫、高壓、強(qiáng)腐蝕性或易燃易爆物料,對(duì)于物位的監(jiān)視和自動(dòng)控制更是至關(guān)重要。物位測量可用于計(jì)算物料儲(chǔ)量。對(duì)于粉粒體,必須考慮到顆粒間有空隙,應(yīng)區(qū)分密度和容重。密度是指不含空隙的物料每單位體積的質(zhì)量,即通常的質(zhì)量密度 ,?如果乘以重力加速度 g,就成為重力密度 r,簡稱為重度。容重是包含空隙在內(nèi)的每單位體積的重量 v, 也就是視在重度或宏觀重度,它總要比顆粒物質(zhì)本身的重度小,?其差額決定于空隙率。而空隙率又取決與許多因素。例如顆粒形狀、尺寸的一致程度、是否受外力壓實(shí)、是否經(jīng)受過振動(dòng)、有無黏結(jié)性等,所以粉粒體物料的體積儲(chǔ)量和質(zhì)量儲(chǔ)量之間不易精確換算,這是需要注意的。2.2.1 電容式物位傳感器 利用物料介電常數(shù)恒定時(shí)極間電容正比與物位的原理,可構(gòu)成電容式物位傳感器。根據(jù)電機(jī)的結(jié)構(gòu)可將容式物位傳感器分為三中:(1)適用與導(dǎo)電容器中的絕緣性物料,且容器為立式圓筒形,器壁為一極,沿軸線插入金屬棒為另一極,其間構(gòu)成的電容 C 與物位成比例。也可懸掛帶重錘的軟導(dǎo)線作為電機(jī)。 (2)適用與非金屬容器,或雖為金屬容器但非立式圓筒形,物料為絕緣性的。這時(shí)在棒壯電極周圍用絕緣支架套裝金屬筒,筒上下開口,或整體上均勻分布多個(gè)孔,使內(nèi)外物位相同。中央圓棒和與之同軸的套筒構(gòu)成兩個(gè)電極,其間電容和容器形狀無關(guān),只取決于物位。所以這種電極只用于液位,粉粒體容易滯留在極間。 (3)用于導(dǎo)電性物料,起外形和(1)一樣,但中央圓棒電極上包有絕緣材料,電容是由絕緣材料的介電常數(shù)和物位決定的,與物料的介電常數(shù)無關(guān),導(dǎo)電物料使筒壁與中央電極間的距離縮短為絕緣層的厚度,物位升降相當(dāng)于電極面積改變。電容式物位傳感器無可動(dòng)部件,與物料密度無關(guān),但應(yīng)注意物料中含水分時(shí)將4對(duì)測量結(jié)果影響很大,并且要求物料的介電常數(shù)與空氣介電常數(shù)差別大,需用高頻電路。所以不予采用。2.2.2 阻力式料位傳感器阻力式料位傳感器是指物料對(duì)機(jī)械運(yùn)動(dòng)所呈現(xiàn)的阻擋力。粉末顆粒狀物料比液態(tài)物質(zhì)流動(dòng)性差,對(duì)運(yùn)動(dòng)物體有明顯的阻力,利用這一特點(diǎn)可構(gòu)成各種料位傳感器。(1)重錘探索法:在容器頂部安裝由脈沖分配器控制的步進(jìn)電機(jī),此電機(jī)正轉(zhuǎn)時(shí)緩緩釋放懸有重錘的鋼索。重錘下降到與料面接觸后,鋼索受到的合力突然減小,促使力傳感器發(fā)出脈沖。此脈沖改變門電路的狀態(tài),使步進(jìn)電機(jī)改變轉(zhuǎn)向重錘提升,同時(shí)開始脈沖計(jì)數(shù)。待重錘升至頂部觸及行程開關(guān),步進(jìn)電機(jī)停止轉(zhuǎn)動(dòng),同時(shí)計(jì)數(shù)器也停止計(jì)數(shù)并顯示料位(料位值即容器全高減去重錘行程之差) 。顯示值一直保持到下次探索后刷新為另一值。開始探索的觸發(fā)信號(hào)可由定時(shí)電路周期性地供給,也可以人為地啟動(dòng)。不進(jìn)行探索時(shí),重錘保持在容器頂部,以免物料將重錘淹埋。萬一重錘被物位埋沒,排放物料時(shí)產(chǎn)生的強(qiáng)大拉力就可能拉斷鋼索報(bào)警措施及出料過濾柵。但這種方法運(yùn)用了邏輯電路和數(shù)字技術(shù),可連續(xù)測量料位值并輸出數(shù)字量,是數(shù)字傳感器,但其采樣是周期性的,對(duì)時(shí)間而言不連續(xù),此設(shè)計(jì)不予采用。(2)旋槳或推板法:這是一種位式傳感器,或稱料位開關(guān)。在容器壁的某一高度處裝小功率電動(dòng)機(jī),其軸伸入容器內(nèi),末端帶有槳狀葉片。葉片不接觸物料時(shí),自由旋轉(zhuǎn)的空載狀態(tài)下電動(dòng)機(jī)的電流很小,一旦料位上升到與葉片接觸,轉(zhuǎn)動(dòng)阻力增加,甚至成堵轉(zhuǎn)狀態(tài),電流顯著加大。根據(jù)電流的大小使繼電器的接點(diǎn)動(dòng)作,發(fā)出料位報(bào)警或位式控制信號(hào)。如電機(jī)軸經(jīng)過曲柄連桿機(jī)構(gòu)變?yōu)橥鶑?fù)運(yùn)動(dòng),則可帶動(dòng)活塞或平板在容器中做推拉動(dòng)作,即成推板法。旋槳法或推板法不一定都是靠電機(jī)電流的大小時(shí)繼電器接點(diǎn)動(dòng)作,也可以利用離合器或連桿上的傳動(dòng)機(jī)構(gòu),在葉片或推板負(fù)載增大時(shí)改變電接點(diǎn)的通斷狀態(tài)。所用電動(dòng)機(jī)應(yīng)能在長時(shí)間堵轉(zhuǎn)狀態(tài)下,或離合器打滑狀態(tài)下,不致過熱而損壞。這類原理構(gòu)成的料位開關(guān),只能安裝在容器壁上,安裝高度取決于動(dòng)作所對(duì)應(yīng)的料位值。應(yīng)用不那么廣泛,所以次設(shè)計(jì)也不予采用。(3)音叉法:根據(jù)物料對(duì)振動(dòng)中的音叉有無阻力探知料位是否到達(dá)或超過某高度,并發(fā)出通斷信號(hào),這種原理不需要大幅度的機(jī)械運(yùn)動(dòng),驅(qū)動(dòng)功率小,機(jī)械結(jié)構(gòu)簡單、靈敏而可靠。音叉由彈性良好的金屬制成,本身具有確定的固有頻率,如外加交變力的頻率與其固有頻率一致,則叉體處于共振狀態(tài)。由于周圍空氣對(duì)振動(dòng)的阻尼微弱,金屬內(nèi)部的能量損耗又很少,所以只需微小的驅(qū)動(dòng)功率就能維持較強(qiáng)的振動(dòng)。當(dāng)粉粒體物料觸及叉體之后,能量消耗在物料顆粒間的摩擦上,迫使振幅急劇衰減,音叉停5振。為了給音叉提供交變的驅(qū)動(dòng)力,利用放大電路對(duì)壓電元件施加交變電場,靠逆壓電效應(yīng)產(chǎn)生機(jī)械力作用在叉體上。用另外一組壓電元件的正壓電效應(yīng)檢測振動(dòng),它把振動(dòng)力 為微弱的交變電信號(hào)。再由電子放大器和移相電路,把檢振元件的信號(hào)放大。經(jīng)過移相,施加到驅(qū)動(dòng)元件上去,構(gòu)成閉環(huán)振蕩器。在這個(gè)閉環(huán)中,既有機(jī)械能也有電能,叉體是其中的一個(gè)環(huán)節(jié),倘若受到物料阻尼難以振動(dòng),正反饋的幅值和相位都將明顯的改變,破壞了振蕩條件,就會(huì)停振。只要在放大電路的輸出端接以適當(dāng)?shù)钠骷?,不難得到開關(guān)信號(hào)。為了保護(hù)壓電元件免受物料損壞和粉塵污染,將驅(qū)動(dòng)和檢振元件裝在叉體內(nèi)部,經(jīng)過金屬膜片傳遞振動(dòng)。如果在容器的上下方都裝叉體,可以實(shí)現(xiàn)自動(dòng)進(jìn)料或自動(dòng)出料的邏輯控制,或者把料位越限信號(hào)遠(yuǎn)傳到控制室。在控制室里的控制電路判斷料位是否越限,并按要求使被控的進(jìn)出料設(shè)備啟停。并且叉體的制造和裝配良好時(shí),音叉也可用于液體測量和控制。在測量時(shí)不需要大幅度的機(jī)械運(yùn)動(dòng),驅(qū)動(dòng)功率小,機(jī)械結(jié)構(gòu)簡單、靈敏而可靠。此設(shè)計(jì)選擇音叉法阻力式料位傳感器。2.3 存儲(chǔ)器擴(kuò)展電路的選擇2.3.1 24C01擴(kuò)展:串行總線上的各單片機(jī)或集成電路模塊,通過一條數(shù)據(jù)線(SDA)和一條時(shí)鐘線(SCL),按照通信規(guī)約進(jìn)行尋址和信息傳輸。每個(gè)集成電路模塊都有唯—偽地址,既可以是主控機(jī)( 能控制總線,并能完成一次傳輸過程的初始化和產(chǎn)生時(shí)鐘信號(hào)及傳輸終止信號(hào)的器件) 或被控機(jī)(被主控器尋址的器件),可以是發(fā)送器(在總線 1:發(fā)送信息的器件) 或接收器( 從總線上接收治息的器件) I2C 總線上的器件,根據(jù)它的不同工作狀態(tài),可分為主控發(fā)送器、主控接收器、被控發(fā)送器、被控接收器。當(dāng)多個(gè)主控器同時(shí)企圖控制總線而不丟失信,這叫多主競爭。這時(shí)就要進(jìn)行仲裁,仲裁就是針對(duì)這種情況進(jìn)行裁決的過程。只允許其卞一個(gè)主控器繼續(xù)占用總線,其它退出豐攙器狀態(tài)。仲裁過程中還要保證總線的信息不丟失。多主競爭時(shí)必須對(duì)所有參與競爭的主控器的時(shí)鐘信號(hào)進(jìn)行同步處理。信息傳輸時(shí),SCL 為高電平期間,SDA 上的信息必須保持穩(wěn)定不變,只有 SCL 為低電平期間,SDA 上的信息才允許變化。同時(shí)SDA 上信息每一位部和 SCL 的時(shí)鐘脈沖相對(duì)應(yīng)。SCL 沒有時(shí)鐘信號(hào),SDA 信息將停止傳輸處于等待狀態(tài)。這因?yàn)榫€“與”邏輯,使 SCL 在低電平時(shí)鉗住總線。實(shí)現(xiàn)線“與”邏輯功能各 I2C 總線接口的輸出端必須是漏極開路或集電極開路結(jié)構(gòu)。SCL 保持高電平期間, SDA 由高電平向低電平變化這種狀態(tài)定義為起始信號(hào)。SCL6保持高電平期間,SDA 由低電平向高電平變化,這種狀態(tài)定義為終止信號(hào)。 SDA 傳輸?shù)拿總€(gè)字節(jié)必須 8 位(最高有效位首先傳送),每個(gè)傳送字節(jié)必須跟隨一位應(yīng)答位。與應(yīng)答信號(hào)相應(yīng)的時(shí)鐘信號(hào)由主控器產(chǎn)生,發(fā)送器在這個(gè)時(shí)鐘信號(hào)釋放 SDA,使它處于高電平狀態(tài),以便接收由接收器在這位發(fā)出的應(yīng)答信號(hào)。這時(shí)接收器還必須SCL 在這位高電平期間,在 SDA 上輸出一個(gè)恒定低電平信氣以完成應(yīng)答信號(hào)的輸出。整個(gè)傳輸過程中,傳輸?shù)淖止?jié)數(shù)目是沒有限制的。數(shù)據(jù)傳輸一段時(shí)間后,接收器無法繼續(xù)接收更多的數(shù)據(jù),主控器同樣可以終止數(shù)據(jù)的傳送 。]4[24C01 是一種 128 字節(jié)串行 CMOS EEPROM,它具有如下特點(diǎn):1.存儲(chǔ)容量為 128 字節(jié)。2.串行接口可使用普通兩根 I/O 接口。3.具有頁寫模式:每頁 4 字節(jié)。4.同步周期小于 10ms 。它只使用一條數(shù)據(jù)線和一條時(shí)鐘線,采用 ATMEL]4[公司的 24C01 串口存儲(chǔ)器,應(yīng)用簡單方便,但是其編程較為復(fù)雜。2.3.2 2864A 芯片擴(kuò)展:2864A 是一種并行 EEPROM,它的特點(diǎn)同上,但每頁有 16 字節(jié),2864A 與8051 單片機(jī)的接口電路如下圖所示,2864A 的片選端 與高地址線 P2.7 連接,CEP2.7=0 才能選中 2864A,這種線選法決定了 2864A 對(duì)應(yīng)多組地址空間,即0000H~1FFFH,2000H~3FFFH,4000H~5FFFH,6000H~7FFFH,這 8K 字節(jié)存儲(chǔ)器可作為數(shù)據(jù)存儲(chǔ)器使用,但掉電后數(shù)據(jù)不丟失 。]1[2864A 的四種工作方式:(1)維持方式:當(dāng) 為高電平時(shí),2864A 進(jìn)入低功耗維持狀態(tài)。此時(shí),輸出線呈CE高阻狀態(tài),芯片的電流從 140mA 下降至維持電流 60mA。(2)讀方式:當(dāng) 和 均為低電平而 為高電平時(shí),內(nèi)部的數(shù)據(jù)緩沖器被打OWE開,數(shù)據(jù)送上總線,此時(shí),可進(jìn)行讀操作。(3)寫方式:2864A 提供了兩種數(shù)據(jù)寫入方式:頁寫入和字節(jié)寫入。頁寫入:為了提高寫入速度,2864A 片內(nèi)設(shè)置了 16 字節(jié)的“ 頁緩沖器”,并將整個(gè)存儲(chǔ)器陣列劃分成 512 頁,每頁 16 個(gè)字節(jié)。頁的區(qū)分可由地址的高 9 位(A4~A12)來確定,地址線的低四位(A0~A3) 用以選擇頁緩沖器中的 16 個(gè)地址單元之一。對(duì) 2864A 的寫操作可分為兩步來實(shí)現(xiàn):第一步,在軟件控制下把數(shù)據(jù)寫入頁緩沖器,這部稱為頁裝載,與一般的靜態(tài) RAM 寫操作是一樣的。第二步,在最后一個(gè)字節(jié)(即第 16 個(gè)字節(jié))寫入到頁緩沖器后 20ns 自動(dòng)開始,把頁緩沖器的內(nèi)容寫到 EEPROM 陣列中對(duì)應(yīng)的地址單元中,這一步成為頁存儲(chǔ)。7寫方式時(shí), 為低電平,在 下降沿,地址碼 A0~A12 被片內(nèi)鎖存器鎖存,在上CEWE升沿時(shí)數(shù)據(jù)被鎖存片內(nèi)還有一個(gè)字節(jié)裝載限時(shí)定時(shí)器,只要時(shí)間未到,數(shù)據(jù)可以隨機(jī)地寫入頁緩沖器。在連續(xù)向頁緩沖器寫入數(shù)據(jù)的過程中,不用擔(dān)心限時(shí)定時(shí)器會(huì)溢出,因?yàn)槊慨?dāng) 下降沿時(shí),限時(shí)定時(shí)器自動(dòng)被復(fù)位并重新啟動(dòng)計(jì)時(shí)。限時(shí)定時(shí)器要求寫入一個(gè)字節(jié)數(shù)據(jù)的操作時(shí)間 須滿足;3μSALKP: ADD A,R4 ;計(jì)算鍵號(hào)PUSH A ;鍵號(hào)進(jìn)棧保護(hù)LK3: ACALL DIR ;調(diào)用顯示子程序,延時(shí) 6MS ACALL DIR ;調(diào)用判有無鍵閉合子程序,延時(shí) 6MSJNZ LK3 ;判鍵釋放否,未釋放,則循環(huán)POP A ;鍵已釋放,鍵號(hào)出棧->ARETNEXT: INC R4 ;列計(jì)數(shù)器加 1,為下一列掃描做準(zhǔn)備MOV A,R2 ;判是否已掃到最后一列(最右一列) NB Acc.7,KND ;鍵掃描已到最后一列,跳 KND重新;進(jìn)行整個(gè);鍵盤的掃描RL A ;鍵掃描未掃到最后一列,位選碼左;移一位MOV R2,A ;位選碼->R2AJMP LK4KND: AJMP KEYI52KS1: MOV DPTR ,#7F01H ;判有無鍵閉合子程序,全 0->掃描(PA 口)MOV A,#00H ;列線全為低電平MOVX @DPTR,A ;INC DPTR ;DPTR 增 2,指向 PC 口INC DPTRMOVX A,@DPTR ;從 PC口讀行線的狀態(tài)CPL A 行線的狀態(tài)取反,如無鍵按下,則A;中內(nèi)容為 0ANL A,#0FH ;屏蔽無用的高 4位RET PID: MOV R5,3 1H ;取 WMOV R4,32HMOV R3,#00H :取 YiMOV R2,2AHACALL CPL1 ;取 Yi的補(bǔ)碼ACALL DSUM ;計(jì)算 ei=W-YiMOV 39H,R7 ;存 eiMOV 3AH,R6MOV R5,35H ;取 IMOV R4,36HMOV R0,#4 AH ;R0放乘積高位字節(jié)地址指針ACALL MULT1 ;計(jì)算 Pi=I*eiMOV R5,39H :取 eiMOV R4,3AHMOV R3,3BH ;取 ei-1MOV R2,3CHACALL CPL1 ;求 ei-1:的補(bǔ)碼ACALL DSUB ;求 pp=△ei=e i-ei-1:MOV A,R7MOV R5,A :存△eiMOV A,R6MOV R4,AMOV R3,4BH ;取 Pi53MOV R2,4AHACALL DSUM ;求 Pi+Pp MOV 4BH,R7MOV 4AH,R6 ;存和(Pi+即)MOV R5,39HMOV R4,3AH ;取 eiMOV R3,3DHMOV R2,3EH ;取 ei-2ACALL DSUM :計(jì)算 ei=ei-2MOV A,R7MOV R5,AMOV A,R6MOV R4,AMOV R3, 3BHMOV R2,3CH ;取 ei-1ACALL CPL1 :求 ei-1,補(bǔ)碼ACALL DSUM ;計(jì)算 ei=ei-2-ei-1MOV A,R7MOV R5,A ;存和MOV A,R6MOV R4,AMOV R3,3BHMOV R3,3CH ;取 ei-lACALL CPL1 :求 ej-1補(bǔ)碼ACALL DSUM ;計(jì)算 ei=ei- 2-2e i-1、MOV R5,37H ;取 DMOV R4,38HMOV R0,#46HACALL MULT1 ;求出 Pd=D*(ei=ei-2-2ei-1)MOV R5,47HMOV R4,46H :存 PdMOV R3,4BHMOV R2,4AH ;取(pi+PP)ACALL DSUM ;計(jì)算 pi+pp+pdMOV R5,33H ;取 Kp54MOV R4,34HMOV R0,#46HACALL MULTl ;計(jì)算 Kp*(Pi+Pp+Pd)MOV R3,47HMOV R2,46HMOV R5,2FH ;取 ui-1MOV R4,30HACALL DSUM ;求出 ui=ui-l+KP*(Pi+Pp +pd)MOV 2FH,R7 ;存 ui~ui_,MOV 30H,R6MOV 3DH,3BH ;ei-l-ei-2MOV 3EH,3CHMOV 3BH,39H :ei-ei-1MOV 3CH,3AHRET DSUM: MOV A,R4ADD A,R2MOV R6,AMOV A,R5ADDC A,R3MOV R7,ARETCPLI: MOV A,R2CPL AADD A,#0lHMOV R2,AMOV A,R3CPL AADDC A,#00HMOV R3,ARETMULTI: MOV A,R7RLC AMOV SIGN1,C ;存被乘數(shù)符號(hào)位JNC POS1 ;被乘數(shù)為正轉(zhuǎn)55MOV A,R6 ;求補(bǔ)CPL AADD A,#0lHMOV R6,AMOV A,R7CPL AADDC A,#00HMOV R7,APOSI: MOV A,R5RLC AMOV SIGN2,C :存乘數(shù)符號(hào)位JNC POS2 ;乘數(shù)為正轉(zhuǎn)MOV A,R4CPL AADD A,#0lHMOV R4,AMOV A,R5CPL AADDC A,#00HMOV R5,APOSZ: ACALL MUL1,MOV C,SIGN1ANL C,SIGN2JC TPL ;C=1是兩個(gè)負(fù)數(shù)相乘轉(zhuǎn)MOV C,SIGN1ORL C,SIGN2JNC TPL ;C=0是兩個(gè)正數(shù)相乘轉(zhuǎn)DEC R0DEC R0DEC R0MOV A,@R0CPL AADD A,#0lHMOV @R0,AINC R056MOV A,@ROCPL AADDC A,#00HTPL: RETMULT: MOV A,R6 ;取 bMOV B,R4 ;取 dMUL AB ;求 bdMOV @Ro,A ;求 bdLMOV R3, B ;求 bdL~R3MOV A, R4 ;取 dMOV B,R7 ;取 aMUL AB ;求 adADD A,R3 ;求 adL+bdHMOV R3,A ;暫存 adL+bdHMOV A,BADDC A,#00H ;adH+進(jìn)位MOV R2, A ;暫存MOV A,R6 ;取 bMOV B,R5 ;取 cMUL AB ;求 bcADD A, R3 ;求 adL+bcL+bdHINC R0 ;修改指針MOV @R0,A ;乘積第三字節(jié)存入CLR 55BH ;清標(biāo)志MOV A,R2ADDC A,B ;求 adH+bcHMOV R2,AJNC LAST ;無進(jìn)位數(shù)SETB 5BH ;置進(jìn)位標(biāo)志MOV A,R7 ;取 aMOV B,R5 ;取 cMUL AB ;求 acADD A,R2 ;求 acL+adH+bcHINC R0MOV @R0,A ;存積的第二個(gè)字節(jié)57MOV A,BADDC A,#00HMOV C,5BHADDC A,#00HINC R0 :修改指針MOV @R0,A ;存積的最高字節(jié)RET顯示子程序:ORG 055CH MOV R0,#79HMOV @R0,#01HINC R0MOV @R0,#01HINC R0MOV R0,#05HINC R0MOV @R0,#16HINC R0MOV @R0,#1BHINC R0MOV @R0,#1EHMOV DPTR,#4F00HMOV A,#0C3HMOVX @DPTR,AAJMP DISUPORG 0772HMOV R0,#79HMOV R3,#01HMOV A,R3MOV DPTR,#4F01HMOVX @DPTR,AINC DPTRMOV A,@R0ADD A,#12H58MOVC A,@A+PCJNB F0,DISUP2SETB a,7MOVX @DPTR,AACALL D2MSINC R0MOV A,R3JB A,5,DISUP3RL AMOV R3,AAJMP DISUP1ORG 0792HTABLE:DB 3FHDB 06HDB 5BHDB 4FHDB 66HDB 6DHDB 7DHDB 07HDB 7FHDB 6FHDB 77HDB 7CHDB 39HDB 5EHDB 79HDB 71HDB 73HDB 3EHDB 3EHDB 31HDB 48HDB 1CHDB 23H59DB 40HDB 03HDB 18HDB 80HDB 00HDB 3DHDB 76HDB 38HDB 1EHORG 07B1HD2MS :MOV R7,#02HD2MS1:MOV R6,#0FFHDJNZ R6,$DJNZ R7,DSMS1
收藏