電子鐘課程設(shè)計(jì)6_第1頁(yè)
已閱讀1頁(yè),還剩14頁(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、<p><b>  電子鐘課程設(shè)計(jì)</b></p><p><b>  一.實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  1... 學(xué)習(xí)8051定時(shí)器時(shí)間計(jì)時(shí)處理、按鍵掃描及LED數(shù)碼管顯示的設(shè)計(jì)方法。</p><p>  2.. 設(shè)計(jì)任務(wù)及要求 利用實(shí)驗(yàn)平臺(tái)上4個(gè)LED數(shù)碼管, 設(shè)計(jì)帶有記憶功能的數(shù)字時(shí)鐘</p&

2、gt;<p>  3.掌握組合邏輯電路、時(shí)序邏輯電路及數(shù)字邏輯電路系統(tǒng)的設(shè)計(jì)、安裝、測(cè)試方法;</p><p>  4.進(jìn)一步鞏固所學(xué)的理論知識(shí),提高運(yùn)用所學(xué)知識(shí)分析和解決實(shí)際問題的能力;</p><p>  5.提高電路布局﹑布線及檢查和排除故障的能力;</p><p>  6.培養(yǎng)書寫綜合實(shí)驗(yàn)報(bào)告的能力。</p><p>&

3、lt;b>  二、實(shí)驗(yàn)設(shè)備</b></p><p>  STAR ES598PCI試驗(yàn)儀一套、PC機(jī)一臺(tái)。</p><p><b>  三、實(shí)驗(yàn)內(nèi)容</b></p><p>  1、使用8253定時(shí)功能,產(chǎn)生0.5S的定時(shí)中斷給8259</p><p>  2、在G5區(qū)的數(shù)碼管上顯示時(shí)間</p&g

4、t;<p>  3、允許設(shè)置時(shí)鐘初值</p><p>  4.使電子鐘帶有記憶功能.</p><p><b>  設(shè)計(jì)所涉及的芯片</b></p><p>  1、8253定時(shí)器:</p><p>  用于產(chǎn)生秒脈沖,其輸出信號(hào)可作為中斷請(qǐng)示信號(hào)送IRQ2。</p><p>  2、

5、8279接口芯片:</p><p>  實(shí)現(xiàn)鍵盤輸入和顯示輸出。</p><p>  3、8259中斷控制器:</p><p><b>  用于產(chǎn)生中斷。</b></p><p>  4、LED:六個(gè)LED用于顯示時(shí):分:秒值。</p><p>  5、小鍵盤:用于控制設(shè)置。</p>

6、<p><b>  四、實(shí)驗(yàn)要求 </b></p><p>  1. 在4位數(shù)碼管上顯示當(dāng)前時(shí)間。顯示格式“秒,分,時(shí)” </p><p>  2. 由LED閃動(dòng)做秒顯示。</p><p>  3.實(shí)現(xiàn)秒表功能(百分之一秒顯示)</p><p>  4.電子鐘有記憶功能,電子鐘啟動(dòng)之后,按F鍵,在顯示秒的地方

7、記錄數(shù)據(jù),然后電子鐘重新開始啟動(dòng),再次按F鍵,電子鐘再次記錄數(shù)據(jù)。</p><p><b>  五、設(shè)計(jì)原理</b></p><p>  利用定時(shí)器8253和8259以及鍵盤和數(shù)碼顯示電路,設(shè)計(jì)一個(gè)電子時(shí)鐘,由8253中斷定時(shí),小鍵盤控制電子時(shí)鐘的啟停及初始值的預(yù)置。</p><p>  電子時(shí)鐘的顯示格式AA:SS:DD由左到右分別為時(shí)、分、

8、秒,最大記時(shí)59:59:59超過這個(gè)時(shí)間時(shí)分秒位都清零從00:00:00重新開始。</p><p>  設(shè)計(jì)一個(gè)定時(shí)顯示裝置,用六個(gè)數(shù)碼管顯示時(shí)間,用小鍵盤控制計(jì)時(shí),設(shè)置和顯示時(shí)間。系統(tǒng)一運(yùn)行就從00點(diǎn)00分00秒開始計(jì)時(shí),并在數(shù)碼管上顯示秒、分、時(shí)當(dāng)前值,而且,可以用鍵盤設(shè)置當(dāng)前時(shí)間。</p><p>  基本工作原理:每百分之一秒對(duì)百分之一秒寄存器的內(nèi)容加一,并依次對(duì)秒、分、小時(shí)寄存器

9、的內(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è)置秒:分:時(shí)的值</p&

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

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

12、s,8253的OUT0端就會(huì)輸出一個(gè)負(fù)脈沖的信號(hào),此信號(hào)接8259的IR2,當(dāng)中斷到50次數(shù)后,CPU即處理,使液晶顯示器上的時(shí)間發(fā)生變化。程序由以下模塊組成:系統(tǒng)共有5個(gè)功能模塊,分別為,主控模塊,顯示模塊,定時(shí)模塊,中斷模塊,小鍵盤模塊。</p><p><b>  系統(tǒng)總體框圖如下:</b></p><p><b>  1.CPU模塊</b>

13、;</p><p>  8088最小工作模式,作為整個(gè)電子表的核心控制部分。</p><p>  在8088最小模式中,硬件連接上有如下特點(diǎn):</p><p>  MN/MX 端接+5V,決定了8088工作在最小模式。 </p><p>  有1片8284A,作為時(shí)鐘發(fā)生器。</p><p>  有3片8282,用來作

14、為地址鎖存器。8282是典型的鎖存器芯片,因?yàn)樗?位的,所以需要3片8282作為鎖存器。</p><p>  當(dāng)系統(tǒng)中所連的存儲(chǔ)器和外設(shè)系統(tǒng)較多時(shí),需要增加數(shù)據(jù)總線的驅(qū)動(dòng)能力,這時(shí),要用兩片8286作為總線收發(fā)器。</p><p>  8088構(gòu)成的CPU</p><p><b>  2.定時(shí)模塊</b></p><p&g

