基于微機(jī)原理電子時(shí)鐘課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p>  一、課程設(shè)計(jì)要求及目的2</p><p>  二、開(kāi)發(fā)環(huán)境及設(shè)備2</p><p><b>  1、設(shè)計(jì)環(huán)境2</b></p><p>  2、設(shè)計(jì)所用設(shè)備2</p><p>  三、設(shè)計(jì)思想與原理2

2、</p><p><b>  1、設(shè)計(jì)思想2</b></p><p><b>  2、設(shè)計(jì)原理3</b></p><p><b>  1、內(nèi)容3</b></p><p><b>  2、要求3</b></p><p><

3、;b>  3、設(shè)計(jì)環(huán)境4</b></p><p>  4、設(shè)計(jì)所用設(shè)備4</p><p>  三、設(shè)計(jì)所用芯片結(jié)構(gòu)4</p><p>  1、8259A芯片的內(nèi)部結(jié)構(gòu)及引腳4</p><p>  2、8255芯片的內(nèi)部結(jié)構(gòu)及引腳5</p><p>  3、8255端口地址6</p&g

4、t;<p>  4、8254芯片的內(nèi)部結(jié)構(gòu)及引腳6</p><p>  5、8254引腳圖如圖3示,各引腳功能如下。7</p><p>  四、具體模塊設(shè)計(jì)8</p><p><b>  1、概述8</b></p><p><b>  2、主程序模塊8</b></p&g

5、t;<p><b>  3、小鍵盤(pán)模塊9</b></p><p><b>  4、顯示模塊10</b></p><p><b>  5、定時(shí)模塊10</b></p><p>  6、中斷處理模塊10</p><p><b>  7、芯片引腳11

6、</b></p><p>  五、程序流程圖12</p><p>  1、主程序流程圖如圖6所示12</p><p>  2、鍵盤(pán)掃描程序流程圖:(KEY)如圖7所示13</p><p>  3、中斷處理程序流程圖如圖8所示:14</p><p><b>  六、心得體會(huì)15</b

7、></p><p>  附錄一:參考書(shū)目15</p><p>  附錄二 相關(guān)程序16</p><p>  一、課程設(shè)計(jì)要求及目的</p><p>  1、用8255的A口驅(qū)動(dòng)六個(gè)七段數(shù)碼管(LED)的字段,C口驅(qū)動(dòng)六位七段數(shù)碼管(LED)的為控制端,右側(cè)兩位顯示分值,左側(cè)兩位顯示秒值,</p><p> 

8、 2、數(shù)碼管采用動(dòng)態(tài)掃描方式,用8253做定時(shí)器(采用查詢方式),每位顯示的時(shí)間<5ms,掃描頻率>50HZ。</p><p>  3以5ms為基本時(shí)間單位,計(jì)數(shù)產(chǎn)生秒時(shí)間值,秒計(jì)數(shù)到60時(shí)對(duì)分計(jì)數(shù),分計(jì)數(shù)到60時(shí)對(duì)時(shí)計(jì)數(shù)。</p><p><b>  二、開(kāi)發(fā)環(huán)境及設(shè)備</b></p><p><b>  1、設(shè)計(jì)環(huán)境&

9、lt;/b></p><p>  PC機(jī)一臺(tái)、windows XP系統(tǒng)、實(shí)驗(yàn)箱、導(dǎo)線若干。</p><p><b>  2、設(shè)計(jì)所用設(shè)備</b></p><p>  8254定時(shí)器:用于產(chǎn)生秒脈沖,其輸出信號(hào)可作為中斷請(qǐng)示信號(hào)送IRQ2。</p><p>  8255并口:用做接口芯片,和小鍵盤(pán)相連。</p&

10、gt;<p>  8259中斷控制器:用于產(chǎn)生中斷。</p><p>  LED:七個(gè)LED用于顯示時(shí):分:秒值。</p><p>  小鍵盤(pán):用于控制設(shè)置。</p><p><b>  三、設(shè)計(jì)思想與原理</b></p><p><b>  1、設(shè)計(jì)思想</b></p>

11、<p>  本系統(tǒng)設(shè)計(jì)的電子時(shí)鐘以8088微處理器作為CPU,用8254做定時(shí)計(jì)數(shù)器產(chǎn)生時(shí)鐘頻率,8255做可編程并行接口顯示時(shí)鐘和鍵盤(pán)電路,8259做中斷控制器產(chǎn)生中斷。在此系統(tǒng)中,8254的功能是定時(shí),接入8254的CLK信號(hào)為周期性時(shí)鐘信號(hào)。8254采用計(jì)數(shù)器0,工作于方式2,使8254的OUT0端輸出周期性的負(fù)脈沖信號(hào)。即每隔20ms,8254的OUT0端就會(huì)輸出一個(gè)負(fù)脈沖的信號(hào),此信號(hào)接8259的IR2,當(dāng)中斷到5

12、0次數(shù)后,CPU即處理,使液晶顯示器上的時(shí)間發(fā)生變化。其中8259只需初始化ICW1,其功能是向8259表明IRx輸入是電瓶觸發(fā)方式還是上升沿觸發(fā)方式,是單片8259還是多片8259。8259接收到信號(hào)后,產(chǎn)生中斷信號(hào)送CPU處理。</p><p><b>  2、設(shè)計(jì)原理</b></p><p>  利用實(shí)驗(yàn)臺(tái)上提供的定時(shí)器8254和擴(kuò)展板上提供的8259以及鍵盤(pán)和

