2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論