15、t;  定時(shí)模塊是為8259提供中斷請(qǐng)求信號(hào)的。由一片8253實(shí)現(xiàn),選用定時(shí)器0#,工作在方式3,由于時(shí)鐘應(yīng)該1秒走動(dòng)一次,所以輸出值應(yīng)為1S,其輸出信號(hào)可作為8259的中斷請(qǐng)求信號(hào)。</p><p><b>  定時(shí)模塊原理圖</b></p><p><b>  3.中斷處理模塊</b></p><p>  中斷模塊實(shí)現(xiàn)

16、動(dòng)態(tài)顯示的,硬件為一片8259,由于中斷請(qǐng)求信號(hào)為每秒一次,中斷程序該為時(shí)間按秒增加,并顯示,只要開中斷,便可實(shí)現(xiàn)每秒顯示時(shí)間增加一秒,從而達(dá)到動(dòng)態(tài)顯示的效果。</p><p>  4.顯示模塊和小鍵盤模塊</p><p><b>  5.實(shí)物硬件連接圖</b></p><p><b>  七、實(shí)驗(yàn)步驟</b></p

17、><p><b>  1、主機(jī)連線說明:</b></p><p>  2、運(yùn)行程序,按G5區(qū)的F鍵,設(shè)置時(shí)鐘初值;</p><p>  3、觀察G5區(qū)數(shù)碼管上顯示的時(shí)間是否正確。</p><p>  中斷信號(hào)送CPU處理。</p><p><b>  八、演示程序</b><

18、/p><p>  .MODELTINY</p><p>  EXTRN Display8:NEAR, GetKeyA:NEAR, GetKeyB:NEAR</p><p>  IO8259_0EQU0F000H</p><p>  IO8259_1EQU0F001H</p><p>  

19、Con_8253EQU0E003H</p><p>  T0_8253 EQU0E000H</p><p>  .STACK200</p><p><b>  .DATA</b></p><p>  halfsec DB0;0.5秒計(jì)數(shù)</p><

20、p>  SecDB0;秒</p><p>  MinDB0;分</p><p>  hourDB0;時(shí)</p><p>  buffer DB8 DUP(0);顯示緩沖區(qū),8個(gè)字節(jié)</p><p>  buffer1 DB8 DUP(0);顯示緩沖區(qū),8個(gè)字節(jié)</p>

