微機(jī)原理 電風(fēng)扇控制器設(shè)計(jì)_第1頁(yè)
微機(jī)原理 電風(fēng)扇控制器設(shè)計(jì)_第2頁(yè)
微機(jī)原理 電風(fēng)扇控制器設(shè)計(jì)_第3頁(yè)
微機(jī)原理 電風(fēng)扇控制器設(shè)計(jì)_第4頁(yè)
微機(jī)原理 電風(fēng)扇控制器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘要電風(fēng)扇控制器課程設(shè)計(jì)中主要應(yīng)用了芯片8086、8255、8254、DAC0832。8086為控制系統(tǒng)的核心。8255 A口輸入,檢測(cè)開關(guān)的狀態(tài);B口輸出,控制數(shù)碼管,顯示開關(guān)狀態(tài);C口輸出,控制發(fā)光二極管LED,指示各開關(guān)狀態(tài)。8254起定時(shí)作用,計(jì)數(shù)器0輸出周期為50ms的方波信號(hào);計(jì)數(shù)器2數(shù)定時(shí)4秒輸出一個(gè)高電平信號(hào)。DAC0832控制電機(jī)的轉(zhuǎn)速。最終在各芯片共同作用下實(shí)現(xiàn)對(duì)電風(fēng)扇的控制。關(guān)鍵字:8255;8254;DAC0832;定時(shí)第1章小組成員及分工小組成員及分工見表2.1表 2.1 小組成員及分工 第2章設(shè)計(jì)題目及要求2.1、設(shè)計(jì)的題目1、設(shè)計(jì)家用電風(fēng)扇控制器,實(shí)現(xiàn)電風(fēng)扇的啟停

2、控制、風(fēng)速控制和類型選擇功能,所有操作由發(fā)光二極管LED指示,編制相應(yīng)的匯編語言源程序并進(jìn)行系統(tǒng)調(diào)試。2、控制器面板包括:風(fēng)速、類型和啟停鍵,發(fā)光二極管LED指示燈。風(fēng)速分強(qiáng)、中、弱。類型為睡眠、自然和正常。3、電風(fēng)扇處于停轉(zhuǎn)狀態(tài)時(shí),所有指示燈不點(diǎn)亮,只有按下“風(fēng)速”鍵時(shí),才會(huì)進(jìn)入起始工作狀態(tài)。不論電風(fēng)扇處于何種狀態(tài),只要按下停止鍵,電風(fēng)扇就進(jìn)入停轉(zhuǎn)狀態(tài)。2.2、設(shè)計(jì)要求1、初始狀態(tài):風(fēng)速為“弱”,類型為“正常”。2、按“風(fēng)速”鍵,其狀態(tài)由“弱”“中”“強(qiáng)”“弱”往復(fù)循環(huán)改變,按每一下鍵,狀態(tài)改變一次。3、按“類型”鍵,其狀態(tài)由“正常”“睡眠”“自然”“正?!蓖鶑?fù)循環(huán)改變。4、風(fēng)速的弱,中,強(qiáng)

3、對(duì)應(yīng)于電風(fēng)扇轉(zhuǎn)動(dòng)的慢快。5、類型的不同選擇,分別對(duì)應(yīng)如下情況。 正常:電風(fēng)扇連續(xù)轉(zhuǎn)動(dòng)。 自然:電風(fēng)扇模擬自然風(fēng),轉(zhuǎn)動(dòng)8秒,停止8秒。 睡眠:電風(fēng)扇慢轉(zhuǎn),產(chǎn)生輕柔的微風(fēng),轉(zhuǎn)動(dòng)4秒,停止8秒。6、按照風(fēng)速與類型的設(shè)置輸出相應(yīng)的控制信號(hào),點(diǎn)亮或熄滅相應(yīng)的指示燈。第3章 所需芯片功能簡(jiǎn)介 3.1、8255功能簡(jiǎn)介1、8255是Intel 公司生產(chǎn)的可編程并行I/O 接口芯片,有3個(gè)8位并行I/O 口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時(shí)