13、數(shù)碼顯示電路,設(shè)計(jì)一個(gè)電子時(shí)鐘,由8254中斷定時(shí),小鍵盤(pán)控制電子時(shí)鐘的啟停及初始值的預(yù)置。電子時(shí)鐘的顯示格式HH:MM:SS由左到右分別為時(shí)、分、秒,最大記時(shí)59:59:59超過(guò)這個(gè)時(shí)間時(shí)分秒位都清零從00:00:00重新開(kāi)始。</p><p>  基本工作原理:每百分之一秒對(duì)百分之一秒寄存器的內(nèi)容加一,并依次對(duì)秒、分、小時(shí)寄存器的內(nèi)容加一,六個(gè)數(shù)碼管動(dòng)態(tài)顯示時(shí)、分、秒的當(dāng)前值。</p><

14、p><b>  1、內(nèi)容</b></p><p>  利用實(shí)驗(yàn)臺(tái)上提供的定時(shí)器8254和擴(kuò)展板上提供的8259以及鍵盤(pán)和數(shù)碼顯示電路,設(shè)計(jì)一個(gè)電子時(shí)鐘,由8254中斷定時(shí),小鍵盤(pán)控制電子時(shí)鐘的啟停及初始值的預(yù)置。</p><p>  電子時(shí)鐘的顯示格式HH:MM:SS由左到右分別為時(shí)、分、秒,最大記時(shí)59:59:59超過(guò)這個(gè)時(shí)間時(shí)分秒位都清零從00:00:00重

15、新開(kāi)始。</p><p><b>  2、要求</b></p><p>  本實(shí)驗(yàn)要求設(shè)計(jì)一個(gè)定時(shí)顯示裝置,用六個(gè)數(shù)碼管顯示時(shí)間,用小鍵盤(pán)控制計(jì)時(shí),設(shè)置和顯示時(shí)間。系統(tǒng)一運(yùn)行就從00點(diǎn)00分00秒開(kāi)始計(jì)時(shí),并在數(shù)碼管上顯示時(shí)、分、秒當(dāng)前值,而且,可以用鍵盤(pán)設(shè)置當(dāng)前時(shí)間。</p><p>  基本工作原理:每百分之一秒對(duì)百分之一秒寄存器的內(nèi)容加一

16、,并依次對(duì)秒、分、小時(shí)寄存器的內(nèi)容加一;六個(gè)數(shù)碼管動(dòng)態(tài)顯示時(shí)、分、秒的當(dāng)前值。</p><p>  C鍵:置初值,顯示00:00:00</p><p>  G鍵:顯示動(dòng)態(tài)變化(啟動(dòng)表);</p><p>  D鍵:顯示靜態(tài)不變(表停止);</p><p>  E鍵:終止程序,返回DOS;</p><p>  P鍵:設(shè)置

17、時(shí):分:秒的值</p><p><b>  3、設(shè)計(jì)環(huán)境</b></p><p>  PC機(jī)一臺(tái)、windows XP系統(tǒng)、實(shí)驗(yàn)箱,導(dǎo)線若干。</p><p><b>  4、設(shè)計(jì)所用設(shè)備</b></p><p>  8254定時(shí)器:用于產(chǎn)生秒脈沖,其輸出信號(hào)可作</p><p&

18、gt;  為中斷請(qǐng)示信號(hào)送IRQ2。</p><p>  8255并口:用做接口芯片,和小鍵盤(pán)相連。</p><p>  8259中斷控制器:用于產(chǎn)生中斷。</p><p>  LED:七個(gè)LED用于顯示時(shí):分:秒值。</p><p>  小鍵盤(pán):用于控制設(shè)置。</p><p>  三、設(shè)計(jì)所用芯片結(jié)構(gòu)</p&g

19、t;<p>  1、8259A芯片的內(nèi)部結(jié)構(gòu)及引腳</p><p>  中斷控制器8259A是Intel公司專為控制優(yōu)先級(jí)中斷而設(shè)計(jì)開(kāi)發(fā)的芯片。它將中斷源優(yōu)先排隊(duì)、辨別中斷源以及提供中斷矢量的電路集中于一片中。因此無(wú)需附加任何電路,只需對(duì)8259A編程,就可以管理8級(jí)中斷,并選擇優(yōu)先模式和中斷請(qǐng)求方式,即中斷結(jié)構(gòu)可以由用戶編程來(lái)設(shè)定。在MD微機(jī)系統(tǒng)中,8259芯片工作于單片方式。</p>

20、<p>  8259引腳圖如圖1,各引腳功能如下。</p><p>  D7~D0——八條雙向數(shù)據(jù)線;</p><p>  WR(低電平有效)——寫(xiě)輸入信號(hào);</p><p>  RD(低電平有效)——讀輸入信號(hào);</p><p>  CS(低電平有效)——片選輸入信號(hào);</p><p><b>

21、;  A0——地址信號(hào);</b></p><p>  INT——中斷請(qǐng)求信號(hào);</p><p>  INTA(低電平有效)——中斷響應(yīng)信號(hào);</p><p>  CAS0~CAS2——級(jí)聯(lián)信號(hào),形成一條專用8259A總線,以便多片8259A的級(jí)聯(lián);</p><p>  SP/EN——從編程/允許級(jí)聯(lián)。在緩沖方式中,可用做輸出信號(hào)以