21、<p>  bNeedDisplay DB0;需要刷新顯示</p><p>  number DB0;設(shè)置哪一位時(shí)間</p><p>  bFlash DB0;設(shè)置時(shí)是否需要刷新</p><p><b>  .CODE</b></p><p>  START: MOVAX,@DA

22、TA</p><p>  MOVDS,AX</p><p>  MOVES,AX</p><p><b>  NOP</b></p><p>  movsec,0;時(shí)分秒賦初值00:00:00</p><p>  movmin,00</p><p>

23、  movhour,00</p><p>  MOVbNeedDisplay,1;顯示初始值</p><p>  CALLInit8253</p><p>  CALLInit8259</p><p>  CALLWriIntver</p><p><b>  STI</b>

24、;</p><p>  MAIN: CALLGetKeyA;按鍵掃描</p><p>  JNBMain1</p><p>  CMPAL,0FH;設(shè)置時(shí)間</p><p>  JNZMain1</p><p>  CALLSetTime</p><p>  

25、Main1: CMPbNeedDisplay,0</p><p><b>  JZMAIN</b></p><p>  CALLDisplay_LED;顯示時(shí)分秒</p><p>  MOVbNeedDisplay,0;1s定時(shí)到刷新轉(zhuǎn)速</p><p>  Main2: J

26、MPMAIN ;循環(huán)進(jìn)行實(shí)驗(yàn)內(nèi)容介紹與測(cè)速功能測(cè)試</p><p>  SetTime PROCNEAR</p><p>  LEASI,buffer1</p><p>  CALLTimeToBuffer</p><p>  MOVNumber,0</p><p>  

27、Key:CMPbFlash,0</p><p><b>  JZKey2</b></p><p>  LEASI,buffer1</p><p>  LEADI,buffer</p><p><b>  MOVCX,8</b></p><p>  RE

28、PMOVSB</p><p>  CMPhalfsec,0</p><p>  JNZFLASH</p><p>  MOVBL,number</p><p><b>  NOTBL</b></p><p>  ANDBX,07H</p><p> 

29、 LEASI,buffer</p><p>  MOVBYTE PTR [SI+BX],10H;當(dāng)前設(shè)置位置產(chǎn)生閃爍效果</p><p>  FLASH: LEASI,buffer</p><p>  CALLDisplay8</p><p>  MOVbFlash,0</p><p>

30、;  Key2: CALLGetKeyA</p><p><b>  JNBKey</b></p><p>  CMPAL,0EH;放棄設(shè)置</p><p><b>  JNZKey1</b></p><p>  JMPMain1</p><p

31、>  Key1: CMPAL,0FH</p><p>  JZSetTime8</p><p>  SetTime1:CMPAL,10</p><p>  JNBKey;無效按鍵</p><p>  CMPnumber,0</p><p>  JNZSetTime2&l

32、t;/p><p>  CMPAL,3;調(diào)整時(shí)的十位數(shù)</p><p><b>  JNBKey</b></p><p>  MOVbuffer1 + 7,AL</p><p>  JMPSetTime7</p><p>  SetTime2:CMPnumber,1</p&

33、gt;<p>  JNZSetTime3</p><p>  CMPbuffer1 + 7,1;調(diào)整時(shí)的個(gè)位數(shù)</p><p>  JZSetTime2_1</p><p><b>  CMPAL,4</b></p><p><b>  JNBKey</b><

34、/p><p>  SetTime2_1:MOVbuffer1 + 6,AL</p><p>  INCnumber</p><p>  JMPSetTime7</p><p>  SetTime3:CMPnumber,3</p><p>  JNZSetTime4</p><p&

35、gt;  CMPAL,6;調(diào)整分的十位數(shù)</p><p><b>  JNBKey</b></p><p>  MOVbuffer1 + 4,AL</p><p>  JMPSetTime7</p><p>  SetTime4:CMPnumber,4</p><p> 

36、 JNZSetTime5</p><p>  MOVbuffer1 + 3,AL;調(diào)整分的個(gè)位數(shù)</p><p>  INCnumber</p><p>  JMPSetTime7</p><p>  SetTime5:CMPnumber,6</p><p>  JNZSetTime6<