4、必須具有與外設(shè)連接的接口A 、B 、C 口。2、8255在使用前要寫入一個(gè)方式控制字,設(shè)置三個(gè)端口A 、B 、C 的工作方式。共三種。方式0:基本輸入/輸出方式,其特點(diǎn)信號(hào)時(shí)與外設(shè)傳送數(shù)據(jù)時(shí),不需要設(shè)置專用的聯(lián)絡(luò)信號(hào),可以無條件的直接進(jìn)行I/O 傳送。A,B,C3個(gè)端口都可以工作在方式0.A 口和B 口工作在方式0時(shí),只設(shè)置以8位數(shù)據(jù)格式輸入/輸出;C 口工作在方式0時(shí),可以高4位和低4位分別設(shè)置為數(shù)據(jù)輸入或數(shù)據(jù)輸出方式。方式0常用于與外設(shè)無條件數(shù)據(jù)傳送或查詢方式數(shù)據(jù)傳送。方式1:單向選通輸入/輸出方式,方式1是一種帶選通信號(hào)的單方向輸入/輸出工作方式,其特點(diǎn)是:與外設(shè)傳送數(shù)據(jù)時(shí),需要聯(lián)絡(luò)信號(hào)

5、進(jìn)行協(xié)調(diào),允許用查詢或中斷方式傳送數(shù)據(jù)。由于C 口的0PC ,1PC 和2PC 定義為B 口工作在方式1的聯(lián)絡(luò)信號(hào)線,3PC ,4PC 和5PC 定義為A 口工作方式1的聯(lián)絡(luò)信號(hào),因此只允許A 口和B 口工作在方式1.方式2:雙向選通輸入/輸出方式,是方式1輸入和輸出的組合,即同一端口的信號(hào)線既可以輸入又可以輸出。由于C 口的7PC 3PC 定義為A 口工作在方式2時(shí)的聯(lián)絡(luò)信號(hào)線,因此只允許A 口工作在方式。3.2、8254功能簡(jiǎn)介8254 芯片是一款使用十分廣泛的可編程定時(shí),計(jì)數(shù)芯片,其主要功能是定時(shí)和計(jì)數(shù)的功能。8254芯片主要由四部分組成:1、數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個(gè)三態(tài)、雙向

6、8位寄存器主要作用是與cpu 進(jìn)行數(shù)據(jù)交換,8位數(shù)據(jù)線D7D0與CPU 的系統(tǒng)數(shù)據(jù)總線連接,構(gòu)成CPU 和8254之間信息傳送的通道,CPU通過數(shù)據(jù)總線緩沖器向8254寫入控制命令、計(jì)數(shù)初始值或讀取計(jì)數(shù)值。2、讀寫邏輯讀寫邏輯是芯片的控制部分,編程人員通過控制信號(hào)的選擇來選擇芯片的工作方式。讀/寫控制邏輯用來接收CPU系統(tǒng)總線的讀、寫控制信號(hào)和端口選擇信號(hào),用于控制8254內(nèi)部寄存器的讀/寫操作。3、控制字寄存器控制寄存器是一個(gè)只能寫不能讀的8位寄存器,系統(tǒng)通過指令將控制字寫入控制寄存器,設(shè)定8254的不同工作方式。4、計(jì)數(shù)器8254內(nèi)部有三個(gè)結(jié)構(gòu)完全相同而又相互獨(dú)立的16位減“1”計(jì)數(shù)器,每

7、個(gè)計(jì)數(shù)器有六種工作方式,各自可按照編程設(shè)定的方式工作。8254芯片的工作方式8254芯片共有六種工作方式,分別對(duì)應(yīng)與六種不同的用途。(1方式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷 在寫入控制字CW后,OUT引腳初始電平為低電平,寫入計(jì)數(shù)初始值N之后的第一個(gè)CLK的下降沿將N裝入計(jì)數(shù)執(zhí)行部件,待下一個(gè)CLK的下降沿到來且門控信號(hào)GATE為高電平時(shí),開始啟動(dòng)減“1”計(jì)數(shù),隨后每一個(gè)CLK的下降沿,計(jì)數(shù)器減1。在計(jì)數(shù)過程中,OUT引腳一直保持低電平,直到計(jì)數(shù)為“0”時(shí),OUT 引腳輸出由低電平變?yōu)楦唠娖?并且保持高電平。方式0的特點(diǎn):計(jì)數(shù)初始值無自動(dòng)裝入功能,若要繼續(xù)計(jì)數(shù),則需要重新寫入計(jì)數(shù)初始值。門控信號(hào)GATE用

