九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

《微機原理課程設(shè)計》簡易全自動洗衣機設(shè)計課程論文

  • 資源ID:37144475       資源大?。?span id="24d9guoke414" class="font-tahoma">211.02KB        全文頁數(shù):30頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

《微機原理課程設(shè)計》簡易全自動洗衣機設(shè)計課程論文

微機原理課程設(shè)計 微機原理課程設(shè)計姓名: 學號: _ 班級: 專業(yè): 電氣工程及其自動化 學院: 電氣與信息工程學院 目錄一、課程設(shè)計內(nèi)容1二、系統(tǒng)功能要求12.1 基本功能要求12.2 附件功能要求1三、系統(tǒng)方案論證1四、系統(tǒng)硬件設(shè)計24.1 系統(tǒng)硬件原理24.2 功能模塊設(shè)計64.3 遇到問題及解決措施7五、系統(tǒng)軟件設(shè)計85.1 總體設(shè)計思想85.2 功能模塊設(shè)計105.3 遇到問題及解決措施11六、總結(jié)11七、附錄13 簡易全自動洗衣機設(shè)計一、課程設(shè)計內(nèi)容(1)利用8255A芯片,在數(shù)碼管上實時顯示洗衣機檔位和洗衣時間倒計時;(2)利用8254芯片,設(shè)置精確倒計時時間或者發(fā)送信號給蜂鳴器;(3)利用8259A芯片,設(shè)置按鍵或開關(guān)中斷控制功能;(4)利用0809芯片,模擬水位傳感器采集一個電壓信號,控制電機旋轉(zhuǎn)。二、系統(tǒng)功能要求2.1 基本功能要求(1)能夠?qū)崿F(xiàn)洗衣機換擋功能,比如設(shè)置“1擋鍵”、“2擋鍵”等不同擋位;(2)能夠?qū)崿F(xiàn)電機的正轉(zhuǎn)功能;比如設(shè)置電機正轉(zhuǎn)3圈,反轉(zhuǎn)3圈,循環(huán)工作;(3)能夠?qū)崿F(xiàn)洗衣機按鍵控制,比如設(shè)置“啟動鍵”、“暫停鍵”或“停止鍵”(4)能夠?qū)崿F(xiàn)按鍵或開關(guān)控制洗衣機的暫停,比如按下“暫停鍵”,正在旋轉(zhuǎn)的 電機停止工作,再按一下“啟動鍵”,洗衣機又繼續(xù)工作;(5)能夠?qū)崿F(xiàn)洗滌、甩干連續(xù)自動功能,甩干后,洗衣機會通過蜂鳴器發(fā)出報 警聲音;2.2 附件功能要求(1)能夠?qū)崿F(xiàn)洗衣機單獨甩干功能,此時電機旋轉(zhuǎn)速度很快;(2)能夠?qū)崿F(xiàn)洗衣機進水、排水或者洗滌、漂洗、甩干等不同功能使用不同顏 色的指示燈;(3)能夠?qū)崿F(xiàn)洗滌、漂洗、甩干全過程自動化;(4)能夠?qū)崿F(xiàn)洗衣機甩干后,發(fā)出優(yōu)美的音樂,音樂一直響直到人為關(guān)掉或者 音樂響一定時間后自動關(guān)閉。(5)自己設(shè)計的其他有特色的功能。三、系統(tǒng)方案論證3.1 方案一輸入設(shè)備主要有啟動按鈕、暫停按鈕、檔位選擇、排水按鈕、及脫水按鈕。輸出設(shè)備主要有電源指示燈、數(shù)碼管、步進電機、蜂鳴器等。首先構(gòu)思系統(tǒng)的總體結(jié)構(gòu),根據(jù)設(shè)計要求確定好系統(tǒng)大致的硬件組成及其結(jié)構(gòu),其次根據(jù)系統(tǒng)的各個功能把軟件分成幾個不同的模塊,依次實現(xiàn)各個模塊的功能,最后把各個模塊組合起來完成整個系統(tǒng)的功能。3.2 方案二根據(jù)任務的要求,選擇了4個數(shù)碼管作為信號輸出,以狀態(tài)輸入開關(guān)作為輸入信號,都連接至8255A芯片上。步進電動機由8255PC4-PC7口驅(qū)動,其中洗衣過程漂洗過程排水過程的時間都由8254提供定時信號,實現(xiàn)在預定時間狀態(tài)的轉(zhuǎn)換。在對芯片進行初始化之后,先判斷輸入信號的狀態(tài),根據(jù)輸入狀態(tài)的不同調(diào)用不同的子程序,鑒于定時程序在很多子程序里調(diào)用到,多次編寫加長了程序的長度,所以每次在調(diào)用之前先將計數(shù)值讀入一個寄存器中,在延時程序中讀取此寄存器中的數(shù)值即可。當按照輸入狀態(tài)運行完之后,最后檢測到已完成的時候就啟動蜂鳴報警,洗衣過程完成。3.3 方案比較方案一相對來說剛開始容易,但是后續(xù)工作麻煩,不容易將每個模塊有機的整合起來,會出現(xiàn)接口沖突,而方案二在設(shè)計初就從全局出發(fā),充分分配好各個端口的配置及用途,避免了方案一中的沖突,所以方案二更優(yōu)越。四、系統(tǒng)硬件設(shè)計4.1 系統(tǒng)硬件原理(1)8255A芯片8255A是一個通用的可編程的并行接口芯片,內(nèi)部有2個8位I/O口(A、B),兩個4位I/O口(PC74、PC30).通過編程可設(shè)置3種工作方式,可適用于CPU與I/O設(shè)備之間的多種數(shù)據(jù)傳送方式的要求。C口可作為數(shù)據(jù)口,可作為信號線( CPU與I/O設(shè)備之間的應答信號),可作為狀態(tài)口,可按位置位/復位。8255A的內(nèi)部結(jié)構(gòu)如圖1所示: 圖1 8255的內(nèi)部結(jié)構(gòu)圖8255的引腳分配:(1)D0D7:8位,雙向,三態(tài)數(shù)據(jù)線,用來與系統(tǒng)數(shù)據(jù)總線相連;(2)端口A、B、C:PA0PA7( A組數(shù)據(jù)信號,用來連接外設(shè)); PB0PB7( B組數(shù)據(jù)信號,用來連接外設(shè));PC0PC7(C組數(shù)據(jù)信號,用來連接外設(shè)或者作為控制信號)。 (3)CS、RESET、WR、RD、A1、A0(內(nèi)部4個端口)。(4)VCC、GND。8255A有三種工作方式,用戶可以通過編程來設(shè)置。方式0簡單輸入/輸出查詢方式;A,B,C三個端口均可。方式1選通輸入/輸出中斷方式;A ,B,兩個端口均可。方式2雙向輸入/輸出中斷方式。只有A端口才有。工作方式的選擇可通過向控制端口寫入控制字來實現(xiàn)。(2)芯片82548254是可編程計數(shù)器/定時器。它的引腳及功能示意圖如圖2所示。數(shù)據(jù)總線緩沖器是8254與CPU之間的數(shù)據(jù)接口,它是一個8位雙向三態(tài)緩沖器。讀/寫控制邏輯接受CPU送來的讀/寫控制信號,并加以組合完成對8254內(nèi)部操作的控制。8254內(nèi)部包含三個獨立的結(jié)構(gòu)功能完全相同的16位可預置的遞減計數(shù)器??刂谱旨拇嫫饔脕泶娣庞蒀PU寫入8254的方式選擇控制字,以確定計數(shù)器的操作方式。 (3)8259芯片8259A,可編程中斷控制器芯片。它的引腳圖如圖3所示。 它是可以用程序控制的中斷控制芯片。單個的8259A能管理8級向量優(yōu)先級中斷。在不增加其他電路的情況下,最多可以級聯(lián)成64級的向量優(yōu)級中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種工作方式的設(shè)定是在初始化時通過軟件進行的。在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對8259A芯片進行初始化編程的狀態(tài)。(4)0809芯片ADC0809是8位逐次逼近型A/D轉(zhuǎn)換器。它由一個八路模擬開關(guān),一個地址譯碼器,一個A/D轉(zhuǎn)換器和一個三態(tài)輸出所存器組成,多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換,三態(tài)輸出用于鎖存A/D轉(zhuǎn)換完的數(shù)據(jù),當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完成的數(shù)據(jù)。IN0-IN7:8條模擬量輸入通道ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應該保持不變,如若模擬量變化太快,則需在輸入端前加采樣保持電路。地址輸入和控制線:4條ALE為地址鎖存允許輸入線,高電平有效,當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道模擬量通過轉(zhuǎn)換器進行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表一所示。表1 0809通道選擇表CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數(shù)字量輸出及控制線:11條ST為轉(zhuǎn)換啟動信號。當ST上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D轉(zhuǎn)換;在跳轉(zhuǎn)期間,ST應保持低電平,EOC為轉(zhuǎn)換結(jié)束信號,當EOC為高電平時,表明轉(zhuǎn)換結(jié)束;否則表明正在進行A/D轉(zhuǎn)換,OE為輸出允許信號,用于控制三條輸出鎖存器想單片機輸出轉(zhuǎn)換得到的數(shù)據(jù),OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)OE=0輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線CLK為時鐘輸入信號線,因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常頻率為500KHZ。VREF(+),VREF(-)為參考電壓輸入。4.2 功能模塊設(shè)計圖4 硬件功能圖圖4硬件功能圖中,系統(tǒng)總體功能模塊在具體實踐中,因硬件資源的限制有所調(diào)整,比如有些電路采用其他電路來模擬,進水部分有電位器來模擬,電機驅(qū)動用直流系統(tǒng)來模擬。其接線圖如圖5所示:圖5 系統(tǒng)接線圖4.3 遇到問題及解決措施問題1: 當把所有線路按照設(shè)計要求連接好過后,發(fā)現(xiàn)芯片8254沒有輸出時鐘信號。解決方法:芯片8254沒有輸出時鐘信號,這表示8254沒有起作用,原以為是芯片壞了,換了好幾個新品牌還是一樣不起作用,后來經(jīng)過不斷排查是由于采用了12V供電電壓,實際要求是5V。問題2:當把所有的線路按照設(shè)計要求連接好之后,發(fā)現(xiàn)電機不能運轉(zhuǎn)。解決方法:經(jīng)檢查是連接到電機驅(qū)動電路上的接線出現(xiàn)斷路,換根接線就把問題解決了五、系統(tǒng)軟件設(shè)計5.1 總體設(shè)計思想程序首先要用偽指令定義一下。然后是8255、8254與8259的初始化,如: MOV DX,CADDR ;8255初始化 MOV AL,MODE OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;計數(shù)器0,方式3 OUT DX,AL MOV DX,MY8259_ICW1 ;初始化實驗系統(tǒng)中8259的ICW1 MOV AL,1BH ;邊沿觸發(fā)、單片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化實驗系統(tǒng)中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化實驗系統(tǒng)中8259的ICW4 MOV AL,01H ;非自動結(jié)束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化實驗系統(tǒng)中8259的OCW1 MOV AL,0FCH ;打開IR0和IR1的屏蔽位 OUT DX,AL 然后按照原先設(shè)計好的原理框圖的步驟設(shè)計檢測洗衣機開/停信號,如; CHECK: MOV DX,PORTB IN AL,DX TEST AL,80H JZ CHECK還有接下來的點亮運行指示燈等程序。在設(shè)計中用到了子程序調(diào)用、循環(huán)、測試等程序。在編程時按照設(shè)計好的原理框圖,結(jié)合微機課程上所學的具有一定功能的程序一一編出來,然后在計算機上進行調(diào)試,發(fā)現(xiàn)錯誤后再進行修改。在編程過程中要注意程序的嵌套使用,即有些程序按照前面流程圖設(shè)計好了但在后面的程序中然要用,所以就要注意調(diào)用。軟件可分為10個模塊:主程序、鍵盤掃描子程序、參數(shù)設(shè)置子程序、延時子程序、顯示子程序、自檢程序、甩干子程序、暫停子程序、蜂鳴器子程序。系統(tǒng)的總體流程圖如圖6所示:開始8255等初始化檢測開關(guān)信號是否為脫水YN設(shè)洗衣標志調(diào)用洗衣子程序結(jié)束啟動蜂鳴器關(guān)閉脫水標志調(diào)用脫水子程序設(shè)脫水標志關(guān)閉洗衣標志 圖6 整體流程方框圖5.2 功能模塊設(shè)計(1)延時功能模塊設(shè)計根據(jù)機箱上給出的芯片我們選用了8254作為定時計數(shù)器,在延時程序中計時,在加水過程中計量加水的量。 由于需要多次調(diào)用延時子程序,所以把他寫成一個DALLY程序,每次調(diào)用的時候配合CALL和RET就能往返于子程序和主程序之間,之前把要記的數(shù)值放在SI寄存器中,在子程序中讀取該寄存器就可以知道要記的數(shù)是多少而不必每次都重新給計數(shù)器賦值,減少了程序的步驟也使得更易讀。(2)洗衣功能模塊設(shè)計洗衣子程序中是一個不停的在正傳反轉(zhuǎn)間循環(huán)的過程,期間每次正轉(zhuǎn)或者反轉(zhuǎn)都調(diào)用了延時子程序,定時3S,在完成5次循環(huán)過后,洗衣過程完成。(3)脫水功能模塊設(shè)計脫水子程序中只需調(diào)用上面做好的延時程序,并在該延時之前打開或關(guān)閉相應的指示燈即可。然后用8086的片選信號加給0832控制電動機正轉(zhuǎn)反轉(zhuǎn),根據(jù)公式 : V0= -NVREF/256計算得到要使電動機保持不轉(zhuǎn)的時候要輸入給80H,而正轉(zhuǎn)則取最大值FFH,反轉(zhuǎn)取最小值00H,由于這樣得到的V0不相同,所以引起了正傳反轉(zhuǎn)時候的速度有些差異,最后等延時子程序執(zhí)行完畢后,關(guān)閉相應指示燈即可完成。脫水、延時、加水等子程序后面都要加上RET,否則將無法跳回主程序MAIN。當時在前幾次通電試驗的時候每次都出現(xiàn)在排水的時候加水指示燈亮起,需要加水后才能熄滅,后檢查發(fā)現(xiàn)就是少了一個RET導致的,執(zhí)行完排水程序后沒返回而是接下去執(zhí)行了加水程序。(4) 甩干、報警功能模塊設(shè)計甩干子程序是一個不停的在正轉(zhuǎn)的過程,甩干可以分為快甩和慢甩兩種檔位,甩干子程序還可以通過按鍵直接跳過洗衣進行調(diào)用。當甩干程序運行結(jié)束后,8254會產(chǎn)生一個時鐘信號給蜂鳴器從而讓蜂鳴器報警,表示洗衣過程結(jié)束。(5)加水子程序設(shè)計加水是這個總程序中很重要的部分,特別是如何將水位信號讀取和比較,最終還要輸出到8253進行計數(shù)。首先打開加水指示燈,將水位信號掃描到寄存器AL中。然后根據(jù)與設(shè)定好的數(shù)據(jù)進行比較確定水位信號是什么,假如檢測到的是高水位的話,跳轉(zhuǎn)到LEVEL,否則給AL置為3,高水位的時候?qū)⒖刂谱謱懡o計數(shù)器0,繼續(xù)執(zhí)行下去直到給BL加上1,當加到與原來保存的水位信號數(shù)值相等的時候,由PC7口將信號傳遞給8253,告之加水計數(shù)程序完成,跳出加水程序,然后關(guān)閉加水指示燈,執(zhí)行下面的程序。5.3 遇到問題及解決措施問題1.通過中斷實現(xiàn)數(shù)碼管計時顯示與步進電機延時相互沖突,導致步進電機不能正常運轉(zhuǎn)。解決方法:經(jīng)過很長時間調(diào)試,還是不能成功,由于時間有限,所以最后只好通過步進電機正反轉(zhuǎn)次數(shù)來計時。問題2.報警功能實現(xiàn)后不知道如何使它停止下來。解決辦法:在進入報警子程序前加變量判斷,通過按鍵控制變量的取反改變,停止報警。六、總結(jié)這次微機原理課程設(shè)計歷時兩個星期,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。以前在上課的時候,老師經(jīng)常強調(diào)在寫一個程序的時候,一定要事先把程序原理方框圖化出來,但是我開始總覺得這樣做沒必要,很浪費時間。但是,這次課程設(shè)計完全改變了我以前的那種錯誤的認識,以前我接觸的那些程序都是很短、很基礎(chǔ)的,但是在課程設(shè)計中碰到的那些需要很多代碼才能完成的任務,畫程序方框圖是很有必要的。因為通過程序方框圖,在做設(shè)計的過程中,我們每一步要做什么,每一步要完成什么任務都有一個很清楚的思路,而且在程序測試的過程中也有利于查錯。其次,以前對于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過一段上機的實踐,對于怎么去排錯、查錯,怎么去看每一步的運行結(jié)果,怎么去了解每個寄存器的內(nèi)容以確保程序的正確性上都有了很大程度的提高。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,通過網(wǎng)絡(luò)和與同學的討論基本上得到解決,提高了自己解決和分析問題的能力。7、 附錄洗衣機程序;*根據(jù)查看端口資源修改下列符號值*IOY1 EQU 3040HIOY0 EQU 3000H ;片選IOY0對應的端口始地址;*MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址MY8254_COUNT0 EQU IOY1+00H*4 ;8254計數(shù)器0端口地址MY8254_COUNT1 EQU IOY1+01H*4 ;8254計數(shù)器1端口地址MY8254_COUNT2 EQU IOY1+02H*4 ;8254計數(shù)器2端口地址MY8254_MODE EQU IOY1+03H*4 ;8254控制寄存器端口地址IOY2 EQU 3080H ;片選IOY0對應的端口始地址;*MY8259_ICW1 EQU IOY2+00H ;實驗系統(tǒng)中8259的ICW1端口地址MY8259_ICW2 EQU IOY2+04H ;實驗系統(tǒng)中8259的ICW2端口地址MY8259_ICW3 EQU IOY2+04H ;實驗系統(tǒng)中8259的ICW3端口地址MY8259_ICW4 EQU IOY2+04H ;實驗系統(tǒng)中8259的ICW4端口地址MY8259_OCW1 EQU IOY2+04H ;實驗系統(tǒng)中8259的OCW1端口地址MY8259_OCW2 EQU IOY2+00H ;實驗系統(tǒng)中8259的OCW2端口地址MY8259_OCW3 EQU IOY2+00H ;實驗系統(tǒng)中8259的OCW3端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTDTABLE1 DB 06H,3FH,73H,77H,39H,06H,5BH,4FH,66H,80HDTABLE3 DB 10H,30H,20H,60H,40H,0C0H,80H,90HDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H TIME1 DB 05HTIME2 DB 05HTIME3 DB 0FHMES DB Press any key to exit!,0AH,0DH,0AH,0DH,$FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;頻率表 DW 495,495,624,742,833,833,833,742,624 DW 624,495,556,495,556,624,495,416,416,371 DW 495,833,742,624,624,495,556,495,556,833 DW 742,624,624,742,833,990,742,624,624,495 DW 556,495,556,624,495,416,416,371,495,0TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;時間表 DB 6, 2, 4, 4, 12, 1, 3, 6, 2 DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 6, 2, 4, 4, 12DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;計數(shù)器0,方式3 OUT DX,AL MOV DX,MY8254_COUNT0 ;裝入計數(shù)初值 MOV AL,00H ;18432分頻 OUT DX,AL MOV AL,48H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,050H ;計數(shù)器2,方式0 OUT DX,AL MOV DX,MY8254_COUNT1 ;裝入計數(shù)初值 MOV AL,03H ;18432分頻 OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,0B6H ;計數(shù)器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;裝入計數(shù)初值 MOV AL,00H ;18432分頻 OUT DX,AL MOV AL,05H OUT DX,AL MOV DX,MY8259_ICW1 ;初始化實驗系統(tǒng)中8259的ICW1 MOV AL,1BH ;邊沿觸發(fā)、單片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化實驗系統(tǒng)中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化實驗系統(tǒng)中8259的ICW4 MOV AL,01H ;非自動結(jié)束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化實驗系統(tǒng)中8259的OCW1 MOV AL,0FCH ;打開IR0和IR1的屏蔽位 OUT DX,AL MOV SI,3000H MOV SI,00H ;數(shù)碼管顯示1 MOV SI+02H,05H ;數(shù)碼管顯示2 MOV SI+04H,01H ;洗滌,甩干判斷變量 MOV SI+06H,01H ;電機速度檔位 MOV SI+08H,01H ;電機輸入節(jié)拍倒轉(zhuǎn)判斷變量 MOV SI+0AH,02H ;電機方向控制變量 MOV SI+0CH,02H ;判斷是否進入電機運行程序的變量 MOV SI+0EH,01H ;警報器關(guān)閉判斷變量 MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口輸出,C口低4位輸入 OUT DX,ALKAISHI:MOV SI,3000H ;讀取變量首地址 MOV DH,SI+8 CMP DH,8 JA ZHI1 ;跳轉(zhuǎn)到節(jié)拍1開始轉(zhuǎn)動 CMP DH,1 JB ZHI8 ;跳轉(zhuǎn)到節(jié)拍8開始轉(zhuǎn)動 JMP JIXUZHI1:MOV SI+8,01H JMP JIXUZHI8:MOV SI+8,08HJIXU:CALL KEYSCAN ;鍵盤掃描 CMP SI+0EH,02H JNZ C MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,0F6H ;計數(shù)器2,方式3 OUT DX,AL MOV AX,0000H MOV DX,MY8254_COUNT2 OUT DX,AL ;裝入計數(shù)初值 MOV AL,AH OUT DX,ALC: MOV AH,1 ;判斷是否有按鍵按下 INT 16H JZ SFRUN ;無按鍵則跳回繼續(xù)循環(huán),有則退出QUIT: MOV AX,4C00H ;結(jié)束程序退出 INT 21HSFRUN: MOV SI,3000H ;讀取變量首地址 MOV DH,SI+0CH CMP DH,01H ;判斷變量SI+0CH JNZ JIXU ;不相等跳轉(zhuǎn)到JIXU MOV DH,SI+0AH CMP DH,01H ;判斷電機運行方向JNZ ZIJIANINC SI+08H ;正向節(jié)拍加1JMP RUN KAISHI1: JMP KAISHI ZIJIAN:DEC SI+8 ;反向節(jié)拍減一RUN:MOV AL,SI+8 ;將變量與節(jié)拍表對應MOV BX,OFFSET DTABLE3AND AX,00FFH ADD BX,AXDEC BX MOV AL,BX MOV DX,MY8255_C OUT DX,ALDANG1:MOV DH,SI+6 ;PC口輸出節(jié)拍數(shù)值CMP DH,05H ;判斷速度檔位調(diào)用相應的延遲時間JNZ DANG2 PUSH CXMOV CX,10H ;運行個節(jié)拍DA1:CALL DALLY1CALL DALLY1CALL DALLY1 CALL KEYSCAN ;鍵盤掃描JMP PP ;跳轉(zhuǎn)到PPDANG2:CMP DH,01HJNZ DANG3DA2:CALL DALLY1CALL DALLY1CALL KEYSCANJMP PPDANG3:CMP DH,02HJNZ PPDA3:CALL DALLY1CALL KEYSCAN JMP PPDANG4:CMP DH,03HJNZ KAISHI1DA4:CALL KEYSCANPP: MOV DX,MY8259_OCW3 ;向8259的OCW3發(fā)送查詢命令 MOV AL,0CH OUT DX,AL IN AL,DX ;讀出查詢字 TEST AL,80H ;判斷中斷是否已響應 JZ AA ;沒有響應則繼續(xù)查詢 AND AL,03H CMP AL,00H JE IR0ISR ;若為IR0請求,跳到IR0處理程序 JNE IR1ISR ;若為IR1請求,跳到IR1處理程序AA: JMP KAISHIDANG4:CMP DH,03HJNZ KAISHI1DA4:CALL KEYSCANJMP KAISHI ;跳轉(zhuǎn)到KAISHI循環(huán)IR0ISR: MOV SI,3000H CMP SI+4H,02H ;判斷是否是甩干模式 JZ M2DIR:CMP SI+0AH,01H ;判斷是否是正向JZ DIR1 MOV SI+0AH,01H JMP M1DIR1:MOV SI+0AH,02H CALL KEYSCANM1: DEC TIME1 ;洗滌圈數(shù)減1 MOV AX,10D DIV TIME1 MOV AL,TIME1 MOV SI+02H,AL CALL KEYSCAN CMP TIME1,00H ;是否洗滌結(jié)束 JZ M JMP CTU ;轉(zhuǎn)入計數(shù)初值 M: MOV SI+4H,02H ;進入甩干模式 MOV SI+6,02H ;速度檔位選2M2: DEC TIME2 ;甩干 計數(shù)減一 MOV SI,0 MOV AL,TIME2 MOV SI+02H,AL ;將計數(shù)值放入數(shù)碼管顯示 CMP SI+02H,00H JZ FINISH JNZ EOI CTU: MOV DX,MY8254_COUNT1 ;裝入計數(shù)初值 MOV AL,00H ;18432分頻 OUT DX,AL MOV AL,03H OUT DX,AL JMP EOI EOI: MOV DX,MY8259_OCW2 ;向?qū)嶒炏到y(tǒng)中8259發(fā)送中斷結(jié)束命令 MOV AL,20H OUT DX,AL JMP KAISHI FINISH: MOV SI+0CH,02H ;關(guān)閉進入電機程序標志 CALL PLAY ;調(diào)用報警程序 JMP KAISHI PLAY PROC NEARSOUND: CMP SI+0EH,02H JZ EOI MOV SI,OFFSET FREQ_LIST ;裝入頻率表起始地址 MOV DI,OFFSET TIME_LIST ;裝入時間表起始地址P1: MOV DX,1CH ;輸入時鐘為1.0416667MHz,1.0416667M = 0FE502H MOV AX,02000H DIV WORD PTR SI ;取出頻率值計算計數(shù)初值,0F4240H / 輸出頻率 MOV DX,MY8254_COUNT2 OUT DX,AL ;裝入計數(shù)初值 MOV AL,AH OUT DX,AL MOV DL,DI ;取出演奏相對時間,調(diào)用延時子程序 CALL DALLY3 DEC TIME3 ADD SI,2 INC DI CMP WORD PTR SI,0 ;判斷是否到曲末? JE SOUNDPLAY ENDP DALLY1 PROC NEAR ;軟件延時子程序 PUSH CX PUSH AX MOV CX,008FHD11:MOV AX,5000HD22:DEC AX JNZ D22 PUSH CX PUSH AX CALL KEYSCAN POP AX POP CXLOOP D11 POP AX POP CX RETDALLY1 ENDPKEYSCAN PROC NEAR ;鍵盤掃描子程序BEGIN:CALL DIS ;顯示刷新 CALL CLEAR ;清屏CALL CCSCAN ;掃描按鍵JNZ GETKEY1 ;有鍵按下則跳置GETKEY1 JMP GOBACK1GETKEY1:CALL DIS ;顯示刷新 CALL DALLY CALL DALLY CALL CLEAR ;清屏CALL CCSCAN ;再次掃描按鍵JNZ GETKEY2 ;有鍵按下則跳置GETKEY2JMP BEGIN ;否則跳回開始繼續(xù)循環(huán)GETKEY2:MOV CH,0FEHMOV CL,00H ;設(shè)置當前檢測的是第幾列COLUM: MOV AL,CH ;選取一列,將X1X4中一個置0 MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C ;讀Y1Y4,用于判斷是哪一行按鍵閉合 IN AL,DXL1: TEST AL,01H ;是否為第1行 JNZ L2 ;不是則繼續(xù)判斷 MOV AL,00H ;設(shè)置第1行第1列的對應的鍵值JMP KCODEBEGIN1:JMP BEGINL2: TEST AL,02H ;是否為第2行 JNZ L3 ;不是則繼續(xù)判斷 MOV AL,04H ;設(shè)置第2行第1列的對應的鍵值 JMP KCODEL3: TEST AL,04H ;是否為第3行 JNZ L4 ;不是則繼續(xù)判斷 MOV AL,08H ;設(shè)置第3行第1列的對應的鍵值JMP KCODEL4: TEST AL,08H ;是否為第4行 JNZ NEXT ;不是則繼續(xù)判斷 MOV AL,0CH ;設(shè)置第4行第1列的對應的鍵值KCODE: ADD AL,CL ;將第1列的值加上當前列數(shù),確定按鍵值CALL PUTBUF ;保存按鍵值PUSH AXKON: CALL DIS ;顯示刷新CALL CLEAR ;清屏CALL CCSCAN ;掃描按鍵,判斷按鍵是否彈起JNZ KON ;未彈起則繼續(xù)循環(huán)等待彈起POP AXNEXT: INC CL ;當前檢測的列數(shù)遞增 MOV AL,CHTEST AL,08H ;檢測是否掃描到第4列JZ BEGIN1 ROL AL,1 ;沒檢測到第4列則準備檢測下一列MOV CH,ALJMP COLUMGOBACK1:RETKEYSCAN ENDPCCSCAN PROC NEAR ;掃描是否有按鍵閉合子程序 MOV AL,00H MOV DX,MY8255_A ;將4列全選通,X1X4置0OUT DX,AL MOV DX,MY8255_C IN AL,DX ;讀Y1Y4NOT AL AND AL,0FH ;取出Y1Y4的反值RETCCSCAN ENDPCLEAR PROC NEAR ;清除數(shù)碼管顯示子程序 MOV DX,MY8255_B ;段位置0即可清除數(shù)碼管顯示 MOV AL,00H OUT DX,ALRETCLEAR ENDPDIS PROC NEAR ;顯示鍵值子程序 PUSH AX PUSH SI MOV SI,3006H MOV DL,0F7HMOV AL,DLAGAIN: PUSH DX MOV DX,MY8255_A OUT DX,AL ;設(shè)置X1X4,選通一個數(shù)碼管 MOV AL,SI ;取出緩沖區(qū)中存放鍵值 MOV BX,OFFSET DTABLE AND AX,00FFHADD BX,AX MOV AL,BX MOV DX,MY8255_B OUT DX,AL ;寫入數(shù)碼管ADpCALL DALLYDEC SIDEC SI ;取下一個鍵值 POP DX MOV AL,DLTEST AL,01H ;判斷是否顯示完? JZ OUT1 ;顯示完,返回ROR AL,1 MOV DL,ALJMP AGAIN ;未顯示完,跳回繼續(xù)OUT1: POP SIPOP AX RETDIS ENDPPUTBUF PROC NEAR ;保存鍵值子程序 MOV SI,3000H CMP AL,00H ;是否案件0按下JNZ MODEMDL:CMP SI+4,01HJZ MDL1 MOV SI+4,01H JMP LASTMDL1:MOV SI+4,02H JMP LASTMODE:CMP AL,01H ;是否案件1按下JNZ STOP CMP SI+0CH,01H JZ MODE1MOV SI+0CH,01H ;打開進入電機程序標志JMP LASTCMP AL,03HMOV SI+0EH,02H ;關(guān)閉進入電機程序標志MODE1:MOV SI+0CH,02H ;是否案件2按下 JMP LASTSTOP:CMP AL,02H ;比較暫停標志變量JNZ GRD1MOV SI+0CH,02H ;關(guān)閉進入電機程序標志MOV TIME1,05H ;洗滌,甩干次數(shù)重置MOV TIME2,05HMOV SI+4,01H ;重置洗滌模式MOV SI+6,02H

注意事項

本文(《微機原理課程設(shè)計》簡易全自動洗衣機設(shè)計課程論文)為本站會員(1666****666)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!