風(fēng)扇自動(dòng)程序控制器設(shè)計(jì)_第1頁(yè)
風(fēng)扇自動(dòng)程序控制器設(shè)計(jì)_第2頁(yè)
風(fēng)扇自動(dòng)程序控制器設(shè)計(jì)_第3頁(yè)
風(fēng)扇自動(dòng)程序控制器設(shè)計(jì)_第4頁(yè)
風(fēng)扇自動(dòng)程序控制器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 課 程 設(shè) 計(jì) -電風(fēng)扇自動(dòng)程序控制器設(shè)計(jì) 學(xué)生姓名: 熊偉 學(xué) 院: 信息工程學(xué)院 班 級(jí): 12應(yīng)用電子技術(shù) 學(xué) 號(hào): 2012011862 指導(dǎo)教師: 鄧?guó)櫢?日 期: 2014 年 12 月 目 錄摘 要.11 總體設(shè)計(jì)思想.22 硬件設(shè)計(jì).3 2.1硬件設(shè)計(jì)基本概要.3 2.2 8255A的設(shè)計(jì).4 2.3 8253的設(shè)計(jì).4 2.4步進(jìn)電機(jī)的設(shè)計(jì).5 2.5硬件系統(tǒng)原理圖.53 軟件設(shè)計(jì).6 3.1風(fēng)扇運(yùn)行控制模塊.7 3.2按鍵判斷控制模塊.7 3.3風(fēng)速控制模塊.9 3.4類(lèi)型控制模塊.10 3.5定時(shí)控制模塊.10 3.6停止控制模塊.114 系統(tǒng)調(diào)試及仿真.125 心得與

2、體會(huì).14參考文獻(xiàn).15附錄 源程序及其說(shuō)明.16 1 總體設(shè)計(jì)思想本次課程設(shè)計(jì)任務(wù)主要基于8086以及各種接口芯片結(jié)合匯編語(yǔ)言實(shí)現(xiàn)對(duì)家用風(fēng)扇控制器的模擬,運(yùn)用8086CPU結(jié)合匯編語(yǔ)言編寫(xiě)的軟件來(lái)實(shí)現(xiàn)各種信號(hào)的處理與變換,以得到想要的控制信號(hào)。8255A接收開(kāi)關(guān)信號(hào),驅(qū)動(dòng)風(fēng)扇的轉(zhuǎn)動(dòng)信號(hào)輸出,并接收8253產(chǎn)生的控制信號(hào)。8253主要實(shí)現(xiàn)各種風(fēng)種的控制信號(hào),從而得到自然、睡眠的類(lèi)型風(fēng)。在模擬中通過(guò)開(kāi)關(guān)來(lái)實(shí)現(xiàn)各種控制信號(hào)的輸入,再通過(guò)8255的端口進(jìn)行讀取,再由8086通過(guò)軟件對(duì)采入的信號(hào)進(jìn)行辨別進(jìn)而轉(zhuǎn)入到相應(yīng)的功能子程序中以實(shí)現(xiàn)各種功能。在各種功能的背后,通過(guò)8086驅(qū)動(dòng)相應(yīng)功能的硬件設(shè)備實(shí)現(xiàn)

3、各種功能的切換。  圖1-1 硬件設(shè)計(jì)框圖 此任務(wù)控制器已基本實(shí)現(xiàn)所有風(fēng)扇控制功能,而現(xiàn)在幾乎所有的風(fēng)扇都能實(shí)現(xiàn)定時(shí)功能,故可以在控制器的設(shè)計(jì)中擴(kuò)展定時(shí)功能以達(dá)到全面控制的目的。風(fēng)扇控制停止后,后續(xù)狀態(tài)任務(wù)書(shū)上未作要求,現(xiàn)設(shè)計(jì)其能在停止后處于等待狀態(tài),當(dāng)且僅當(dāng)有風(fēng)速鍵按下后,控制器可恢復(fù)繼續(xù)控制風(fēng)扇的運(yùn)行,實(shí)現(xiàn)控制器的循環(huán)控制。2 硬件設(shè)計(jì)2.1 硬件設(shè)計(jì)基本概要根據(jù)設(shè)計(jì)要求和內(nèi)容,用可編程并行接口芯片8255A PC口低四位接收4個(gè)按鍵(分別表示風(fēng)速、風(fēng)種、定時(shí)、停止)的狀態(tài)以啟動(dòng)電扇或設(shè)置相應(yīng)的工作狀態(tài)。這樣就需要4個(gè)按鍵,因此可以用實(shí)驗(yàn)箱上的某一列的4個(gè)按鍵,可以將此