8、來控制CE,當(dāng)GATE為高電平時(shí),允許計(jì)數(shù);當(dāng)GATE為低電平時(shí),禁止計(jì)數(shù)。當(dāng)GATE重新為高電平時(shí),計(jì)數(shù)器接著當(dāng)前的計(jì)數(shù)值繼續(xù)計(jì)數(shù)。計(jì)數(shù)期間給計(jì)數(shù)器裝入新值,則會(huì)在寫入計(jì)數(shù)初始值后重新開始計(jì)數(shù)過程。由于方式0在計(jì)數(shù)結(jié)束后,OUT引腳輸出一個(gè)由低電平到高電平的跳變信號(hào),因此可以用它作為計(jì)數(shù)結(jié)束的中斷請(qǐng)求信號(hào)。 方式1的特點(diǎn):硬件啟動(dòng)計(jì)數(shù),即由門控信號(hào)GATE的上升沿觸發(fā)計(jì)數(shù)。在計(jì)數(shù)過程中,CPU可改變計(jì)數(shù)值,但是對(duì)計(jì)數(shù)過程沒有影響。計(jì)數(shù)為“0”,OUT 引腳輸出高電平,若再次觸發(fā),則計(jì)數(shù)器將按新輸入的計(jì)數(shù)初始值進(jìn)行計(jì)數(shù)。 控制字CW寫入之后,OUT引腳初始電平為高,在寫入計(jì)數(shù)值N之后第一個(gè)CL

9、K的下降沿將N裝入計(jì)數(shù)執(zhí)行單元CE,待下一個(gè)CLK的下降沿到來且門控信號(hào)GATE為高電平時(shí),啟動(dòng)計(jì)數(shù)。在計(jì)數(shù)過程中,OUT引腳始終保持高電平,直到CE減到“1”時(shí),OUT引腳變?yōu)榈碗娖?維持一個(gè)時(shí)鐘周期后,又恢復(fù)為高電平,同時(shí)自動(dòng)將計(jì)數(shù)值N加載到CE,重新啟動(dòng)計(jì)數(shù),形成循環(huán)計(jì)數(shù)過程,OUT引腳連續(xù)輸出負(fù)脈沖。方式2的特點(diǎn):計(jì)數(shù)初始值有自動(dòng)裝入功能,不用重新寫入計(jì)數(shù)值,計(jì)數(shù)過程可由GATE信號(hào)控制。當(dāng)GATE為低電平時(shí),暫停計(jì)數(shù);在GATE變?yōu)楦唠娖胶蟮南乱粋€(gè)CLK脈沖使計(jì)數(shù)器恢復(fù)計(jì)數(shù)初始值,重新開始計(jì)數(shù)。 工作原理與方式2類似,有自動(dòng)重復(fù)計(jì)數(shù)功能,但OUT 引腳輸出的波形不同。當(dāng)計(jì)數(shù)值N 為偶

10、數(shù)時(shí),OUT 輸出對(duì)稱的方波信號(hào),正負(fù)脈沖的寬度為2N 個(gè)時(shí)鐘周期;當(dāng)計(jì)數(shù)值N 為奇數(shù)時(shí),OUT 輸出不對(duì)稱的方波信號(hào),正脈沖寬度為21+N 。 個(gè)時(shí)鐘周期,負(fù)脈沖寬度為2 寫入控制字CW 后,OUT 初始電平為高,在寫入計(jì)數(shù)初始值N 之后的第一個(gè)CLK 的下降沿將N 裝入計(jì)數(shù)執(zhí)行單元CE ,待下一個(gè)計(jì)數(shù)脈沖信號(hào)CLK 到來且門控信號(hào)GATE 為高電平時(shí)(即軟件啟動(dòng),開始計(jì)數(shù)。當(dāng)計(jì)數(shù)為“0”時(shí),OUT 引腳由高電平變?yōu)榈碗娖?維持一個(gè)時(shí)鐘周期,OUT 引腳由低電平變?yōu)楦唠娖?。一次?jì)數(shù)過程結(jié)束后,OUT 引腳輸出寬度為一個(gè)時(shí)鐘周期的負(fù)脈沖信號(hào).方式4的特點(diǎn):無自動(dòng)重復(fù)計(jì)數(shù)功能,只有在輸入新的計(jì)數(shù)