22、控制總線緩沖器的接收和發(fā)送。在非緩沖方式中,作為輸入信號(hào)用于表示主片還是從片;</p><p>  IR0~IR7——外部中斷請(qǐng)求輸入線。要求輸入的中斷請(qǐng)求信號(hào)是由低電平到高電平的上升沿(并保持高電平到CPU響應(yīng)時(shí)為止)或者是高電平。</p><p>  8259中斷矢量地址與中斷信號(hào)之間的關(guān)系如表3.1所示:</p><p>  2、8255芯片的內(nèi)部結(jié)構(gòu)及引腳&

23、lt;/p><p>  8255可編程外圍接口芯片是Intel公司生產(chǎn)的通用并行I/O接口芯片,它具有A、B、C三個(gè)并行接口,用+5V單電源供電,</p><p>  能在以下三種工作方式下工作:</p><p>  方式0—基本輸入/輸出方式</p><p>  方式1—選通輸入/輸出方式</p><p>  方式2—雙

24、向選通輸入/輸出方式</p><p>  8255引腳圖如圖2示,各引腳功能如下。</p><p>  D7~D0——與CPU側(cè)連接的八條雙向數(shù)據(jù)線;</p><p>  WR(低電平有效)——寫(xiě)輸入信號(hào); </p><p>  RD(低電平有效)——讀輸入信號(hào);

25、 圖2 8255引腳圖</p><p>  CS(低電平有效)——片選輸入信號(hào);</p><p>  A0、A1——片內(nèi)寄存器選擇輸入信號(hào);</p><p>  PA7~PA0——A口外設(shè)雙向數(shù)據(jù)線;</p><p>  PB7~PB0——B口外設(shè)雙向數(shù)據(jù)線;</p><p>  PC7~PC0——C口外設(shè)

26、雙向數(shù)據(jù)線;</p><p>  RESET——復(fù)位輸入信號(hào)</p><p>  3、8255端口地址</p><p>  4、8254芯片的內(nèi)部結(jié)構(gòu)及引腳</p><p>  8254可編程定時(shí)/計(jì)數(shù)器是Intel公司生產(chǎn)的通用外圍芯片之一,有3個(gè)獨(dú)立的十六位計(jì)數(shù)器,技術(shù)頻率范圍為0~2MHZ,它所有的技術(shù)方式和操作方式都通過(guò)編程控制。&l

27、t;/p><p>  8254的功能用途是:</p><p>  延時(shí)中斷 </p><p>  可編程頻率發(fā)生器 </p><p>  事件計(jì)數(shù)器 </p><p><b>  二進(jìn)倍頻器 &l

28、t;/b></p><p><b>  實(shí)時(shí)時(shí)鐘</b></p><p><b>  數(shù)字單穩(wěn)</b></p><p><b>  復(fù)雜的電機(jī)控制器</b></p><p>  8254有六種工作方式:</p><p>  方式0:計(jì)數(shù)結(jié)束中斷&l

29、t;/p><p>  方式1:可編程頻率發(fā)生器</p><p>  方式2:頻率發(fā)生器 </p><p>  方式3:方波頻率發(fā)生器 </p><p>  方式4:軟件觸發(fā)的選通信號(hào)</p><p> ?。?) 方式5:硬件觸發(fā)的

30、選通信號(hào)</p><p>  5、8254引腳圖如圖3示,各引腳功能如下。</p><p>  D7~D0——八條雙向數(shù)據(jù)線;</p><p>  WR(低電平有效)——寫(xiě)輸入信號(hào);</p><p>  RD(低電平有效)——讀輸入信號(hào);</p><p>  CS(低電平有效)——片選輸入信號(hào);</p>

31、<p>  A0、A1——片內(nèi)寄存器地址輸入信號(hào);</p><p>  CLK——計(jì)數(shù)輸入,用于輸入定時(shí)基準(zhǔn)脈沖或計(jì)數(shù)脈沖;</p><p>  OUT——輸出信號(hào),以相應(yīng)的電平指示計(jì)數(shù)的完成,或輸出脈沖波形;</p><p>  GATE——選通輸入(門(mén)控輸入),用于啟動(dòng)或禁止計(jì)數(shù)器的操作,以使計(jì)數(shù)器和計(jì)測(cè)對(duì)象同步。</p><p&g

32、t;  2、8254端口地址</p><p>  表3.3 8254端口地址表</p><p><b>  四、具體模塊設(shè)計(jì)</b></p><p><b>  1、概述</b></p><p>  本系統(tǒng)設(shè)計(jì)的電子鐘以8088微處理器作為CPU,用8254做定時(shí)計(jì)數(shù)器產(chǎn)生時(shí)鐘頻率,8255做可編

33、程并行接口顯示時(shí)鐘和鍵盤(pán)電路,8259做中斷控制器產(chǎn)生中斷。在此系統(tǒng)中,8254的功能是定時(shí),接入8254的CLK信號(hào)為周期性時(shí)鐘信號(hào)。8254采用計(jì)數(shù)器0,工作于方式2,使8254的OUT0端輸出周期性的負(fù)脈沖信號(hào)。即每隔5ms,8254的OUT0端就會(huì)輸出一個(gè)負(fù)脈沖的信號(hào),此信號(hào)接8259的IR2,當(dāng)中斷到50次數(shù)后,CPU即處理,使液晶顯示器上的時(shí)間發(fā)生變化。程序由以下模塊組成:系統(tǒng)共有5個(gè)功能模塊,分別為,主控模塊,顯示模塊,定

