版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程設(shè)計(jì)報(bào)告 </p><p><b> 洗衣機(jī)功能設(shè)計(jì)</b></p><p> 指導(dǎo)教師: 硬件課程設(shè)計(jì)組老師</p><p><b> 學(xué) 生: </b></p><p><b> 學(xué) 號: </b><
2、/p><p> 專 業(yè): 自 動(dòng) 化</p><p> 班 級: 2010 級 4 班</p><p><b> 設(shè)計(jì)日期: </b></p><p><b> 2013年9月</b></p><p><b> 目錄</b></p
3、><p> 一、總體方案設(shè)計(jì)1</p><p><b> 1、引言:1</b></p><p><b> 2、硬件設(shè)計(jì):2</b></p><p> 3、所用硬件結(jié)構(gòu)及原理3</p><p><b> (1)步進(jìn)電機(jī)3</b></p
4、><p> ?。?)8254定時(shí)/計(jì)數(shù)器4</p><p><b> ?。?)、鍵盤4</b></p><p><b> 4、主流圖設(shè)計(jì)6</b></p><p> 5、初始化及流程圖7</p><p> 6、按鍵部分與狀態(tài)顯示7</p><p
5、><b> 7、聲音提示10</b></p><p> 8、洗衣(洗滌、漂洗、甩干)11</p><p> 9、步進(jìn)電機(jī)模擬13</p><p> 10、運(yùn)行結(jié)束14</p><p><b> 二、操作說明14</b></p><p><b&g
6、t; 三、源程序15</b></p><p> 五、小組分工及設(shè)計(jì)心得35</p><p><b> 1、分工35</b></p><p><b> 2、心得體會(huì)35</b></p><p> 附錄:計(jì)實(shí)物圖40</p><p><b&g
7、t; 一、總體方案設(shè)計(jì)</b></p><p><b> 1、引言:</b></p><p> 洗衣機(jī)廣泛運(yùn)用于家庭生活中,本實(shí)驗(yàn)研究洗衣機(jī)的基本原理,對洗衣機(jī)的大致過程用步進(jìn)電機(jī),LED小燈,LED數(shù)碼管進(jìn)行了基本功能模擬,本實(shí)驗(yàn)采用模塊化的程序設(shè)計(jì)思想,模塊化的設(shè)計(jì)具有許多優(yōu)點(diǎn):其一便于分塊細(xì)化設(shè)計(jì),其二讓整個(gè)主程序思路清晰,結(jié)構(gòu)明了;其三各個(gè)模
8、塊獨(dú)立進(jìn)行調(diào)試,當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),以便于糾錯(cuò)。本方案大致共分為六個(gè)部分:初始化,按鍵,聲音提示,狀態(tài)顯示,洗衣(洗滌、漂洗、甩干),步進(jìn)電機(jī)模擬,結(jié)束。本實(shí)驗(yàn)報(bào)告將對實(shí)驗(yàn)進(jìn)行具體分析。</p><p> 關(guān)鍵詞:匯編語言,模塊,水位檔次,正反轉(zhuǎn),清潔模式,聲音提示,數(shù)碼管顯示,指示燈,步進(jìn)電機(jī)模擬。</p><p><b> 2、硬件設(shè)計(jì):</b></p&g
9、t;<p><b> 8254接線部分:</b></p><p> GATE0----PA7</p><p> GATE1------+5V</p><p> OUT0------PC4</p><p> CLK0------OUT1</p><p> CLK1-----
10、47KHZ</p><p> CS----------CS1</p><p><b> 8255接線部分:</b></p><p> 第五片8255的CS----------CS2</p><p> 8255-8254小燈:</p><p> PA0------D1</p>
11、<p> PA1------D2</p><p> PA5-----D6</p><p> PA6-----D7</p><p> PA6-----D8</p><p> 8255-步進(jìn)電機(jī):</p><p> PB0~PB3----HA~HD</p><p><b
12、> 8255-鍵盤:</b></p><p> PC0~PC3-----P0~P3</p><p><b> 鍵盤:</b></p><p><b> Q0----GND</b></p><p><b> 蜂鳴器:</b></p>&l
13、t;p><b> PB4</b></p><p> 3、所用硬件結(jié)構(gòu)及原理</p><p><b> ?。?)步進(jìn)電機(jī)</b></p><p> 步進(jìn)電機(jī)驅(qū)動(dòng)是通過對每相線圈中的電流的順序使點(diǎn)擊步進(jìn)式旋轉(zhuǎn),所以調(diào)節(jié)脈沖信號的頻率就可以改變步進(jìn)電機(jī)的轉(zhuǎn)速,改變相脈沖的先后順序,可以改變電機(jī)的旋轉(zhuǎn)方向。步進(jìn)電機(jī)的轉(zhuǎn)
14、速應(yīng)由慢到快逐步加速,剛啟動(dòng)時(shí)就應(yīng)該避免就加太快的速度。</p><p> ?。?)8254定時(shí)/計(jì)數(shù)器</p><p> Intel8254是可編程定時(shí)/計(jì)數(shù)器。每個(gè)8254芯片有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,每個(gè)計(jì)數(shù)器有6中工作方式,都可以按二進(jìn)制貨十進(jìn)制(BCD碼)計(jì)數(shù)。</p><p><b> ?。?)、鍵盤</b></p>
15、;<p> 在擴(kuò)展的實(shí)驗(yàn)板上有4行4列非編碼鍵盤,按鍵的行、列信號 通過插孔引出,航信號通過插孔P0~P3引出,列信號通過插孔Q0~Q3引出,4*4非編碼鍵盤電路圖如下圖所示。</p><p> 鍵盤少藐視需要出列少苗,判斷該行是否有鍵按下。現(xiàn)將對應(yīng)列信號設(shè)置為0,然后讀入航信號,如果有鍵按下,則該行讀入0,否則為1。</p><p><b> 4、主流圖設(shè)計(jì)
16、</b></p><p><b> 圖1 主程序流程圖</b></p><p><b> 5、初始化及流程圖</b></p><p> 本程序的初始化較為復(fù)雜,初始變量較多,在程序開始進(jìn)行了備注,初始部分主要有三個(gè)部分組成,8254初始化,8255初始化和初始數(shù)據(jù)給定。</p><p&
17、gt; 圖2給出了8255初始化的設(shè)計(jì)流程圖:</p><p> 圖2 8255初始化流程圖</p><p> 6、按鍵部分與狀態(tài)顯示</p><p> 按鍵硬件部分:設(shè)計(jì)中按鍵部分主要對來自按鍵的設(shè)置信號進(jìn)行輸入,控制顯示的狀態(tài),按鍵第一列為本實(shí)驗(yàn)所用的四個(gè)按鍵,第一個(gè)為電源鍵,在電源關(guān)閉的情況下按下該鍵,電源開,第一個(gè)小燈亮,再按一次小燈滅;第二個(gè)為啟停
18、鍵,負(fù)責(zé)電機(jī)的啟停,啟停鍵每按下依次狀態(tài)切換一次,第二個(gè)小燈的亮滅也跟著相應(yīng)的切換;第三個(gè)為水位設(shè)置鍵,負(fù)責(zé)設(shè)置水位的低中高三個(gè)狀態(tài),水位鍵每按下一次,狀態(tài)依次改變,三色數(shù)碼管中的第三塊LED數(shù)碼管也相應(yīng)顯示01(低水位),02(中水位),03(高水位);第四個(gè)為洗滌方式鍵,按下可切換方式,分為標(biāo)準(zhǔn)洗滌、快速洗滌和甩干,按鍵按下后進(jìn)行選擇,小燈D6、D7、D8進(jìn)行相應(yīng)顯示。按鍵軟件部分:按鍵軟件主要有三部分組成,按鍵查詢,按鍵處理,狀態(tài)
19、設(shè)置。按鍵查詢子程序通過查詢按鍵按下狀態(tài)對按鍵狀態(tài)值K進(jìn)行賦值</p><p> 圖3 按鍵查詢子程序?qū)崿F(xiàn)流程圖</p><p> 按鍵處理子程序通過KEY值對各個(gè)按鍵的次數(shù)進(jìn)行統(tǒng)計(jì),程序?qū)崿F(xiàn)流程圖如圖4:</p><p> 圖4 按鍵處理子程序</p><p> 按鍵狀態(tài)子程序通過對按鍵次數(shù)進(jìn)行除法處理,讓它變成實(shí)際的按鍵狀態(tài)。比如
20、初始電源按鍵次數(shù)K0=0,后來電源按鍵按了8次變成了8,這是我們給一個(gè)電源鍵狀態(tài)值NUM0=2(兩種狀態(tài),開關(guān))用8/2,取余數(shù)為0,證明電源鍵等同于關(guān)著的,以此類推我們設(shè)計(jì)了這種處理程序。圖5按鍵狀態(tài)設(shè)置實(shí)現(xiàn)的流程圖:</p><p> 圖5 狀態(tài)設(shè)置子程序</p><p><b> 7、聲音提示</b></p><p> 8255 P
21、B4接蜂鳴器,洗滌完成后送入低電平,蜂鳴器響。</p><p> 8、洗衣(洗滌、漂洗、甩干)</p><p> 設(shè)計(jì)中給了兩種洗衣方式,一種為標(biāo)準(zhǔn)洗衣,另一種為快速洗衣,標(biāo)準(zhǔn)洗衣有30S,快速洗衣為25S,該部分為程序的重點(diǎn)和難點(diǎn),洗衣過程分為三個(gè)部分,第一步為洗滌,時(shí)間長、有正反轉(zhuǎn)、轉(zhuǎn)速中等,第二部分為漂洗,時(shí)間短、有正反轉(zhuǎn)、轉(zhuǎn)速慢,第三部分為甩干,只有正轉(zhuǎn)、轉(zhuǎn)速快。三個(gè)部分程序具
22、有相似性,其中銜接有步進(jìn)電機(jī)子程序?qū)φ麄€(gè)洗衣過程進(jìn)行模擬。圖6 是標(biāo)準(zhǔn)洗衣的實(shí)現(xiàn)流程圖:</p><p> 圖6 標(biāo)準(zhǔn)洗衣子程序流程圖</p><p> 此處重點(diǎn)分析實(shí)驗(yàn)中的洗滌程序,洗滌開始后三色數(shù)碼管顯示0130,隨著洗滌的進(jìn)行,30S時(shí)間逐漸減少,洗滌開始為正轉(zhuǎn),然后反轉(zhuǎn),洗滌過程可以通過啟停鍵控制洗衣的啟停,圖7是第一步洗滌過程的額實(shí)現(xiàn)流程圖:</p><p
23、><b> 圖7 洗滌流程圖</b></p><p><b> 9、步進(jìn)電機(jī)模擬</b></p><p> 步進(jìn)電機(jī)作為洗衣過程的的鑲嵌程序是本設(shè)計(jì)的難點(diǎn),設(shè)計(jì)中通過設(shè)計(jì)正轉(zhuǎn)表反轉(zhuǎn)表實(shí)現(xiàn)電機(jī)的轉(zhuǎn)動(dòng)狀態(tài)控制,用COUNT變量存儲(chǔ)低脈沖寬度,其值越大電機(jī)轉(zhuǎn)的速度越慢,實(shí)驗(yàn)流程圖如圖8:</p><p> 圖8 步
24、進(jìn)電機(jī)模擬子程序流程圖</p><p><b> 10、運(yùn)行結(jié)束</b></p><p> 蜂鳴器長鳴,剩余時(shí)間為0表示運(yùn)行結(jié)束,這是你可以通過啟停停止洗衣。</p><p><b> 二、操作說明</b></p><p> 1、首先需要按下電源鍵,按下過后電源指示燈會(huì)亮,LED亮。<
25、/p><p> 2、然后你可以選擇水位設(shè)置鍵設(shè)置需要水位,三色LED第三片會(huì)顯示01(低水位),02(中水位),03(高水位)。</p><p> 3、你還可以為自己選擇適合的清潔模式,標(biāo)準(zhǔn)清潔和快速清潔,LED小燈D5亮表示標(biāo)準(zhǔn)清潔,D6表示快速清潔。</p><p> 4、按下啟停鍵,這個(gè)時(shí)候啟停指示燈會(huì)亮。你可以在三色LED上的第一片上顯示的01(洗滌),0
26、2(漂洗),03(甩干)判斷洗衣正在進(jìn)行的過程,通過第二片三色LED顯示的時(shí)間來了解剩余時(shí)間,方便你了解什么時(shí)候可以結(jié)束洗衣。通過控制啟停來控制整個(gè)洗衣過程。</p><p> 5、洗衣完成后,蜂鳴器會(huì)響起,你可以選擇用啟停鍵退出。</p><p><b> 三、源程序</b></p><p><b> .486</b&g
27、t;</p><p> DATA SEGMENT AT 0200H USE16</p><p> PORTA EQU 320H</p><p> PORTB EQU 324H</p><p> PORTC EQU 328H</p><p> PORTK EQU
28、 32CH ;8255端口地址</p><p> PORTK4 EQU 30CH ;8254控制口地址</p><p> JSQ0 EQU 300H ;8254計(jì)數(shù)器0地址</p><p> JSQ1 EQU 304H ;計(jì)數(shù)器1地址</p><p> PORTA1
29、 EQU 200H ;</p><p> PORTB1 EQU 204H ;</p><p> PORTC1 EQU 208H ;第一片8255地址</p><p> PORTA2 EQU 201H ;第二片8255A口地址</p><p> PORTB2 EQU 20
30、5H ;第二片8255B口地址</p><p> PORTC2 EQU 209H ;第二片8255C口地址</p><p> PORTA3 EQU 202H ;第三片8255A口地址</p><p> PORTK1 EQU 20CH ;第一片8255控制口地址</p><p> PORTK
31、2 EQU 20DH ;第二片8255控制口地址 </p><p> CHUSU DB ? ;顯示處理子程序除數(shù)</p><p> XSDK DW ? ;LED顯示子程序顯示端口</p><p> XSZ DB ? ;LED顯示子程序顯示值</p
32、><p> SYSJ DB ? ;剩余時(shí)間</p><p> GWZ DB ? ;顯示值高位值</p><p> DWZ DB ? ;顯示值地位置</p><p> order db ? </p>
33、<p> stop db ? ;電機(jī)啟停標(biāo)志</p><p> BUFdb ? </p><p> count dw ? ;count變量存儲(chǔ)低脈沖寬度,其值越大電機(jī)轉(zhuǎn)的速度越慢</p><p> direct db ?
34、 ;diret=ffh表示正轉(zhuǎn),direct=0表示反轉(zhuǎn)</p><p> PACS DB ? ;A口初始化值</p><p> XDSJ DB ? ;洗滌結(jié)束時(shí)間</p><p> PXSJ DB ? ;漂洗結(jié)束時(shí)間</p><p>
35、SET40 EQU 00110010B ;8254計(jì)數(shù)器0控制字,方式1</p><p> SET41 EQU 01010100B ;8254計(jì)數(shù)器1控制字,方式2</p><p> JSCZ0 EQU 470 ;470定時(shí)1s,計(jì)數(shù)器0計(jì)數(shù)初值</p><p> JSCZ1 E
36、QU 100 ;計(jì)數(shù)器1計(jì)數(shù)初值</p><p> SET5 EQU 10001001B ;8255控制字,方式0</p><p> YANSHI DD ? ;延時(shí)子程序設(shè)定值 </p><p> KEY DB ?
37、 ;按鍵狀態(tài)</p><p> K0 DB ? ;電源按鍵次數(shù)</p><p> K1 DB ? ;啟停鍵按鍵次數(shù)</p><p> K2 DB ? ;水位設(shè)置鍵按鍵次數(shù)<
38、;/p><p> K3 DB ? ;洗滌鍵按鍵次數(shù)</p><p> NUM0 DB ? ;電源鍵2種狀態(tài)</p><p> NUM1 DB ? ;啟停鍵2種狀態(tài) </p><p>
39、 NUM2 DB ? ;水位設(shè)置鍵3種狀態(tài)</p><p> NUM3 DB ? ;洗滌鍵1種狀態(tài)</p><p> DY DB ? ;電源鍵當(dāng)前狀態(tài)</p><p> QT DB
40、 ? ;啟停鍵當(dāng)前狀態(tài)</p><p> SW DB ? ;水位設(shè)置鍵當(dāng)前狀態(tài)</p><p> XIDI DB ? ;清潔程序設(shè)置鍵當(dāng)前狀態(tài)</p><p> DATA ENDS</p>
41、;<p> CODE SEGMENT USE16</p><p> ASSUME CS:CODE, DS:DATA</p><p> ORG 4000H</p><p> BEG:JMP START</p><p> ;->AD->D->DC->C->CB->B-&g
42、t;BA->A</p><p> ZZTDB 0EH,0CH,0DH,09H,0BH,03H,07H,06H ;正轉(zhuǎn)表</p><p> ;A->AB->B->BC->C->CD->D->DA->A</p><p> FZTDB 06H,07H,03H,0BH,09
43、H,0DH,0CH,0EH ;反轉(zhuǎn)表</p><p> TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;字型碼表</p><p> START: MOV AX,DATA</p><p> MOV DS,AX </p><p> MOV
44、DX,PORTB</p><p> OR AL,00010000B</p><p><b> OUT DX,AL</b></p><p> CALL ZTCS ;狀態(tài)初始子程序</p><p> S00: CALL C8255 ;8255初始化子程序</p><p&
45、gt; CALL C8254 ;8254初始化子程序</p><p> S0: CALL JPSM ;鍵盤掃描子程序</p><p> CALL JPCL ;鍵盤處理子程序</p><p> CALL ZTSET;狀態(tài)設(shè)置子程序</p><p> AND DY,01H</p&g
46、t;<p> CMP DY,0 ;電源狀態(tài)判斷</p><p> JNE S1 ;為開跳轉(zhuǎn)到S1</p><p> MOV DX,PORTA</p><p> MOV AL,PACS</p><p> OR AL,00000001B</p><p>
47、 OUT DX,AL</p><p> MOV DX,PORTC1</p><p> MOV EAX,0F0F0F0FH ;關(guān)LED</p><p> OUT DX,EAX</p><p> CALL ZTCS</p><p> JMP S0 ;跳回繼續(xù)等待電源啟動(dòng)<
48、;/p><p> S1: MOV DX,PORTA</p><p> MOV AL,PACS</p><p> AND AL,11111110B ;電源指示燈亮</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p>
49、MOV DX,PORTC1</p><p> MOV EAX,0F000A05H;開LED</p><p> OUT DX,EAX</p><p> S2: CMP QT,0 </p><p> JNE S5 ;開啟,跳轉(zhuǎn)</p><p> CMP SW
50、,0 ;查看水位狀態(tài)是否為低</p><p><b> JNE S3</b></p><p> MOV XSDK,PORTA3</p><p> MOV XSZ,1</p><p> CALL XSCL</p><p> CALL LEDXS
51、 ;第三片8255顯示01,表示低水位 </p><p> CMP XIDI,0 ;是否為標(biāo)志洗滌,否跳轉(zhuǎn)</p><p><b> JNE S41</b></p><p> MOV AL,PACS</p><p> AND AL,11011111B</p>&l
52、t;p> OR AL,01000100B</p><p> MOV PACS,AL</p><p> MOV DX,PORTA</p><p> OUT DX,AL ;標(biāo)準(zhǔn)洗滌小燈亮</p><p> MOV XSDK,PORTA2</p><p> MOV X
53、SZ,30</p><p> CALL XSCL</p><p> CALL LEDXS</p><p> JMP S0 ;跳回繼續(xù)掃描鍵盤</p><p> S3: CMP SW,1 ;查看水位狀態(tài)是否為中</p><p><b> JNE
54、 S4</b></p><p> MOV XSDK,PORTA3</p><p> MOV XSZ,2</p><p> CALL XSCL</p><p> CALL LEDXS ;第三片8255顯示02,表示中水位 </p><p> CMP XIDI,0
55、 ;是否為標(biāo)志洗滌,否跳轉(zhuǎn)</p><p><b> JNE S41</b></p><p> MOV AL,PACS</p><p> AND AL,11011111B</p><p> OR AL,01000000B</p><p> MOV PACS,
56、AL</p><p> MOV DX,PORTA</p><p> OUT DX,AL ;標(biāo)準(zhǔn)洗滌小燈亮</p><p> MOV XSDK,PORTA2</p><p> MOV XSZ,30</p><p> CALL XSCL</p><p>
57、CALL LEDXS</p><p> JMP S0 </p><p> S4: MOV XSDK,PORTA3</p><p> MOV XSZ,3</p><p> CALL XSCL</p><p> CALL LEDXS ;第三片8255顯示03
58、,表示高水位 </p><p> CMP XIDI,0 ;是否為標(biāo)志洗滌,否跳轉(zhuǎn)</p><p><b> JNE S41</b></p><p> MOV AL,PACS</p><p> AND AL,11011111B</p><p> OR A
59、L,01000000B</p><p> MOV PACS,AL</p><p> MOV DX,PORTA</p><p> OUT DX,AL ;標(biāo)準(zhǔn)洗滌小燈亮</p><p> MOV XSDK,PORTA2</p><p> MOV XSZ,30</p>
60、<p> CALL XSCL</p><p> CALL LEDXS</p><p><b> JMP S0</b></p><p> S41: CMP XIDI,1 </p><p> JNE S42</p><p> MOV AL,PACS</p
61、><p> AND AL,10111111B</p><p> OR AL,00100100B</p><p> MOV PACS,AL</p><p> MOV DX,PORTA</p><p> OUT DX,AL ;快速清潔小燈亮</p><p>
62、 MOV XSDK,PORTA2</p><p> MOV XSZ,22</p><p> CALL XSCL</p><p> CALL LEDXS</p><p> JMP S0 </p><p> S42: MOV AL,PACS</p><p&g
63、t; AND AL,11111011B</p><p> OR AL,01100000B </p><p> MOV PACS,AL</p><p> MOV DX,PORTA</p><p> OUT DX,AL</p><p> MOV XSDK,PORTA2</p>
64、<p> MOV XSZ,10</p><p><b> CALL XSCL</b></p><p> CALL LEDXS</p><p> JMP S0 </p><p> S5: MOV AL,PACS</p><p> AND A
65、L,11111101B ;啟動(dòng)指示燈開啟</p><p> MOV PACS,AL</p><p> MOV DX,PORTA</p><p> OUT DX,AL </p><p> CMP XIDI,0</p><p> JNE S51 ;是否設(shè)置為標(biāo)準(zhǔn)洗滌程序,否
66、跳轉(zhuǎn)</p><p> CALL BZXD ;標(biāo)準(zhǔn)洗滌子程序</p><p> JMP S53 </p><p> S51: CMP XIDI,1</p><p> JNE S52 </p><p> MOV XSDK,PORTA2</p>&
67、lt;p> MOV XSZ,22</p><p> CALL XSCL</p><p> CALL LEDXS ;剩余秒數(shù)顯示25</p><p> CALL KSXD ;快速洗滌子程序</p><p><b> JMP S53</b></p>&
68、lt;p> S52:MOV XSDK,PORTA2</p><p> MOV XSZ,10</p><p><b> CALL XSCL</b></p><p> CALL LEDXS</p><p><b> CALL SGXD</b></p><p>
69、 JMP S53 </p><p> S53: MOV DX,PORTB</p><p> MOV AL,0</p><p> OUT DX,AL ;蜂鳴器響</p><p> S8: CALL JPSM ;鍵盤掃描子程序</p><p&
70、gt; CALL JPCL</p><p> CALL ZTSET</p><p> CMP QT,0 ;是否按下啟停鍵</p><p> JNE S8 ;等待啟停鍵按下</p><p> MOV DX,PORTB</p><p> OR AL,000
71、10000B</p><p> OUT DX,AL ;關(guān)蜂鳴器 </p><p> MOV AL,PACS</p><p> OR AL,00000010B</p><p> MOV PACS,AL</p><p> MOV DX,PORTA</p><
72、p> OUT DX,AL ;關(guān)啟停小燈</p><p> JMP S00 </p><p> MEXIT: JMP MEXIT ;主程序結(jié)束</p><p> ;8255初始化程序</p><p> C8255 PROC NEAR</p><p><b&g
73、t; PUSHA</b></p><p> MOV DX,PORTK</p><p> MOV AL,89H</p><p> OUT DX,AL</p><p> MOV DX,PORTK1</p><p> MOV EAX,89808080H ;寫控制字</p>&
74、lt;p> OUT DX,EAX</p><p> MOV DX,PORTA1</p><p> MOV EAX,0FEC0B0C0H ;A口初始化</p><p> OUT DX,EAX</p><p> MOV DX,PORTB1</p><p> MOV EAX,0FFC0C0C0H
75、 ;B口初始化</p><p> OUT DX,EAX</p><p> MOV DX,PORTC1</p><p> MOV EAX,0F000A05H ;C口初始化</p><p> OUT DX,EAX</p><p> MOV DX,PORTB</p><p> O
76、R AL,00010000B</p><p><b> OUT DX,AL</b></p><p><b> POPA</b></p><p><b> RET</b></p><p> C8255 ENDP </p><p> ;8254初
77、始化子程序</p><p> C8254 PROC NEAR</p><p><b> PUSHA</b></p><p> MOV DX,PORTK4</p><p> MOV AL,SET40</p><p> OUT DX,AL ;寫計(jì)數(shù)器0控制字&
78、lt;/p><p> MOV AL,SET41</p><p> OUT DX,AL ;寫計(jì)數(shù)器1控制字</p><p> MOV DX,JSQ0</p><p> MOV AX,JSCZ0</p><p> OUT DX,AL</p><p> MOV
79、 AL,AH</p><p> OUT DX,AL ;計(jì)數(shù)器0計(jì)數(shù)初值</p><p> MOV DX,JSQ1</p><p> MOV AL,JSCZ1</p><p> OUT DX,AL ;計(jì)數(shù)器1計(jì)數(shù)初值</p><p><b> POPA&
80、lt;/b></p><p><b> RET</b></p><p> C8254 ENDP </p><p> ;按鍵查詢子程序 </p><p> JPSM PROC NEAR </p><p> KSCAN: MOV
81、DX,PORTC </p><p> IN AL,DX </p><p> AND AL,0FH </p><p> CMP AL,0FH </p>
82、<p> JE A5 ;無鍵按下</p><p> CMP AL,0EH ;電源鍵按下</p><p><b> JE A1</b></p><p> CMP AL,0DH
83、 ;啟停鍵按下</p><p><b> JE A2</b></p><p> CMP AL,0BH ;水位設(shè)置鍵按下</p><p><b> JE A3</b></p><p> CMP AL
84、,07H ;洗滌鍵按下</p><p><b> JE A4</b></p><p> A5:MOV KEY,9</p><p> JMP EXIT ;四個(gè)鍵都未按下,重新掃描</p><p> A1: MOV KEY,0 <
85、;/p><p> MOV YANSHI,2000</p><p> CALL DELAY </p><p> JMP KEYUP </p><p> A2: MOV KEY,1</p><p&g
86、t; MOV YANSHI,2000</p><p> CALL DELAY </p><p> JMP KEYUP </p><p> A3: MOV KEY,2</p><p> MOV YANSH
87、I,2000</p><p> CALL DELAY </p><p> JMP KEYUP </p><p> A4:MOV KEY,3</p><p> MOV YANSHI,2000</p><p> CALL DELAY </p><p>
88、 KEYUP:MOV AL,0</p><p> MOV DX,PORTC</p><p><b> IN AL,DX</b></p><p> AND AL,0FH</p><p> CMP AL,0FH</p><p><b> JNZ KEYUP</b>&l
89、t;/p><p> MOV YANSHI,2000 </p><p> CALL DELAY</p><p> EXIT: RET </p><p> JPSM ENDP </p><p> ;
90、按鍵處理子程序 </p><p> JPCL PROC NEAR </p><p> CMP KEY,9 </p><p> JE AJ4 </p><p> CMP KEY,0
91、 </p><p> JE AJ0 </p><p> CMP KEY,1 </p><p> JE AJ1 </p><p> CMP
92、 KEY,2 </p><p> JE AJ2 </p><p> CMP KEY,3</p><p> JE AJ3</p><p> JMP AJ4
93、 </p><p> AJ0: INC K0 ;按下電源鍵次數(shù)</p><p> JMP AJ4 </p><p> AJ1: INC K1 ;按下啟停鍵次數(shù)</
94、p><p> JMP AJ4 </p><p> AJ2: INC K2 ;按下水位設(shè)置鍵次數(shù)</p><p> JMP AJ4 </p><p> AJ3:
95、 INC K3 ;按下洗滌鍵次數(shù)</p><p> JMP AJ4</p><p> AJ4: RET </p><p> JPCL ENDP </p><p> ;狀態(tài)設(shè)置子程序
96、 </p><p> ZTSET PROC NEAR </p><p> MOV AH,0 </p><p> MOV AL,K0 </p><p>
97、 DIV NUM0 ;除以電源鍵狀態(tài)數(shù)</p><p> MOV DY,AH ;存入當(dāng)前狀態(tài)值</p><p> MOV AH,0 </p><p> MOV AL,K1
98、 ;存入當(dāng)前狀態(tài)值</p><p> DIV NUM1 ;除以啟停鍵狀態(tài)數(shù)</p><p> MOV QT,AH </p><p> MOV AH,0 </p>
99、<p> MOV AL,K2 ;存入當(dāng)前狀態(tài)值</p><p> DIV NUM2 ;除以水位鍵狀態(tài)數(shù)</p><p> MOV SW,AH </p><p> MOV AH,0
100、 </p><p> MOV AL,K3 ;存入當(dāng)前狀態(tài)值</p><p> DIV NUM3 ;除以洗滌鍵狀態(tài)數(shù)</p><p> MOV XIDI,AH</p><p> RET
101、 </p><p> ZTSET ENDP </p><p><b> ;狀態(tài)初始子程序</b></p><p> ZTCS PROC NEAR</p><p> MOV PACS,11111110B</p>&
102、lt;p> MOV YANSHI,0</p><p> MOV KEY,9</p><p> MOV K0,2</p><p> MOV K1,2</p><p> MOV K2,3</p><p> MOV K3,3</p><p> MOV N
103、UM0,2</p><p> MOV NUM1,2</p><p> MOV NUM2,3</p><p> MOV NUM3,3</p><p> MOV DY,0</p><p> MOV QT,0</p><p> MOV SW,0</p>
104、<p> MOV XIDI,0 </p><p> MOV BUF,0FFH</p><p> MOV SYSJ,30</p><p> MOV CHUSU,10</p><p> MOV ORDER,0</p><p> MOV STOP,0</p>&l
105、t;p> MOV DIRECT,0</p><p> MOV COUNT,500</p><p><b> RET</b></p><p> ZTCS ENDP</p><p><b> ;延時(shí)子程序</b></p><p> DELAY PR
106、OC NEAR</p><p><b> PUSH ECX</b></p><p> MOV ECX,YANSHI</p><p> AGN: NOP </p><p><b> LOOP AGN</b></p><p><b> POP
107、ECX</b></p><p><b> RET</b></p><p> DELAY ENDP</p><p><b> ;標(biāo)準(zhǔn)洗滌子程序</b></p><p> BZXD PROC NEAR</p><p><b> PUS
108、HA</b></p><p> MOV SYSJ,30 ;剩余時(shí)間為30</p><p> MOV COUNT,500 ;洗滌轉(zhuǎn)速</p><p> MOV XDSJ,18 ;洗滌結(jié)束時(shí)間</p><p> CALL XDCX ;洗滌程序</p><p>
109、MOV COUNT,500 ;漂洗轉(zhuǎn)速</p><p> MOV PXSJ,10 ;漂洗結(jié)束時(shí)間</p><p> CALL PXCX </p><p> MOV COUNT,100 ;甩干轉(zhuǎn)速</p><p> CALL SGCX </p><p> POP
110、A </p><p><b> RET</b></p><p> BZXD ENDP</p><p><b> ;</b></p><p> SGXD PROC NEAR</p><p><b> PUSHA</b></p&g
111、t;<p> MOV SYSJ,10</p><p> MOV COUNT,100</p><p> CALL SGCX</p><p><b> POPA</b></p><p><b> RET</b></p><p> SGXD EN
112、DP </p><p> XDCX PROC NEAR</p><p><b> PUSHA</b></p><p> MOV XSDK,PORTA1 </p><p> MOV XSZ,1 ;第一片8255顯示01,表示正在洗滌,初始化顯示0030</p>&
113、lt;p> CALL XSCL ;顯示處理,拆分10位,個(gè)位</p><p> CALL LEDXS</p><p> MOV STOP,0 </p><p> Z1: MOV DIRECT,0 ;正轉(zhuǎn)</p><p> CALL TIME1S ;1s定時(shí)開啟</p>
114、<p> Z2: MOV DX,PORTA</p><p> MOV AL,PACS</p><p> OR AL,00000010B</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p><b> CALL JPSM<
115、/b></p><p><b> CALL JPCL</b></p><p> CALL ZTSET</p><p><b> CMP QT,0</b></p><p><b> JE Z2</b></p><p> MOV DX
116、,PORTA</p><p> MOV AL,PACS</p><p> AND AL,11111101B</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p> CALL DJCX ;電機(jī)程序</p><p>
117、MOV DX,PORTC</p><p> IN AL,DX</p><p> AND AL,00010000B</p><p> CMP AL,00010000B</p><p> JNE Z2 ;判斷8254OUT0是否為高,不是則等待 </p><p><
118、b> DEC SYSJ</b></p><p> MOV AL,SYSJ</p><p> MOV XSZ,AL</p><p><b> CALL XSCL</b></p><p> MOV XSDK,PORTA2 ;第二片8255</p><p> C
119、ALL LEDXS</p><p> MOV DIRECT,0FFH ;電機(jī)反轉(zhuǎn)</p><p> CALL TIME1S</p><p><b> Z3: </b></p><p> MOV DX,PORTA</p><p> MOV AL,PACS</p>
120、<p> OR AL,00000010B</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p><b> CALL JPSM</b></p><p><b> CALL JPCL</b></p><p>
121、; CALL ZTSET</p><p><b> CMP QT,0</b></p><p><b> JZ Z3</b></p><p> MOV DX,PORTA</p><p> MOV AL,PACS</p><p> AND AL,11111
122、101B</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p><b> CALL DJCX</b></p><p> MOV DX,PORTC</p><p> IN AL,DX</p><p> AND
123、 AL,00010000B</p><p> CMP AL,00010000B</p><p> JNE Z3 ;判斷8254OUT0是否為高,不是則等待</p><p><b> DEC SYSJ</b></p><p> MOV AL,SYSJ</p><
124、p> MOV XSZ,AL</p><p> MOV XSDK,PORTA2</p><p><b> CALL XSCL</b></p><p> CALL LEDXS</p><p> MOV AL,XDSJ</p><p> CMP SYSJ,AL ;是
125、否洗滌完成</p><p><b> JNE Z1</b></p><p><b> POPA</b></p><p><b> RET</b></p><p> XDCX ENDP</p><p><b> ;</b>
126、;</p><p> PXCX PROC NEAR</p><p> MOV XSDK,PORTA1 ;</p><p> MOV XSZ,2 ;第一片8255顯示02,表示正在漂洗,初始化顯示0030</p><p> CALL XSCL ;顯示處理,拆分10位,個(gè)位</p><p
127、> CALL LEDXS</p><p> P1: MOV STOP,0 ;</p><p> MOV DIRECT,0 ;正轉(zhuǎn)</p><p> CALL TIME1S </p><p> P2: MOV DX,PORTC</p><p> IN AL,D
128、X</p><p> AND AL,00010000B</p><p><b> CMP AL,0</b></p><p> JNE P2 ;8254OUT0是否為低,不是等待</p><p> MOV DX,PORTA</p><p> MOV AL,PAC
129、S</p><p> OR AL,00000010B</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p> P3: MOV DX,PORTA</p><p> MOV AL,PACS</p><p> OR AL,000
130、00010B</p><p> MOV PACS,AL</p><p> OUT DX,AL</p><p><b> CALL JPSM</b></p><p><b> CALL JPCL</b></p><p> CALL ZTSET</p>
131、<p><b> CMP QT,0</b></p><p><b> JZ P3</b></p><p> MOV DX,PORTA</p><p> MOV AL,PACS</p><p> AND AL,11111101B</p><p>
132、; MOV PACS,AL</p><p> OUT DX,AL</p><p> CALL DJCX ;</p><p> MOV DX,PORTC</p><p> IN AL,DX</p><p> AND AL,00010000B</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗衣機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)-洗衣機(jī)
- 洗衣機(jī)課程設(shè)計(jì)--波輪式自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)洗衣機(jī)
- plc課程設(shè)計(jì)洗衣機(jī)
- 自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)---簡易洗衣機(jī)的設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 自動(dòng)洗衣機(jī)plc課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告--洗衣機(jī)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 工業(yè)洗衣機(jī)plc課程設(shè)計(jì)
- 簡易洗衣機(jī)控制課程設(shè)計(jì)
- 洗衣機(jī)數(shù)電課程設(shè)計(jì)
- 投幣式洗衣機(jī)plc設(shè)計(jì)——課程設(shè)計(jì)
- 課程設(shè)計(jì)-波輪式全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 投幣式洗衣機(jī)plc設(shè)計(jì)——課程設(shè)計(jì)
- plc課程設(shè)計(jì)——全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)
評論
0/150
提交評論