11、值后,才能開始新的計(jì)數(shù)。若設(shè)置的計(jì)數(shù)值為N ,則在寫入計(jì)數(shù)值N 個(gè)時(shí)鐘脈沖之后,才使OUT 引腳產(chǎn)生一個(gè)負(fù)脈沖信號(hào)。 寫入控制字CW后,OUT引腳初始電平為高,在寫入計(jì)數(shù)值N后,計(jì)數(shù)器并不開始計(jì)數(shù),只有GATE信號(hào)出現(xiàn)由低到高的上升沿(即硬件啟動(dòng)之后的第一個(gè)CLK的下降沿,將N裝入計(jì)數(shù)執(zhí)行單元CE,待下一個(gè)CLK的下降沿才開始計(jì)數(shù)。當(dāng)計(jì)數(shù)為“0”后,OUT引腳由高電平變?yōu)榈碗娖?維持一個(gè)時(shí)鐘周期,OUT 引腳由低電平變?yōu)楦唠娖?。一次?jì)數(shù)過程結(jié)束后,OUT引腳輸出寬度為一個(gè)時(shí)鐘周期的負(fù)脈沖信號(hào)。方式5輸出波形與方式4相同。兩種工作方式的區(qū)別是:方式4為軟件啟動(dòng)計(jì)數(shù),即GATE=1,寫入計(jì)數(shù)初始值

12、時(shí)啟動(dòng)計(jì)數(shù);方式5為硬件啟動(dòng)計(jì)數(shù),即先寫入計(jì)數(shù)初始值,由GATE的上升沿觸發(fā),啟動(dòng)計(jì)數(shù)。在設(shè)置8254的工作方式時(shí),需要注意上述六種工作方式的一些特點(diǎn):方式0, 1, 4, 5的計(jì)數(shù)初始值無自動(dòng)加載功能,當(dāng)一次計(jì)數(shù)結(jié)束后,若要繼續(xù)計(jì)數(shù),需要再次編程寫入計(jì)數(shù)值;方式2和方式3的計(jì)數(shù)初始值有自動(dòng)加載功能,只要寫入一次計(jì)數(shù)值,就可以連續(xù)進(jìn)行重復(fù)計(jì)數(shù)。方式2, 4, 5的輸出波形雖然相同,即都是寬度為一個(gè)時(shí)鐘周期的負(fù)脈沖,但方式2可以連續(xù)自動(dòng)工作,方式4由軟件觸發(fā)啟動(dòng),方式5由硬件觸發(fā)啟動(dòng)。8254的六種工作方式的特點(diǎn)及其功能見表3.2。表3.2 8254的六種工作方式的特點(diǎn)及其功能 注:GATE高電