34、時(shí)模塊,中斷模塊,小鍵盤(pán)模塊。</p><p><b>  系統(tǒng)框圖如下:</b></p><p><b>  圖4 系統(tǒng)框圖</b></p><p><b>  2、主程序模塊</b></p><p>  主控模塊是系的核心模塊,對(duì)8254、8255A進(jìn)行初始化,設(shè)置中斷向量

35、,掃描鍵盤(pán)根據(jù)按鍵值作相應(yīng)的處理。主要由軟件實(shí)現(xiàn)。它的主要功能是調(diào)用其它模塊對(duì)系統(tǒng)工作進(jìn)行協(xié)調(diào),它的主要功能是讀小鍵盤(pán)輸入鍵值并執(zhí)行要做的工作,如果鍵值為C則將顯示初始值00:00:00置入顯示緩沖,并調(diào)用顯示模塊顯示。如果鍵值為G則開(kāi)中斷,(中斷程序?yàn)槊胱畹臀患右唬H绻I值為D則關(guān)中斷,停止動(dòng)態(tài)顯示。如健值為P則連續(xù)六次調(diào)用小鍵盤(pán)模塊,將鍵值依次存入顯示緩沖。并調(diào)用顯示模塊顯示。如果健值為E,則終止程序,返回DOS。</p&g

36、t;<p><b>  3、小鍵盤(pán)模塊</b></p><p>  小鍵盤(pán)模塊送入主控模塊的子功能模塊。由軟件和硬件實(shí)現(xiàn),硬件上由小鍵盤(pán)和8255互連,將小鍵值由8255送入主控模塊。軟件上使用行掃描法獲得鍵值并送回主控模塊。本課題只考慮去抖動(dòng)。執(zhí)行一個(gè)約10ms的延時(shí)程序后再掃描鍵盤(pán),若F0=1表示真正有鍵按下,從而消除了抖動(dòng)影響。</p><p>&

37、lt;b>  實(shí)現(xiàn)代碼如下:</b></p><p>  KEY ROC NEAR</p><p><b>  PUSH CX</b></p><p>  KST: MOV AL,82H</p><p>  MOV DX,P55CTL</p><p><

38、b>  OUT DX,AL</b></p><p>  MOV AL,00H</p><p>  MOV DX,PA55</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,PB55</p><p><b>  IN AL,DX&l

39、t;/b></p><p>  OR AL,0F8H</p><p>  CMP AL,0FFH</p><p><b>  JZ DELAY</b></p><p>  MOV CX,0300H</p><p>  DLY: LOOP DLY</p><p&g

40、t;  MOV CL,08H</p><p>  MOV AH,0FEH</p><p>  SCAN1: MOV DX,PA55</p><p><b>  MOV AL,AH</b></p><p><b>  OUT DX,AL</b></p><p>  MOV

41、 DX,PB55</p><p><b>  IN AL,DX</b></p><p>  OR AL,0F8H</p><p>  CMP AL,0FFH</p><p><b>  JNZ KEYN</b></p><p><b>  ROL AH,1</

42、b></p><p><b>  DEC CL</b></p><p><b>  JNZ SCAN1</b></p><p><b>  JMP KST</b></p><p>  KEYN: PUSH AX</p><p>  MOV D

43、X,PB55</p><p>  RELEA: IN AL,DX</p><p>  OR AL,0F8H</p><p>  CMP AL,0FFH</p><p><b>  JNZ RELEA</b></p><p><b>  POP AX</b></p&g

44、t;<p><b>  NOT AX</b></p><p>  MOV SI,OFFSET TABLE</p><p>  MOV DI,OFFSET CHAR</p><p><b>  MOV CX,24</b></p><p>  TT: CMP AX,[SI]</p

45、><p><b>  JZ NN</b></p><p><b>  DEC CX</b></p><p><b>  JZ KST</b></p><p><b>  ADD SI,02</b></p><p><b>  

46、INC DI</b></p><p><b>  JMP TT</b></p><p>  NN: MOV DL,[DI]</p><p>  MOV [CHAR1],DL </p><p>  MOV AH,02H</p><p><b>  INT 21H</b

47、></p><p><b>  POP CX</b></p><p><b>  JMP YANG</b></p><p>  DELAY: CALL DISPLY</p><p><b>  JMP KST</b></p><p>  YANG:

48、 RET</p><p>  KEY ENDP</p><p><b>  4、顯示模塊</b></p><p>  顯示模塊是將顯示緩沖區(qū)的數(shù)值送到LED顯示的功能模塊,顯示緩沖區(qū)是由六個(gè)字節(jié)構(gòu)成,分別保存小時(shí)的高位和低位,分鐘的高位和低位,秒鐘的高位和低位。硬件上由六個(gè)LED構(gòu)成,軟件上由掃描顯示的方法實(shí)現(xiàn)。</p

49、><p><b>  實(shí)現(xiàn)代碼如下:</b></p><p>  DISPLAY PROC NEAR</p><p>  MOV CX,77FFH</p><p>  LED52: CALL DISUP</p><p>  LOOP LED52</p><p>  DISU