4、列的列選擇線直接接為低電平,4個(gè)行輸入線接到8255的C口。這樣可以直接從8255的口讀取按鍵的狀態(tài),從而執(zhí)行相應(yīng)的操作。要通過(guò)一個(gè)按鍵來(lái)控制2個(gè)以上的狀態(tài),可以通過(guò)按鍵的次數(shù)來(lái)控制第幾種狀態(tài),比如風(fēng)速有三種狀態(tài)(弱、中、強(qiáng)),可以用按鍵1次控制弱,按鍵2次控制中,按鍵3次控制強(qiáng),這樣就可以實(shí)現(xiàn)一鍵控制多鐘狀態(tài)了。 控制器的指示燈,使用六個(gè)LED燈進(jìn)行顯示,分別顯示不同風(fēng)速、類(lèi)型等6個(gè)指示信號(hào)。顯示模塊狀態(tài)表示如下表2-1所示。用四相步進(jìn)電動(dòng)機(jī)作為電風(fēng)扇,其轉(zhuǎn)速可通過(guò)改變其驅(qū)動(dòng)電平的頻率來(lái)改變步進(jìn)電機(jī)的速度。利用8255A的PC口高四位對(duì)步進(jìn)電機(jī)進(jìn)行四相四拍驅(qū)動(dòng)。風(fēng)種時(shí)間控制可由可編

5、程計(jì)數(shù)器/定時(shí)器 8253來(lái)實(shí)現(xiàn)??蛇x用8253工作在方式3。在這種方式下,當(dāng)CPU輸入控制字后,輸出將為高,在寫(xiě)入計(jì)數(shù)值后計(jì)數(shù)器將立即自動(dòng)對(duì)輸入時(shí)鐘CLK計(jì)數(shù),計(jì)數(shù)器減為1時(shí),輸出將變低,方式2時(shí)8253不可用重新設(shè)置計(jì)數(shù)值就能連續(xù)工作,保證了定時(shí)的精確。 表2-1 顯示模塊代碼狀態(tài)表示按鍵狀態(tài) 相應(yīng)LED燈顯示器風(fēng)速弱1中2強(qiáng)3類(lèi)型正常4自然5睡眠62.2 8255A的設(shè)計(jì)8255A的PA工作在方式0的基本輸入方式作為控制信號(hào)的輸入,接收8253的信號(hào)來(lái)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)與停止。PC低四位工作在方式0的基本輸入方式,用來(lái)接收四個(gè)開(kāi)關(guān)的開(kāi)關(guān)信號(hào),高四位工作在方式0的基本輸出方式作為四相步進(jìn)電

6、機(jī)的四相線路輸出電路用來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。PB口工作在方式0的基本輸出方式,用低六位來(lái)控制六個(gè)LED燈的亮和滅。2.3 8253的設(shè)計(jì) 先利用通道0對(duì)時(shí)鐘進(jìn)行分頻,已獲得可較好利用的時(shí)鐘,得到周期為四秒的方波為后面能自然和睡眠的狀態(tài)產(chǎn)生八秒高電平四秒低電平以及周期為十六秒的方波做準(zhǔn)備。使用通道2用來(lái)產(chǎn)生類(lèi)型風(fēng)的狀態(tài)信號(hào),在自然風(fēng)類(lèi)型時(shí),讓其工作在方式2產(chǎn)生八秒高電平四秒低電平,當(dāng)高電平時(shí)驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng),低電平則返回繼續(xù)檢測(cè),以實(shí)現(xiàn)自然風(fēng)的模擬;在睡眠的類(lèi)型時(shí),通道2工作在方式3產(chǎn)生周期為十六秒的方波,當(dāng)高電平時(shí)驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng),低電平則返回繼續(xù)檢測(cè),以實(shí)現(xiàn)睡眠風(fēng)的模擬。2.4 步進(jìn)電機(jī)的設(shè)