37、/p><p>  CMPAL,6;調(diào)整秒的十位數(shù)</p><p>  JBSetTime5_1</p><p><b>  JMPKey</b></p><p>  SetTime5_1:MOVbuffer1 + 1,AL</p><p>  JMPSetTime7</p

38、><p>  SetTime6:MOVbuffer1,AL;調(diào)整秒的個(gè)位數(shù)</p><p>  SetTime7:INCnumber</p><p>  CMPnumber,8</p><p>  JNBSetTime8</p><p>  MOVbFlash,1;需要刷新</p>&

39、lt;p><b>  JMPKey</b></p><p>  SetTime8:MOVAL,buffer1 + 1;確認(rèn)</p><p>  MOVBL,10</p><p><b>  MULBL</b></p><p>  ADDAL,buffer1</p&

40、gt;<p>  MOVsec,AL;秒</p><p>  MOVAL,buffer1 + 4</p><p><b>  MULBL</b></p><p>  ADDAL,buffer1 + 3</p><p>  MOVmin,AL;分</p><p>

41、  MOVAL,buffer1 + 7</p><p><b>  MULBL</b></p><p>  ADDAL,buffer1 + 6</p><p>  MOVhour,AL;時(shí)</p><p><b>  JMPExit</b></p><p>

42、;  Exit: RET</p><p>  SetTimeENDP</p><p>  TimeToBufferPROCNEAR</p><p>  MOVAL,hour</p><p>  XORAH,AH</p><p>  MOVBL,10</p>&

43、lt;p><b>  DIVBL</b></p><p>  MOV[SI],AH</p><p>  MOV[SI + 1],AL;秒</p><p>  MOVBYTE PTR [SI + 2],10H;這位不顯示</p><p>  MOVAL,min</p><p&g

44、t;  XORAH,AH</p><p><b>  DIVBL</b></p><p>  MOV[SI + 3],AH</p><p>  MOV[SI + 4],AL;分</p><p>  MOVBYTE PTR [SI + 5],10H ;這位不顯示</p><p&g

45、t;  MOVAL,sec</p><p>  XORAH,AH</p><p><b>  DIVBL</b></p><p>  MOV[SI + 6],AH</p><p>  MOV[SI + 7],AL;時(shí)</p><p><b>  RET</

46、b></p><p>  TimeToBufferENDP</p><p>  Display_LEDPROCNEAR</p><p>  LEASI,buffer</p><p>  CALLTimeToBuffer</p><p>  LEASI,buffer</p>&

47、lt;p>  CALLDisplay8;顯示</p><p><b>  RET</b></p><p>  Display_LEDENDP</p><p>  Timer0Int:PUSHAX</p><p><b>  PUSHDX</b></p>

48、<p>  MOVbFlash,1</p><p>  INChalfsec</p><p>  CMPhalfsec,2</p><p>  JNZTimer0Int1</p><p>  MOVbNeedDisplay,1</p><p>  MOVhalfsec,0</p&

49、gt;<p><b>  INCsec</b></p><p>  CMPsec,60</p><p>  JNZ Timer0Int1</p><p>  MOVsec,0</p><p><b>  INCmin</b></p><p&

50、gt;  CMPmin,60</p><p>  JNZTimer0Int1</p><p>  MOVmin,0</p><p><b>  INChour</b></p><p>  CMPhour,24</p><p>  JNZTimer0Int1</p>

51、;<p>  MOVhour,0</p><p>  Timer0Int1:MOVDX,IO8259_0</p><p>  MOVAL,20H</p><p>  OUTDX,AL</p><p><b>  POPDX</b></p><p><b&g

52、t;  POPAX</b></p><p><b>  IRET</b></p><p>  Init8253PROCNEAR</p><p>  MOVDX,Con_8253</p><p>  MOVAL,34H</p><p>  OUTDX,AL;計(jì)數(shù)

53、器T0設(shè)置在模式2狀態(tài),HEX計(jì)數(shù)</p><p>  MOVDX,T0_8253</p><p>  MOVAL,12H</p><p>  OUTDX,AL</p><p>  MOVAL,7AH</p><p>  OUTDX,AL;CLK0=62.5kHz,0.5s定時(shí)</p>