50、P: PUSH CX</p><p>  MOV DI,OFFSET MIN1</p><p><b>  MOV CL,01</b></p><p>  DISUP1: MOV AL,0</p><p>  MOV DX,PORTBIT</p><p><b>  OUT DX,

51、AL</b></p><p>  MOV AL,[DI]</p><p>  MOV BX,OFFSET LED</p><p><b>  XLAT</b></p><p>  MOV DX,PORTSEG</p><p><b>  OUT DX,AL</b>

52、</p><p><b>  MOV AL,CL</b></p><p>  MOV DX,PORTBIT</p><p><b>  OUT DX,AL</b></p><p>  MOV BX,35H</p><p>  DELAY1: DEC BX</p>

53、<p>  JNZ DELAY1</p><p>  CMP CL,20H</p><p><b>  JZ DISUP2</b></p><p><b>  INC DI</b></p><p><b>  SHL CL,1</b></p><

54、;p>  JMP DISUP1</p><p>  DISUP2: POP CX</p><p><b>  RET</b></p><p>  DISPLAY ENDP</p><p><b>  5、定時(shí)模塊</b></p><p>  定時(shí)模塊是為8259提供中

55、斷請(qǐng)求信號(hào)的。由一片8254實(shí)現(xiàn),選用定時(shí)器0#,工作在方式3,由4時(shí)鐘應(yīng)該1秒走動(dòng)一次,所以輸出值應(yīng)為1S,其輸出信號(hào)可作為8259的中斷請(qǐng)求信號(hào)。</p><p><b>  6、中斷處理模塊</b></p><p>  中斷模塊實(shí)現(xiàn)動(dòng)態(tài)顯示的,硬件為一片8259,由于中斷請(qǐng)求信號(hào)為每秒一次,中斷程序該為時(shí)間按秒增加,并顯示,只要開(kāi)中斷,便可實(shí)現(xiàn)每秒顯示時(shí)間增加一

56、秒,從而達(dá)到動(dòng)態(tài)顯示的效果。</p><p><b>  7、芯片引腳</b></p><p>  按如下圖4接線圖連接好試驗(yàn)箱上的芯片引腳, 主要用到器件有8255,8254,LED,8259,小鍵盤(pán)。8254的片選接地址208-20F,OUT1,OUT0接燈(測(cè)試用),GATE0,GATE1接+5V,CLK1接8259的IRQ2,CLK0接Q12(12分頻)。&l

57、t;/p><p>  8255的片選接地址218-21F,實(shí)驗(yàn)箱已將其和小鍵盤(pán)相連。</p><p>  LED的片選接地址210-217。</p><p><b>  圖5 試驗(yàn)接線圖</b></p><p><b>  五、程序流程圖</b></p><p>  1、主程序

58、流程圖如圖6所示</p><p>  2、鍵盤(pán)掃描程序流程圖:(KEY)如圖7所示</p><p>  圖7 鍵盤(pán)掃描程序流程圖</p><p>  3、中斷處理程序流程圖如圖8所示:</p><p>  圖8 中斷處理程序流程圖</p><p><b>  六、心得體會(huì)</b></p>

59、;<p>  經(jīng)過(guò)以上步驟,課程設(shè)計(jì)所要求設(shè)計(jì)的電子鐘顯示設(shè)計(jì)軟件便成功完成了,它能顯示數(shù)字式的時(shí)鐘,并且能設(shè)置初值和時(shí)鐘進(jìn)制。整個(gè)頁(yè)面簡(jiǎn)潔清晰,方便用戶讀取,且操作簡(jiǎn)捷,符合課程設(shè)計(jì)中的各項(xiàng)要求。通過(guò)這次課程設(shè)計(jì),我們對(duì)日常生活中司空見(jiàn)慣的時(shí)鐘的工作原理有了一個(gè)比較深入的了解,將書(shū)本中的知識(shí)更好地與實(shí)際生活中的應(yīng)用結(jié)合在了一起。</p><p>  通過(guò)這次微機(jī)原理課程設(shè)計(jì)學(xué)到了很多很多的的東西,

60、同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。而且我第一次感受到在寫(xiě)一個(gè)程序的時(shí)候,一定要事先把程序原理方框圖畫(huà)出來(lái)的重要性。在課程設(shè)計(jì)中碰到的那些需要很多代碼才能完成的任務(wù),畫(huà)程序方框圖是很有必要的。因?yàn)橥ㄟ^(guò)程序方框圖,在做設(shè)計(jì)的過(guò)程中,我們每一步要做什么,每一步要完成什么任務(wù)都有一個(gè)很清楚的思路,而且在程序測(cè)試的過(guò)程中也有利于查錯(cuò)。</p><p>  本次課程設(shè)計(jì)的過(guò)程中遇到

61、了很多問(wèn)題,比如時(shí)間走得太快、光標(biāo)的位置無(wú)法定位等等。對(duì)每個(gè)問(wèn)題的解決都是一種對(duì)知識(shí)的重新整理和考察。我更加感到愉悅的,此次的課程設(shè)計(jì)鍛煉了我的編程能力。</p><p>  到此為止,我們接近兩周的課程設(shè)計(jì)也告一段落。通過(guò)這次課程設(shè)計(jì),使我認(rèn)識(shí)到理論與實(shí)際相結(jié)合的重要性,對(duì)課本上的只是在實(shí)際生活中的運(yùn)用也有了進(jìn)一步的了解,同時(shí)基本上能夠掌握匯編語(yǔ)言編程中編程的步驟,可以說(shuō)是從中受益匪淺。</p>