7、計(jì)步進(jìn)電機(jī)可接受數(shù)字控制信號(hào)(電脈沖信號(hào))并轉(zhuǎn)化成與之相對(duì)應(yīng)的角位移或直線位移,因而本身就是一個(gè)完成數(shù)字模擬轉(zhuǎn)化的執(zhí)行元件。而且它能進(jìn)行開(kāi)環(huán)位置控制,輸入一個(gè)脈沖信號(hào)就得到一個(gè)規(guī)定的位置增量。本次課程設(shè)計(jì)使用的電機(jī)為四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)的轉(zhuǎn)速取決于脈沖頻率、轉(zhuǎn)子齒數(shù)和拍數(shù)。其角速度與脈沖頻率成正比,而且在時(shí)間上與脈沖同步。因而在轉(zhuǎn)子齒數(shù)和運(yùn)行拍數(shù)一定的情況下,只要控制脈沖頻率即可獲得所需速度。2.5 系統(tǒng)硬件原理圖 圖2-1 系統(tǒng)硬件原理圖3 軟件設(shè)計(jì) 硬件的設(shè)計(jì)完成后,運(yùn)用匯編語(yǔ)言編寫(xiě)軟件部分通過(guò)80

8、86CPU實(shí)現(xiàn)各種信號(hào)的輸入/輸出以及相關(guān)信號(hào)的處理,從而控制步進(jìn)電機(jī)的各種轉(zhuǎn)態(tài)的轉(zhuǎn)換控制。 軟件設(shè)計(jì)主體流程圖如圖3-1所示。Y開(kāi)始初始化8255A,8253通道1風(fēng)速鍵是否按下初始化風(fēng)速:弱,類(lèi)型:正常風(fēng)扇運(yùn)行子模塊風(fēng)速鍵是否按下下類(lèi)型鍵是否按下停止鍵是否按下風(fēng)扇控制子模塊類(lèi)型控制子模塊停止子模塊YNYNY圖3-1風(fēng)扇控制器軟件總流程圖3.1 風(fēng)扇運(yùn)行控制模塊 此模塊主要控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)以及轉(zhuǎn)速,亦是整個(gè)控制器的主控部分。實(shí)現(xiàn)風(fēng)扇各種功能的“CPU”。其中主要部分是驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)的子程序,每次依次對(duì)四相電路驅(qū)動(dòng)一次,由于8086處理速度非??煸谌庋劭磥?lái)電機(jī)沒(méi)有微停抖動(dòng)的情況,步進(jìn)

9、電機(jī)就是在連續(xù)的轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)轉(zhuǎn)動(dòng)需要判斷兩個(gè)控制信號(hào),一個(gè)是類(lèi)型信號(hào)PA0另一個(gè)是定時(shí)信號(hào)PA1,當(dāng)兩者都是高電平時(shí)才去驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。風(fēng)扇運(yùn)行控制模塊流程圖如圖3-2所示:PA0是高電平PA1是高電平驅(qū)動(dòng)步進(jìn)電機(jī)顯示當(dāng)前狀態(tài)NNYY停止控制模塊風(fēng)扇運(yùn)行模塊子程序子程序返回圖3-2風(fēng)扇運(yùn)行控制模塊流程圖3.2 按鍵判斷控制模塊常用風(fēng)扇開(kāi)關(guān)是彈簧式,但平臺(tái)上是單刀單擲的開(kāi)關(guān),若用常用方法判斷其是高電平(或低電平)每次撥完開(kāi)關(guān)后需對(duì)開(kāi)關(guān)撥回原來(lái)的狀態(tài)下次才能正常撥動(dòng)開(kāi)關(guān),相當(dāng)不方便。我采用另一種判斷方法,每次有按鍵按下后后保存他們的開(kāi)關(guān)狀態(tài)當(dāng)下次有開(kāi)關(guān)狀態(tài)變化時(shí)就可以知道有按鍵按下進(jìn)行按鍵判斷