13、平觸發(fā)方式也稱為軟件觸發(fā)方式,GATA上升沿觸發(fā)方式也稱為硬件觸發(fā)方式。3.3、DAC0832功能簡(jiǎn)介DAC0832是NS公司生產(chǎn)的內(nèi)部帶有數(shù)據(jù)輸入寄存器和R2R T型電阻解碼網(wǎng)絡(luò)的8位D/A轉(zhuǎn)換器。主要特性: 電流輸出型D/A轉(zhuǎn)換器。 數(shù)字量輸入有雙緩沖、單緩沖或直通三種方式。 與所有微處理器可直接連接。 輸入數(shù)據(jù)的邏輯電平滿足TTL電平規(guī)范。 分辨率為8位。 滿量程誤差為1 LS B。 轉(zhuǎn)換時(shí)間(建立時(shí)間1ms。 增益溫度系數(shù)為2010-6/。 參考電壓10V。 單電源+5V+15V。第4章硬件連接圖4.1、硬件實(shí)驗(yàn)整體連線圖如圖4.1所示 圖 4.1 硬件實(shí)驗(yàn)整體連線圖4.2、Prote

14、us仿真整體連接圖如圖4.2所示 圖 4.2 Proteus仿真整體連接圖4.3、Proteus仿真8255連接圖如圖4.3所示 圖 4.3 Proteus仿真8255連接圖4.4、Proteus仿真8254連接圖如圖4.4所示 圖 4.4 Proteus仿真8254連接圖4.5、Proteus仿真DAC0832連接圖如圖4.5所示 圖 4.5 Proteus仿真DAC0832連接圖第5章工作原理及流程圖5.1、工作原理8254計(jì)數(shù)器/定時(shí)器0和2作為定時(shí)器,定時(shí)器0的輸入端CLK0連1MHZ 脈沖頻率,產(chǎn)生周期為50ms的方波信號(hào)。OUT0作為定時(shí)器2的輸入,與CLK2相連,定時(shí)4s輸出一個(gè)

15、高電平信號(hào)。OUT2與8255A的PA7相連。8255A的端口A0A7讀入7個(gè)開關(guān)狀態(tài);PA7與8254的OUT2相連,檢測(cè)OUT2輸出的高電平,起定時(shí)作用;B0B6與七段數(shù)碼管相連,顯示正在運(yùn)行的狀態(tài); C0C6與LED燈相連,指示各開關(guān)的狀態(tài)。DAC0832控制電機(jī)的轉(zhuǎn)速。通過設(shè)置延時(shí)時(shí)間常數(shù),控制高電平、低電平輸出時(shí)間比,從而控制電機(jī)的轉(zhuǎn)速。5.2、程序流程圖 (a定時(shí)子程序 (b主程序第6章實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果圖如圖6.1所示 圖 6.1 實(shí)驗(yàn)結(jié)果第7章實(shí)驗(yàn)總結(jié)及問題分析7.1 問題分析問題一:在讀入開關(guān)狀態(tài)后,需要與預(yù)設(shè)置的狀態(tài)相比較,之前我選擇了TEST指令,但硬件實(shí)驗(yàn)調(diào)試時(shí)一直不能按

16、實(shí)驗(yàn)程序走。解決方法:多次調(diào)試不成功后,我認(rèn)真學(xué)習(xí)比較了TEST指令與CMP指令。TEST指令TEST指令完成的操作、操作數(shù)的約定,以及對(duì)標(biāo)志位的影響同AND指令,只是TEST指令不回送結(jié)果到目標(biāo)操作數(shù)。使用TEST指令,通常是在不希望改變?cè)胁僮鲾?shù)的情況下,檢測(cè)某一位或某幾位的狀態(tài)。所以常被用于條件轉(zhuǎn)移指令之前,根據(jù)測(cè)試的結(jié)果令程序發(fā)生跳轉(zhuǎn)。CMP指令的操作功能、操作數(shù)的規(guī)定以及影響標(biāo)志位的情況類似于SUB指令,惟一不同的是CMP指令不保存相減以后的結(jié)果(差,即該指令執(zhí)行后,兩個(gè)操作數(shù)原先的內(nèi)容不會(huì)改變,只是根據(jù)相減操作的結(jié)果設(shè)置標(biāo)志位。CMP指令通常用在分支程序結(jié)構(gòu)中比較兩個(gè)數(shù)的大小,在該

17、指令之后經(jīng)常安排一條條件轉(zhuǎn)移指令,根據(jù)比較的結(jié)果讓程序轉(zhuǎn)移到相應(yīng)的分支去執(zhí)行。他們的區(qū)別為:需要用到TEST指令處,一般是與源操作數(shù)為n2的倍數(shù)的數(shù)相比較。CMP指令則沒有要求。由于我預(yù)設(shè)置的狀態(tài)不是n2的倍數(shù),所以不能簡(jiǎn)單的運(yùn)用TEST指令。在將TEST指令修改為CMP指令后,調(diào)試成功。問題二:硬件調(diào)試時(shí),改變開關(guān)的狀態(tài),但結(jié)果始終為初始驅(qū)動(dòng)時(shí)的狀態(tài)解決方法:在認(rèn)真檢查程序后,檢查出跳轉(zhuǎn)指令跳轉(zhuǎn)的位置不正確。跳轉(zhuǎn)指令跳轉(zhuǎn)的位置未使8255一直檢測(cè)開關(guān)的狀態(tài)。修改后,調(diào)試成功。7.2 課程設(shè)計(jì)感想趙賢成的感想:感想一:這次課程設(shè)計(jì),總的來說完成的還比較順利。在原來軟件實(shí)驗(yàn)和硬件實(shí)驗(yàn)的基礎(chǔ)上更進(jìn)

18、一步學(xué)習(xí)了匯編語言編寫程序的設(shè)計(jì)方法和硬件調(diào)試的技巧。提高了運(yùn)用現(xiàn)有的資源解決問題的能力,增強(qiáng)了對(duì)知識(shí)融會(huì)貫通的能力。在實(shí)驗(yàn)中,通過與老師、同學(xué)的討論,在網(wǎng)上查找資料,更加深刻的理解了8255,、8254、DAC0832芯片功能的應(yīng)用。通過實(shí)踐,進(jìn)一步的熟悉了教材有關(guān)類容(比如匯編語言指令。通過對(duì)各模塊的分布設(shè)計(jì),并調(diào)試,最終實(shí)現(xiàn)了對(duì)電風(fēng)扇的控制。感想二:這次實(shí)驗(yàn)我也學(xué)會(huì)了靈活應(yīng)對(duì)實(shí)驗(yàn)中的一些錯(cuò)誤和故障(比如死循環(huán)、接線錯(cuò)誤、符號(hào)格式不正確等等,始終應(yīng)該冷靜的分析問題和排除出現(xiàn)錯(cuò)誤的各種原因。通過這次實(shí)踐學(xué)習(xí),我再次認(rèn)識(shí)到,不管學(xué)習(xí)什么,都必須重視實(shí)踐操作,自己要多動(dòng)手操作,才能更好的理解理論

19、知識(shí)、增長(zhǎng)在實(shí)踐中的經(jīng)驗(yàn)。朱杭天的感想:這次微機(jī)原理的課程設(shè)計(jì),讓我學(xué)到很多,從開始選題,設(shè)計(jì),到理論聯(lián)系到實(shí)際,我們花了很多時(shí)間和心血,畢竟對(duì)于做課設(shè)設(shè)計(jì),我們也是剛開始接觸,所以做起來比較生疏也比較辛苦,做課程設(shè)計(jì)不僅可以鞏固以前所學(xué)的知識(shí),而且學(xué)到了很多書本上沒有的東西。通過這次課程設(shè)計(jì),我懂得理論必須和實(shí)際相結(jié)合,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。設(shè)計(jì)過程碰到了許多問題,可以說得上是困難重重,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠

20、牢固,程序邏輯上的設(shè)計(jì)老是出現(xiàn)問題,總體的結(jié)構(gòu)在開始的時(shí)候也顯得有點(diǎn)混亂。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在馬老師的辛勤指導(dǎo)下,終于迎刃而解。同時(shí),在馬老師的身上我學(xué)得到很多實(shí)用的知識(shí),在此我表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和指導(dǎo)老師再次表示忠心的感謝!參考文獻(xiàn)1 馬春燕.微機(jī)原理與接口技術(shù). 北京:電子工業(yè)出版社,20103微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與綜合應(yīng)用實(shí)驗(yàn).4模擬電風(fēng)扇動(dòng)作.5 微機(jī)原理.電子時(shí)鐘課程設(shè)計(jì).附錄參考程序DATA SEGMENTIOPORT EQU 0D880H-280HIO0832A EQU IOPORT+2A0HIO8255A EQU IOP

21、ORT+280HIO8255B EQU IOPORT+281HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HIO8254K EQU IOPORT+28BHIO82542 EQU IOPORT+28AHIO82541 EQU IOPORT+289HIO82540 EQU IOPORT+288HBUF1 DW 0BUF2 DW 0ZHT1 DB ZHENG CHAND RUO,0DH,0AH,$ZHT2 DB ZHENG CHAND ZHONG,0DH,0AH,$ ZHT3 DB ZHENG CHAND QIANG,0DH,0AH,$ ZHT4 DB

22、ZI RAN,0DH,0AH,$ZHT5 DB SHUI MIAN,0DH,0AH,$ZHT6 DB TING ZHI,0DH,0AH,$DATA ENDSSTACKS SEGMENTDB 100 DUP(?STACKS ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, SS: STACKS,ES: DATA START: MOV AX, DATAMOV DS,AXMOV ES,AXMOV AX,STACKSMOV SS,AXMOV DX,IO8254KMOV AL,36H; 00110110,計(jì)數(shù)器0,方式3,先讀低8位,再讀高8位 OUT DX,ALMO

23、V DX,IO82540MOV AX,50000; 初值50000,產(chǎn)輸出周期為50ms的方波信號(hào)OUT DX,ALNOPNOPMOV AL,AHOUT DX,ALKSH:MOV DX,IO8255TMOV AL,90H; 10010000,工作方式0,A口輸入,B口、C口輸出OUT DX,ALMOV DX,IO8255AIN AL,DX; A口輸入,檢測(cè)開關(guān)的狀態(tài)AND AL,7FH; A口輸入,最高位清零CMP AL,49H; 正常弱,開關(guān)狀態(tài)若為01001001則跳轉(zhuǎn)到ZHRJZ ZHRCMP AL,4AH; 正常中,開關(guān)狀態(tài)若為01001010則跳轉(zhuǎn)到ZHZHJZ ZHZHCMP AL

24、,4CH; 正常強(qiáng),開關(guān)狀態(tài)若為01001100則跳轉(zhuǎn)到ZHQJZ ZHQCMP AL,60H; 自然,開關(guān)狀態(tài)若為01100000則跳轉(zhuǎn)到ZRJZ ZRCMP AL,50H; 睡眠,開關(guān)狀態(tài)若為01010000則跳轉(zhuǎn)到SHMJZ SHMMOV AH,06HMOV DL,0FFHINT 21HJNZ PPP; 有鍵按下退出JMP TZH; 沒鍵按下且開關(guān)的為其他狀態(tài)則跳轉(zhuǎn)到TZHPPP: MOV AH,4CHINT 21HTZH: MOV DX,OFFSET ZHT6; 顯示ZHT6中的類容MOV AH,09HINT 21HMOV DX,IO8255B; B口輸出,數(shù)碼管顯示6MOV AL,7

25、DHOUT DX,ALMOV DX,IO8255C; 00000000 全部燈熄滅MOV AL,00HOUT DX,ALMOV AL,80H;0832輸出0V低電壓MOV DX,IO0832AOUT DX,ALJMP KSH; 繼續(xù)檢測(cè)開關(guān)的狀態(tài)ZHR: MOV DX,OFFSET ZHT1; 顯示ZHT1中的類容MOV AH,09HINT 21HMOV DX,IO8255B; 數(shù)碼管顯示1MOV AL,06HOUT DX,ALMOV DX,IO8255C ;01001001,開關(guān)K6,K3,K0 對(duì)應(yīng)的LED燈亮其,其他燈熄滅MOV AL,49HOUT DX,ALMOV BUF1, 0FFF

26、FH;設(shè)置延時(shí)常數(shù)MOV BUF2, 0090HDELAY: MOV CX,BUF1DELAY1: LOOP DELAY1; LOOP延時(shí)MOV AL,0FFH;0832輸出+5V高電平MOV DX,IO0832AOUT DX,ALMOV CX,BUF2DELAY2: LOOP DELAY2; LOOP延時(shí)JMP KSH; 繼續(xù)檢測(cè)開關(guān)的狀態(tài)ZHZH: MOV DX,OFFSET ZHT2; 顯示ZHT2中的類容MOV AH,09HINT 21HMOV DX,IO8255B; 數(shù)碼管顯示2MOV AL,5BH;狀態(tài)2OUT DX,ALMOV DX,IO8255C;01001010,開關(guān)K6,K

27、3,K1 對(duì)應(yīng)的LED燈亮其,其他燈熄滅MOV AL,4AHOUT DX,ALMOV BUF1,0FFFFH;設(shè)置延時(shí)常數(shù)MOV BUF2,0900HJMP DELAY;跳轉(zhuǎn)到DELAYZHQ: MOV DX,OFFSET ZHT3; 顯示ZHT3中的類容MOV AH,09HINT 21HMOV DX,IO8255B; 數(shù)碼管顯示3MOV AL,4FH;狀態(tài)3OUT DX,ALMOV DX,IO8255C;01001100,開關(guān)K6,K3,K1 對(duì)應(yīng)的LED燈亮其,其他燈熄滅MOV AL,4CH OUT DX,AL MOV BUF1,0FFFFH;設(shè)置延時(shí)常數(shù) MOV BUF2,1000H JMP DELAY; 跳轉(zhuǎn)到 DELAY ZR: MOV DX,OFFSET ZHT4; 顯示 ZHT4 中的類容 MOV AH,09H INT 21H MOV DX,IO8255B; MOV AL,66H;狀態(tài) 4 OUT DX,AL MOV DX,IO8255C ;01100000,開關(guān) K6,K5, 對(duì)應(yīng)的 LED 燈亮其,其他燈熄 滅 MOV AL,60H OUT DX,AL K0: MOV BUF1,0FFFFH;設(shè)置延時(shí)常數(shù) MOV BUF2,0090H MOV CX,BUF1 K1: LOOP K1; LOOP 延時(shí) MOV AL

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論