62、<p>  通過(guò)本次課設(shè)我也學(xué)到很多課堂上學(xué)不到的調(diào)試知識(shí)。很感謝學(xué)校給我們提供了這么好的學(xué)習(xí)機(jī)會(huì),感謝老師的指導(dǎo),從老師的身上學(xué)到了對(duì)知識(shí)真正嚴(yán)謹(jǐn)細(xì)致的態(tài)度,讓我受益匪淺。</p><p><b>  附錄一:參考書(shū)目</b></p><p>  1、戴梅萼,史嘉權(quán)編著.微型計(jì)算機(jī)技術(shù)及應(yīng)用(第三版).北京:清華大學(xué)出版社,2003</p>

63、<p>  2、周明德編著.微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用(第四版).北京:清華大學(xué)出版社,2002</p><p>  3、李順增,吳國(guó)東,趙河明等.微機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,2006</p><p>  4、楊立新.微型計(jì)算機(jī)原理和應(yīng)用[M].北京:科學(xué)技術(shù)文獻(xiàn)出版社,1986.11 </p><p>  5、李大友.微型計(jì)算機(jī)原理[M].北

64、京:清華大學(xué)出版社,1998.7</p><p>  6、眭碧霞.微型計(jì)算機(jī)原理與組成[M].人民郵電出版社,2003.8</p><p><b>  附錄二 相關(guān)程序</b></p><p><b>  電子時(shí)鐘程序</b></p><p>  ;8255用作讀鍵盤(pán)信息</p>&

65、lt;p>  ;8253提供時(shí)鐘信號(hào)</p><p>  ;led采用動(dòng)態(tài)顯示</p><p>  model small</p><p><b>  .stack 50</b></p><p><b>  ,數(shù)據(jù)段</b></p><p><b>  dat

66、a</b></p><p>  buf d6 0,0,0,0,0,0;顯示緩沖區(qū)</p><p><b>  ;數(shù)碼管筆形碼</b></p><p>  led d63FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80h</p><p>  hour d6 08h;時(shí)緩沖單元&

67、lt;/p><p>  min db 30h;分緩沖單元</p><p>  see d6 30h;秒緩沖單元</p><p>  mseo d6 0;毫秒緩沖單元</p><p>  dex db 0;筆形碼索引值</p><p><b>  ;鍵盤(pán)編碼表</b></p><p&

68、gt;  keytab DW 57FH,5BFH,5DFH,5EFH,5FEH,5FDH,5FBH,5F7H</p><p>  DW 67FH,6BFH,6DFH,6EFH,6FEH,6FDH,6FBH,6F7H</p><p>  keyend dw 7ffh</p><p>  agekey db 12;鍵齡</p><p>  old

69、key dw 0;鍵碼字保存</p><p>  keynum d6 0;鍵號(hào)</p><p>  keyok db 0;按鍵響應(yīng)標(biāo)記</p><p>  state d6 0;系統(tǒng)狀態(tài),。一運(yùn)行態(tài);1一修改態(tài)</p><p>  keymd db 0;修改鍵標(biāo)記,B一修改時(shí);C一修改分;D-修改秒</p><p> 

70、 some d6 0;時(shí)間設(shè)定單元,保存鍵盤(pán)輸入的時(shí)間</p><p><b>  二代碼段</b></p><p><b>  code</b></p><p><b>  ;主程序:</b></p><p>  ;實(shí)現(xiàn)8253的設(shè)置,中斷向量的設(shè)置,檢測(cè)系統(tǒng)大鍵盤(pán)信號(hào),有按

71、鍵就結(jié)束程序返回系統(tǒng)。</p><p>  main proc far</p><p>  start: mov ax,data;設(shè)置數(shù)據(jù)段和附加段</p><p><b>  mov ds,ax</b></p><p><b>  mov es,ax</b></p><p>

72、;<b>  cli;關(guān)中斷</b></p><p>  ;設(shè)置8253, 2l,方式2,輸入250kHz,輸出200Hz</p><p>  mov dx,233h</p><p>  mov a1,74h</p><p><b>  out dx,al</b></p><p&

73、gt;  m- dx.231h</p><p>  mov ax,1250</p><p><b>  out dx,al</b></p><p><b>  mov al,ah</b></p><p><b>  out dx,al</b></p><p&

74、gt;<b>  ;保存原中斷向量</b></p><p><b>  a1,Obh</b></p><p><b>  ah,35b</b></p><p><b>  21h</b></p><p><b>  es bxds</b&g

75、t;</p><p>  ︸︸int nush vushPush</p><p><b>  ;設(shè)置新中斷向量</b></p><p>  mov dx, offset intpro</p><p>  mov ax,seg intpro</p><p><b>  mov ds,ax&

76、lt;/b></p><p>  mov a1,Obh</p><p>  mov ah,25h</p><p><b>  tm 21h</b></p><p><b>  ;打開(kāi)中斷屏蔽</b></p><p><b>  Pop ds</b>