10、。首先判斷上一次的開(kāi)關(guān)狀態(tài)與此次檢測(cè)的狀態(tài)是否相同,不同則分別判斷四個(gè)開(kāi)關(guān)狀態(tài)是否變化,若有就轉(zhuǎn)入相應(yīng)的子模塊中。按鍵判斷控制模塊圖如圖3-3所示。開(kāi)關(guān)狀態(tài)是否變化保存此次開(kāi)關(guān)狀態(tài)風(fēng)速開(kāi)關(guān)狀態(tài)變化停止開(kāi)關(guān)狀態(tài)變化定時(shí)開(kāi)關(guān)狀態(tài)變化類(lèi)型開(kāi)關(guān)狀態(tài)變化NNNNNY風(fēng)速控制模塊YYY類(lèi)型控制模塊定時(shí)控制模塊停止控制模塊開(kāi)關(guān)模塊子程序Y子程序返回 圖3-3按鍵控制模流程圖3.3 風(fēng)速控制模塊此次任務(wù)中使用步進(jìn)電機(jī)進(jìn)行模擬,步進(jìn)電機(jī)的速度控制運(yùn)用PWM方法,通過(guò)改變頻率來(lái)實(shí)現(xiàn)速度控制。在軟件編程中,通過(guò)8255A的PB口輸出驅(qū)動(dòng)步進(jìn)電機(jī),通過(guò)改變單拍輸出的延時(shí)時(shí)間來(lái)改變速度,延時(shí)越短速度越快。在設(shè)計(jì)中,置一

11、數(shù)據(jù)BUF1單元保存延時(shí)時(shí)間,不同的速度選擇時(shí),置不同數(shù)據(jù)來(lái)改變延時(shí)的長(zhǎng)短從而實(shí)現(xiàn)速度的控制。另置一數(shù)據(jù)單元BUF2保存當(dāng)前風(fēng)速狀態(tài),BUF2在1、2、3之間循環(huán),分別代表弱、中、強(qiáng)并作為狀態(tài)數(shù)據(jù)顯示。風(fēng)速控制模塊流程圖如圖3-4所示。BUF2為弱風(fēng)狀態(tài)BUF2加1BUF2為中速狀態(tài)BUF2為強(qiáng)風(fēng)狀態(tài)BUF1置弱風(fēng)延時(shí)時(shí)間數(shù)據(jù)BUF1置中風(fēng)延時(shí)時(shí)間數(shù)據(jù)BUF1置強(qiáng)風(fēng)延時(shí)時(shí)間數(shù)據(jù) BUF2清零YYYNNN風(fēng)速控制模塊子程序子程序返回圖3-4風(fēng)速控制模塊流程圖3.4 類(lèi)型控制模塊類(lèi)型的控制主要運(yùn)用8253來(lái)產(chǎn)生各種狀態(tài)波形信號(hào),通過(guò)檢測(cè)信號(hào)的高低電平來(lái)控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。此模塊主要來(lái)初始化8253

12、通道1的工作狀態(tài)。在數(shù)據(jù)段中置一數(shù)據(jù)單元BUF3來(lái)存儲(chǔ)類(lèi)型的狀態(tài)數(shù)據(jù),BUF3在1、2、3之間循環(huán)分別代表類(lèi)型中的正常、自然以及睡眠三種類(lèi)型并作為狀態(tài)數(shù)據(jù)顯示。類(lèi)型控制模塊流程圖如圖3-5所示。BUF3為正常狀態(tài)BUF3加1BUF3為自然狀態(tài)BUF3為睡眠狀態(tài)PC0、PC1、PC2輸出0 ,8253所有通道門(mén)控置0PC0、PC1輸出1通道2初始化工作在方式2PC0、PC1輸出1通道2初始化工作在方式3 BUF3清零YYYNNN類(lèi)型控制模塊子程序子程序返回圖3-5類(lèi)型控制模塊流程圖3.5 定時(shí)控制模塊定時(shí)也是通過(guò)8253產(chǎn)生控制信號(hào)來(lái)控制,通過(guò)8253的通道2工作在方式4實(shí)現(xiàn)定時(shí),在定時(shí)完后會(huì)在