54、<p><b>  RET</b></p><p>  Init8253ENDP</p><p>  Init8259PROCNEAR</p><p>  MOVDX,IO8259_0</p><p>  MOVAL,13H</p><p>  OUTDX,A

55、L</p><p>  MOVDX,IO8259_1</p><p>  MOVAL,08H</p><p>  OUTDX,AL</p><p>  MOVAL,09H</p><p>  OUTDX,AL</p><p>  MOVAL,0FEH</p>

56、<p>  OUTDX,AL</p><p><b>  RET</b></p><p>  Init8259ENDP</p><p>  WriIntverPROCNEAR</p><p><b>  PUSHES</b></p><p>

57、;<b>  MOVAX,0</b></p><p>  MOVES,AX</p><p>  MOVDI,20H</p><p>  LEAAX,Timer0Int</p><p><b>  STOSW</b></p><p>  MOVAX,CS

58、</p><p><b>  STOSW</b></p><p><b>  POPES</b></p><p><b>  RET</b></p><p>  WriIntverENDP</p><p>  ENDSTART<

59、;/p><p>  九、軟件設(shè)計(jì)與流程圖</p><p>  1、數(shù)字電子時(shí)鐘主程序流程圖</p><p>  數(shù)字電子時(shí)鐘主程序流程圖</p><p>  2、中斷服務(wù)程序流程圖 </p><p>  中斷服務(wù)程序流程圖如下圖所示。</p><p><b>  中斷服務(wù)程序流程圖<

60、/b></p><p><b>  3.實(shí)驗(yàn)結(jié)論</b></p><p>  通過運(yùn)用數(shù)字集成電路設(shè)計(jì)的24小時(shí)制的數(shù)字電子時(shí)鐘,經(jīng)過試驗(yàn),改裝后成功實(shí)現(xiàn)了一下基本功能:</p><p>  能準(zhǔn)確的實(shí)現(xiàn)通過開關(guān)控制時(shí)分秒。</p><p>  能準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示秒、分、時(shí)的時(shí)間。</p>&

61、lt;p>  能實(shí)現(xiàn)記憶的功能,并能在記錄完數(shù)據(jù)之后實(shí)現(xiàn)交替記錄的功能。</p><p><b>  十.實(shí)驗(yàn)總結(jié)</b></p><p>  通過這次數(shù)字電子鐘的課程設(shè)計(jì),我們才把學(xué)到的東西與實(shí)踐相結(jié)合。從中對(duì)我們學(xué)的知識(shí)有了更進(jìn)一步的理解,而且更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。也鍛煉了自己獨(dú)立思考問題的能力和通過查看相關(guān)資

62、料來解決問題的習(xí)慣。雖然這只是一次簡(jiǎn)單的課程設(shè)計(jì),但通過這次課程設(shè)計(jì)我們了解了課程設(shè)計(jì)的一般步驟,和設(shè)計(jì)中應(yīng)注意的問題。設(shè)計(jì)本身并不是有很重要的意義,而是同學(xué)們對(duì)待問題時(shí)的態(tài)度和處理事情的能力。各個(gè)芯片能夠完成什么樣的功能,使用芯片時(shí)應(yīng)該注意那些要點(diǎn)。同一個(gè)電路可以用哪些芯片實(shí)現(xiàn),各個(gè)芯片實(shí)現(xiàn)同一個(gè)功能的區(qū)別。</p><p>  通過這次實(shí)踐,我真正意識(shí)到自己的不足之處,在編程方面還有很多需要學(xué)習(xí)的地方,還有許

63、多芯片的功能,也需要再進(jìn)一步學(xué)習(xí)研究,來不斷擴(kuò)大自己的知識(shí)面。</p><p><b>  參考文獻(xiàn)</b></p><p>  1. 現(xiàn)代數(shù)字電路與邏輯設(shè)計(jì) 清華大學(xué)出版社 北京交通大學(xué)出版社.</p><p>  2. 模擬電子技術(shù)(修訂版) 清華大學(xué)出版社 北京交通大學(xué)出版社</p><p>  3. 模擬

溫馨提示

  • 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ù)僅提供信息存儲(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)論