77、</p><p>  in a1, 21h</p><p>  And al, Of7h</p><p>  out 21h,a1</p><p><b>  sti;開(kāi)中斷</b></p><p>  ;等持按鍵,返回系統(tǒng)</p><p>  wat: mov ah,l&

78、lt;/p><p><b>  int lbh</b></p><p><b>  jz wat</b></p><p><b>  ;回復(fù)中斷向量</b></p><p><b>  pop dx</b></p><p><b&

79、gt;  pop ds</b></p><p>  mov a1,Obh</p><p>  mov ah,25h</p><p><b>  int 21h</b></p><p>  ;退出程序,返回系統(tǒng)</p><p>  mov ax,4e00h</p><

80、p><b>  In 21h</b></p><p><b>  ,中斷一f程序:</b></p><p>  ;完成時(shí)鐘處理、鍵盤(pán)監(jiān)控和顯示功能</p><p>  tntpro proc near</p><p>  push ds;保存寄存器</p><p>&l

81、t;b>  push ax</b></p><p>  push cx </p><p><b>  ax</b></p><p>  ax,d

82、ata;設(shè)置數(shù)據(jù)段和代碼段寄存器</p><p><b>  ds,ax</b></p><p>  ;不是修改狀態(tài)才走時(shí)鐘</p><p><b>  nush</b></p><p>  ;時(shí)鐘處理模塊,以5毫秒為單位調(diào)整時(shí)、分秒。</p><p>  elk: inc

83、msec</p><p><b>  nU</b></p><p><b>  魷、h</b></p><p>  cn]nl m ml ad da mlcn]nl抑mI</p><p><b>  add al,l</b></p><p><b&

84、gt;  min,al</b></p><p><b>  min,60h</b></p><p><b>  daa﹄cmP</b></p><p><b>  jne next</b></p><p><b>  mov min,0</b>

85、</p><p>  mov al,hour</p><p><b>  add al,l</b></p><p><b>  daa</b></p><p>  mov hour,al</p><p>  cmp hour,24h</p><p>&

86、lt;b>  jne next</b></p><p>  mov hour,0</p><p><b>  ,鍵盤(pán)監(jiān)控模塊</b></p><p>  next: dec agekey</p><p><b>  jz nextl</b></p><p>

87、<b>  jmp dsp</b></p><p>  nextl: mov agekey,12</p><p>  mov dx,223h;設(shè)置PA輸出,PB輸入</p><p>  mov a1,82h</p><p><b>  out dx,al</b></p><p&g

88、t;  mov a1,0 ;A口輸出低電平,讀B口</p><p>  mov dx,220h</p><p><b>  out dx,al</b></p><p>  mov dx,221h</p><p><b>  in al,dx</b></p><p><b

89、>  mov bh,al</b></p><p>  mov dx,223h;設(shè)置PB輸出,PA輸入</p><p>  mov a1,90h</p><p><b>  out dx,al</b></p><p>  mov al,() ;b</p><p>  mov dx,

90、22lh</p><p><b>  out dx,al</b></p><p>  mov dx,220b</p><p><b>  in al,dx</b></p><p>  mov bl,al ;i?</p><p>  and bx,7ffh;去除鍵碼中無(wú)用位數(shù)&

91、lt;/p><p>  cmp bx,7ffh</p><p>  jne keyon;有按鍵則進(jìn)入按鍵處理</p><p>  mov keyok,0;無(wú)按鍵則清除響應(yīng)標(biāo)志退出按鍵處理</p><p><b>  jmp dsp</b></p><p>  keyon: cmp. bx,oldkey

92、</p><p>  je keyonl;已經(jīng)去抖動(dòng)則直接處理按鍵</p><p>  movagekey,4;有新按鍵則設(shè)置鍵齡退出中斷</p><p>  mov keyok,0</p><p>  mov oldkey,bx</p><p><b>  imp dsp</b></p&g

93、t;<p>  keyonl: cmp keyok,l</p><p>  jne II;按鍵已響應(yīng)則退出鍵盤(pán)處理</p><p><b>  imp dsp</b></p><p>  11: mov keyok,l;設(shè)立按鍵響應(yīng)標(biāo)記</p><p><b>  std</b><

94、;/p><p>  lea di,keyend;指向鍵碼表</p><p>  mov ax,bx;讀取鍵號(hào),地址遞減,cx的值為鍵號(hào)</p><p><b>  mov cx,17</b></p><p>  repne scasw</p><p><b>  je keyon2</

95、b></p><p><b>  imp dsp</b></p><p>  keyon2: mov keynum,cl;保存鍵號(hào)</p><p>  cmp state,0;系統(tǒng)在修改態(tài)否?</p><p>  jne keyon3;跳到修改態(tài)的處理</p><p>  cmp keynu

96、m,0ah;為A鍵否</p><p><b>  jne keyb</b></p><p>  mov keymd,l;作a鍵修改標(biāo)志</p><p>  movhour,0aah沙時(shí)顯示為一</p><p>  mov state,l;進(jìn)入修改態(tài)</p><p><b>  imp d

97、sp</b></p><p>  keyb: cmp keynum,Obh;為B鍵否</p><p><b>  jne keye</b></p><p>  mov keymd,2;作b鍵修改標(biāo)志</p><p>  mov min,0aah;分鐘異示為..</p><p>  mo