13、風(fēng)扇運(yùn)行控制模塊中轉(zhuǎn)到停止模塊中。在數(shù)據(jù)段中置一數(shù)據(jù)單元BUF4來(lái)存儲(chǔ)定時(shí)類(lèi)型的狀態(tài)數(shù)據(jù),BUF4在1、2、3之間循環(huán)分別代表類(lèi)型中的8秒、16秒以及32秒三種類(lèi)型并作為狀態(tài)數(shù)據(jù)顯示。定時(shí)控制模塊流程圖如圖3-6所示。BUF4為8S狀態(tài)BUF4加1BUF4為16S狀態(tài)BUF4為32S狀態(tài)PC5輸出1 ,初始化通道38S的計(jì)數(shù)初值PC5輸出1 ,初始化通道316S的計(jì)數(shù)初值PC5輸出1 ,初始化通道332S的計(jì)數(shù)初值BUF4清零YYYNNN定時(shí)控制模塊子程序子程序返回圖3-6定時(shí)控制模塊流程圖3.6 停止控制模塊停止?fàn)顟B(tài)主要實(shí)現(xiàn)風(fēng)扇暫時(shí)性的停止運(yùn)行,在某個(gè)鍵按下后又能繼續(xù)運(yùn)轉(zhuǎn)。按要求只有在風(fēng)速鍵

14、按下才能繼續(xù)運(yùn)行。此模塊主要對(duì)已運(yùn)行的風(fēng)扇停止后所有狀態(tài)進(jìn)行清零,以保證再次運(yùn)行后能按初始狀態(tài)運(yùn)行。停止模塊流程圖如圖3-7所示。BUF1、BUF2、BUF3、BUF4清零PC0、PC1、PC2輸出為08253所有通道門(mén)控清零停止模塊子程序子程序返回圖3-7停止控制模塊流程圖4 系統(tǒng)調(diào)試及仿真1、當(dāng)程序運(yùn)行時(shí),進(jìn)入DOS狀態(tài)下控制器面板的菜單選項(xiàng):按鈕為三個(gè),分別為“風(fēng)速”、“類(lèi)型”和“停止”,LED指示燈共六個(gè),分別指示風(fēng)速“強(qiáng)”、“中”、“弱”,類(lèi)型分別為“睡眠”、“自然”和“正?!?。2、電扇處于停轉(zhuǎn)狀態(tài)時(shí):所有指示燈不亮,只有按下“風(fēng)速”鍵時(shí),其狀態(tài)由“弱” “中” “強(qiáng)” “弱” 往復(fù)

15、循環(huán)改變,每按一下按鍵改變一次;按“類(lèi)型”鍵時(shí),其狀態(tài)由“正?!?“睡眠” “自然” “正?!?往復(fù)循環(huán)改變;電扇在任何狀態(tài),只要按停止鍵,則進(jìn)入停轉(zhuǎn)狀態(tài)。系統(tǒng)利用proteus進(jìn)行仿真,仿真圖詳見(jiàn)下圖4-1 圖4-1 系統(tǒng)仿真圖5. 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果圖如圖6.1所示圖 5.1 實(shí)驗(yàn)結(jié)果5 心得與體會(huì)通過(guò)此次的課程設(shè)計(jì)任務(wù),我加深了自己對(duì)匯編語(yǔ)言以及各接口芯片使用方法的理解,在實(shí)踐中體會(huì)到各芯片的工作的狀態(tài)及使用方法。本學(xué)期學(xué)習(xí)過(guò)的8255A和8253芯片的相關(guān)內(nèi)容,通過(guò)這次課程設(shè)計(jì),通過(guò)設(shè)計(jì),看書(shū),也有了比較深刻地了解。與此同時(shí)還加深了對(duì)匯編程序結(jié)構(gòu),指令,調(diào)用等基礎(chǔ)知識(shí)的認(rèn)識(shí)。在實(shí)踐中充分

16、利用所學(xué)知識(shí)結(jié)合實(shí)際情況作出符合要求的設(shè)計(jì)。在具體的調(diào)試過(guò)程中遇到了很多問(wèn)題,我們小組通過(guò)查找各方面資料解決了這些問(wèn)題。在這我學(xué)到了部分proteus仿真中及硬件調(diào)試方面常出現(xiàn)的問(wèn)題及解決方法。而在軟件設(shè)計(jì)方面我也學(xué)到常見(jiàn)邏輯錯(cuò)誤及其解決方法。能在實(shí)踐中磨礪自己的意志以及鍛煉自己的動(dòng)手操作能力,提升自己獨(dú)立完成小型系統(tǒng)的設(shè)計(jì)任務(wù)能力。為以后在大型系統(tǒng)設(shè)計(jì)中能奠定一定的基礎(chǔ)知識(shí)及實(shí)際操作能力,并為自己積累了許多寶貴的經(jīng)驗(yàn)教訓(xùn)。通過(guò)這次短暫的課程設(shè)計(jì),不僅使我加深了對(duì)接口程序設(shè)計(jì)的認(rèn)識(shí),對(duì)接口各部件的工作原理也有了進(jìn)一步的了解,也增強(qiáng)了分析故障以及獨(dú)立處理問(wèn)題的能力。 參考文獻(xiàn)1 彭虎. 微機(jī)原理

