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