98、v state,l;進(jìn)入修改態(tài)</p><p><b>  imp dsp</b></p><p>  keyc: cmp keynum,Och;為c鍵否</p><p><b>  je keycl</b></p><p><b>  imp dsp</b></p>

99、;<p>  keycl: mov keymd,3;作c鍵修改標(biāo)志</p><p>  mov sec,0aah</p><p>  mov state,l;秒顯示為..</p><p><b>  imp dsp</b></p><p>  keyon3: cmp keynum,9;在修改態(tài),判斷是否為數(shù)

100、字鍵</p><p>  jbe keys ;<=9則認(rèn)為是數(shù)字鍵</p><p>  imp keyen;否則判斷是否為確定鍵</p><p>  keyn: mov al,stime滋取輸入時(shí)間,十進(jìn)制格式</p><p><b>  mov c1,4</b></p><p>  shl

101、 al,cl;在確定以前最后輸入的兩個(gè)十進(jìn)制數(shù)有效</p><p>  or al,keynum</p><p>  mov stime,al</p><p><b>  imp dsp</b></p><p>  keyen: cmp keynum,Ofh;處理f鍵</p><p><b&

102、gt;  je keyenl</b></p><p><b>  imp dsp</b></p><p>  keyenl: mov state,0;恢復(fù)到運(yùn)行態(tài)</p><p>  cmp keymd,l;將修改內(nèi)容送小時(shí)單元</p><p>  jne keyen2</p><p>

103、;  mov keymd,0;清除修改小時(shí)標(biāo)志</p><p>  emp stime,24h;判斷輸入時(shí)間是否>=24</p><p><b>  jb key-3</b></p><p>  mov hour,0;大于24時(shí),輸入為。</p><p>  mov sdme,0;清除時(shí)間單元</p>

104、<p><b>  imp dsp</b></p><p>  key-3: mov al,stime</p><p>  mov hour,al;小于24時(shí),輸入設(shè)定時(shí)間</p><p>  mov stime,0;清除時(shí)間單元</p><p><b>  imp dsp</b><

105、;/p><p>  key-2: -p keymd,2;將修改分鐘標(biāo)志</p><p>  jne keyen4</p><p>  mov keymd,0;請(qǐng)除修改分鐘標(biāo)志</p><p>  cmp sfme,60h</p><p><b>  jb keyen5</b></p>&

106、lt;p><b>  mov min,0</b></p><p>  mov stime,0</p><p><b>  imp dsp</b></p><p>  keyen5: mov al,stime</p><p>  mov mfn,al</p><p>  

107、mov stime,0</p><p><b>  imp dsp</b></p><p>  keyen4: cmp keymd,3;將修改秒</p><p><b>  jne dsp</b></p><p>  mov keymd,0</p><p>  cmp sti

108、me,60h</p><p><b>  j6 keyen6</b></p><p><b>  mov sec,0</b></p><p>  mov stime,0</p><p><b>  imp dsp</b></p><p>  keyen6

109、: mov al,stime</p><p>  mov sec,al</p><p>  mov stime,0</p><p><b>  顯示模塊</b></p><p>  dsp: mov si,0;將時(shí)、分、秒信號(hào)拷貝到顯示緩沖區(qū)</p><p><b>  mov c1,4

110、</b></p><p><b>  mov ch,2</b></p><p>  mov al,hour</p><p>  lpl:rol al,cl</p><p><b>  mov ah,al</b></p><p>  and a1,Oflr</

111、p><p>  mov 6u兀sii,al</p><p><b>  mov al,ah</b></p><p><b>  me m</b></p><p><b>  dec ch</b></p><p><b>  jaz lpl</

112、b></p><p><b>  mov ch,2</b></p><p>  mov al,mir</p><p>  Ip2: rol al,cl</p><p><b>  mov ab,al</b></p><p>  and a1,Oflr</p>

113、<p><b>  mov 6u幾si</b></p><p><b>  mov al,ah</b></p><p><b>  me s</b></p><p><b>  dec ch</b></p><p><b>  jn

114、z )p2</b></p><p><b>  mov cb,2</b></p><p>  mov al,sec</p><p>  Ip3: rol al,cl</p><p><b>  mov ah,al</b></p><p>  and a1,Oflr

115、</p><p>  mov bu兀si],al</p><p><b>  mov al,ah</b></p><p><b>  me勺</b></p><p><b>  dec ch</b></p><p><b>  jnz lp3&

116、lt;/b></p><p>  mov cl,dex;顯示數(shù)碼管的某一位</p><p><b>  mov al,l</b></p><p><b>  rol al,cl</b></p><p>  mov dx,210h</p><p><b>  o

117、ut擊al</b></p><p><b>  and ax,0</b></p><p>  mov al,dex</p><p><b>  mov si,ax</b></p><p>  mov bl,buf]si]</p><p><b>  mo

118、v bh,0</b></p><p>  mov al,led[bx]</p><p>  mov dx,211h</p><p><b>  out dx;al</b></p><p><b>  ine dex</b></p><p><b>  e

119、mp dex,6</b></p><p><b>  jne exit</b></p><p><b>  mov dex,0</b></p><p>  exit: mov. a1,20h</p><p>  out 20h,a1</p><p><b&g

120、t;  pop血</b></p><p><b>  Pop cx</b></p><p><b>  Pop ax</b></p><p><b>  Pop ds</b></p><p><b>  iret</b></p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論