17、與接口技術(shù). 機(jī)械工業(yè)出版社,2001年3月2 雷麗文. 微機(jī)原理與接口技術(shù). 電子工業(yè)出版社 1999年第一版3 韓海編著. 匯編語(yǔ)言程序設(shè)計(jì). 西安:西安電子科技大學(xué)出版社,20004 胡壽松. 自動(dòng)控制原理. 科學(xué)出版社,1999 5 劉樂(lè)善. 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用. 武漢:華中科技大學(xué)出版社,20046 沈美明. IBM PC機(jī)匯編語(yǔ)言程序設(shè)計(jì). 清華大學(xué)出版社,1991年第一版附錄 源程序及其說(shuō)明說(shuō)明:DS:077AH存儲(chǔ)延時(shí)時(shí)間控制步進(jìn)電機(jī)速度DATA0存儲(chǔ)當(dāng)前狀態(tài)顯示數(shù)據(jù)DATA存儲(chǔ)當(dāng)前狀態(tài)類(lèi)型數(shù)據(jù)源程序:CODES SEGMENT ASSUME CS:CODES;8253端

18、口地址IOCON8253 EQU 43H IO08253 EQU 40H IO18253 EQU 41H IO28253 EQU 42H ;8255端口地址IOCON8255 EQU 0FF2BH IOB8255 EQU 0FF29H IOC8255 EQU 0FF2AH ORG 1000HSTART: MOV CS:DATA0,0H MOV CS:DATA01,0H MOV CS:DATA02,0H;8255初始化MOV AL,10000011B MOV DX,IOCON8255 OUT DX,AL;按鍵狀態(tài)數(shù)據(jù) MOV WORD PTR DS:077AH,09FFH;控制器啟動(dòng)程序;判斷是

19、否是風(fēng)速按鍵按下QD: MOV DX,IOC8255 IN AL,DX CMP AL,01 JNE QD MOV BYTE PTR DS:077CH,01H JMP STYLEPRO;檢查是否有鍵鍵入CHECK: MOV DX,IOC8255 IN AL,DX AND AL,0FH CMP AL,BYTE PTR DS:077CH;沒(méi)有則跳出返回JZ CHECKOUT ;判斷輸入鍵的類(lèi)型MOV AH,AL MOV BL,BYTE PTR DS:077CH MOV BYTE PTR DS:077CH,AL MOV BH,BL AND BL,01H AND AL,01H XOR AL,BL;風(fēng)速選

20、擇鍵鍵入JNZ SPEEDPRO MOV AL,AH MOV BL,BH AND BL,02H AND AL,02H XOR AL,BL;風(fēng)類(lèi)型選擇鍵鍵入JNZ STYLEPRO MOV AL,AH MOV BL,BH AND BL,04H AND AL,04H XOR AL,BL;定時(shí)選擇鍵鍵入JNZ L1 MOV AL,AH MOV BL,BH AND BL,08H AND AL,08H XOR AL,BL;停止鍵鍵入JNZ L2 L1: JMP TIMEPRO L2: JMP PAUSEPRO CHECKOUT: RET;風(fēng)速選擇程序模塊SPEEDPRO: MOV AL,CS:DATA

21、ADD AL,1 MOV CS:DATA,AL MOV AL,CS:DATA CMP AL,1 JZ L CMP AL,2 JZ MID ;強(qiáng)風(fēng)MOV CS:DATA,0MOV WORDPTRDS:077AH,00FFHMOV CS:DATA0,03HJMP BACK;弱風(fēng) L:MOV WORD PTR DS:077AH,09FFH MOV CS:DATA0,01H JMP BACK;中風(fēng)MID:MOVWORD PTR DS:077AH,04FFH MOV CS:DATA0,02H JMP BACK BACK:JMP CHECKOUT;類(lèi)型選擇程序模塊STYLEPRO: MOV CS:DATA

22、02,0H MOV AL,CS:DATA1 ADD AL,1 MOV CS:DATA1,AL MOV AL,CS:DATA1 CMP AL,1 JZ NORMAL CMP AL,2 JZ NATURAL MOV CS:DATA1,0 JMP SLEEP ;正常NORMAL: MOV CS:DATA01,01H NORMAL_R: CALL DISP CALL RUN CALL CHECK JMP NORMAL_R ;自然NATURAL: CALL FORMAT8253_NATURAL MOV CS:DATA01,02H NATURAL_R: CALL DISP MOV DX,IOB8255 I

23、N AL,DX TEST AL,1 JNZ N_GO JMP N_CHECK N_GO:CALL RUN N_CHECK: CALL CHECK JMP NATURAL_R ;睡眠SLEEP: CALL FORMAT8253_SLEEP MOV CS:DATA01,03H SLEEP_R: CALL DISP MOV DX,IOB8255 IN AL,DX TEST AL,1 JNZ S_GO JMP S_CHECK S_GO:CALL RUN S_CHECK: CALL CHECK JMP SLEEP_R;定時(shí)選擇程序模塊TIMEPRO: CALL FORMAT8253 MOV CS:DAT

24、A01,0H MOV AL,CS:DATA2 ADD AL,1 MOV CS:DATA2,AL CMP AL,1 JZ TIME1 MOV AL,CS:DATA2 CMP AL,2 JE TIME2 MOV CS:DATA2,0 JMP TIME3 ;8秒定時(shí)TIME1: CALL FORMAT8253_TIME1 MOV CS:DATA02,01H TIME1_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T1_GO JMP PAUSEPRO T1_GO: CALL RUN CALL CHECK JMP TIME1_R

25、;16秒定時(shí)TIME2: CALL FORMAT8253_TIME2 MOV CS:DATA02,02H TIME2_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T2_GO JMP PAUSEPRO T2_GO: CALL RUN CALL CHECK JMP TIME2_R ;32秒定時(shí)TIME3: CALL FORMAT8253_TIME3 MOV CS:DATA02,03H TIME3_R: CALL DISP MOV DX,IOB8255 IN AL,DX NOT AL TEST AL,01 JNZ T3_GO

26、JMP PAUSEPRO T3_GO: CALL RUN CALL CHECK JMP TIME3_R ;停止控制模塊PAUSEPRO: PCHECK: MOV DX,IOC8255 IN AL,DX AND AL,0FH CMP AL,BYTE PTR DS:077CHJZ PCHECK;是否為風(fēng)速鍵 MOV AH,AL MOV BL,BYTE PTR DS:077CH MOV BYTE PTR DS:077CH,AL MOV BH,BL AND BL,01H AND AL,01H XOR AL,BL JZ PCHECK ;狀態(tài)清零MOV CS:DATA,0H MOV CS:DATA1,0H

27、 MOV WORD PTR DS:077AH,3FFFH MOV CS:DATA0,0H MOV CS:DATA01,0H MOV CS:DATA02,0H JMP STYLEPRO;步進(jìn)電機(jī)驅(qū)動(dòng)轉(zhuǎn)動(dòng)模塊RUN: MOV DX,IOC8255 MOV AL,30HOUT DX,ALCALL DELAYMOV AL,60HOUT DX,ALCALL DELAYMOV AL,0C0HOUT DX,ALCALL DELAYMOV AL,90HOUT DX,ALCALL DELAYRET ;延時(shí)控速DELAY: MOV CX,WORD PTR DS:077AH DELA:LOOP DELA RET ;通道0初始化FORMAT8253: MOV AL,00110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO08253 OUT DX,AL MOV AL,10 OUT DX,ALRET;自然風(fēng)通道2初始化FORMAT8253_NATURAL: MOV AL,10110111B MOV DX,IOCON8253 OUT DX,AL MOV AL,00 MOV DX,IO28253 OUT DX,AL MOV AL,10 OUT DX,ALRET;睡眠風(fēng)通道2初始化FORMAT8253_SLEEP: MOV AL,10110111B MOV

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論