

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 電子鐘課程設計</b></p><p><b> 一.實驗目的</b></p><p> 1... 學習8051定時器時間計時處理、按鍵掃描及LED數碼管顯示的設計方法。</p><p> 2.. 設計任務及要求 利用實驗平臺上4個LED數碼管, 設計帶有記憶功能的數字時鐘</p&
2、gt;<p> 3.掌握組合邏輯電路、時序邏輯電路及數字邏輯電路系統(tǒng)的設計、安裝、測試方法;</p><p> 4.進一步鞏固所學的理論知識,提高運用所學知識分析和解決實際問題的能力;</p><p> 5.提高電路布局﹑布線及檢查和排除故障的能力;</p><p> 6.培養(yǎng)書寫綜合實驗報告的能力。</p><p>&
3、lt;b> 二、實驗設備</b></p><p> STAR ES598PCI試驗儀一套、PC機一臺。</p><p><b> 三、實驗內容</b></p><p> 1、使用8253定時功能,產生0.5S的定時中斷給8259</p><p> 2、在G5區(qū)的數碼管上顯示時間</p&g
4、t;<p> 3、允許設置時鐘初值</p><p> 4.使電子鐘帶有記憶功能.</p><p><b> 設計所涉及的芯片</b></p><p> 1、8253定時器:</p><p> 用于產生秒脈沖,其輸出信號可作為中斷請示信號送IRQ2。</p><p> 2、
5、8279接口芯片:</p><p> 實現鍵盤輸入和顯示輸出。</p><p> 3、8259中斷控制器:</p><p><b> 用于產生中斷。</b></p><p> 4、LED:六個LED用于顯示時:分:秒值。</p><p> 5、小鍵盤:用于控制設置。</p>
6、<p><b> 四、實驗要求 </b></p><p> 1. 在4位數碼管上顯示當前時間。顯示格式“秒,分,時” </p><p> 2. 由LED閃動做秒顯示。</p><p> 3.實現秒表功能(百分之一秒顯示)</p><p> 4.電子鐘有記憶功能,電子鐘啟動之后,按F鍵,在顯示秒的地方
7、記錄數據,然后電子鐘重新開始啟動,再次按F鍵,電子鐘再次記錄數據。</p><p><b> 五、設計原理</b></p><p> 利用定時器8253和8259以及鍵盤和數碼顯示電路,設計一個電子時鐘,由8253中斷定時,小鍵盤控制電子時鐘的啟停及初始值的預置。</p><p> 電子時鐘的顯示格式AA:SS:DD由左到右分別為時、分、
8、秒,最大記時59:59:59超過這個時間時分秒位都清零從00:00:00重新開始。</p><p> 設計一個定時顯示裝置,用六個數碼管顯示時間,用小鍵盤控制計時,設置和顯示時間。系統(tǒng)一運行就從00點00分00秒開始計時,并在數碼管上顯示秒、分、時當前值,而且,可以用鍵盤設置當前時間。</p><p> 基本工作原理:每百分之一秒對百分之一秒寄存器的內容加一,并依次對秒、分、小時寄存器
9、的內容加一;六個數碼管動態(tài)顯示時、分、秒的當前值。</p><p> C鍵:置初值,顯示00:00:00</p><p> G鍵:顯示動態(tài)變化(啟動表);</p><p> D鍵:顯示靜態(tài)不變(表停止);</p><p> E鍵:終止程序,返回DOS;</p><p> P鍵:設置秒:分:時的值</p&
10、gt;<p> A0, A1—片內寄存器地址輸入信號;</p><p> CLK一一-it數輸入,用于輸入定時基準脈沖或計數脈沖</p><p> OUT輸出信號,以相應的電平指示計數的完成,或輸出脈沖波形</p><p> GATE-迭通輸入(門控輸入),用于啟動或禁止計數器的操作,以使計數器和計測對象同步。</p><p
11、><b> 六、系統(tǒng)總體設計</b></p><p> 本系統(tǒng)設計的電子鐘以8088微處理器作為CPU,用8253做定時計數器產生時鐘頻率,8279做可編程并行接口顯示時鐘和鍵盤電路,8259做中斷控制器產生中斷。在此系統(tǒng)中,8253的功能是定時,接入8253的CLK信號為周期性時鐘信號。8253采用計數器0,工作于方式2,使8253的OUT0端輸出周期性的負脈沖信號。即每隔20m
12、s,8253的OUT0端就會輸出一個負脈沖的信號,此信號接8259的IR2,當中斷到50次數后,CPU即處理,使液晶顯示器上的時間發(fā)生變化。程序由以下模塊組成:系統(tǒng)共有5個功能模塊,分別為,主控模塊,顯示模塊,定時模塊,中斷模塊,小鍵盤模塊。</p><p><b> 系統(tǒng)總體框圖如下:</b></p><p><b> 1.CPU模塊</b>
13、;</p><p> 8088最小工作模式,作為整個電子表的核心控制部分。</p><p> 在8088最小模式中,硬件連接上有如下特點:</p><p> MN/MX 端接+5V,決定了8088工作在最小模式。 </p><p> 有1片8284A,作為時鐘發(fā)生器。</p><p> 有3片8282,用來作
14、為地址鎖存器。8282是典型的鎖存器芯片,因為它是8位的,所以需要3片8282作為鎖存器。</p><p> 當系統(tǒng)中所連的存儲器和外設系統(tǒng)較多時,需要增加數據總線的驅動能力,這時,要用兩片8286作為總線收發(fā)器。</p><p> 8088構成的CPU</p><p><b> 2.定時模塊</b></p><p&g
15、t; 定時模塊是為8259提供中斷請求信號的。由一片8253實現,選用定時器0#,工作在方式3,由于時鐘應該1秒走動一次,所以輸出值應為1S,其輸出信號可作為8259的中斷請求信號。</p><p><b> 定時模塊原理圖</b></p><p><b> 3.中斷處理模塊</b></p><p> 中斷模塊實現
16、動態(tài)顯示的,硬件為一片8259,由于中斷請求信號為每秒一次,中斷程序該為時間按秒增加,并顯示,只要開中斷,便可實現每秒顯示時間增加一秒,從而達到動態(tài)顯示的效果。</p><p> 4.顯示模塊和小鍵盤模塊</p><p><b> 5.實物硬件連接圖</b></p><p><b> 七、實驗步驟</b></p
17、><p><b> 1、主機連線說明:</b></p><p> 2、運行程序,按G5區(qū)的F鍵,設置時鐘初值;</p><p> 3、觀察G5區(qū)數碼管上顯示的時間是否正確。</p><p> 中斷信號送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秒計數</p><
20、p> SecDB0;秒</p><p> MinDB0;分</p><p> hourDB0;時</p><p> buffer DB8 DUP(0);顯示緩沖區(qū),8個字節(jié)</p><p> buffer1 DB8 DUP(0);顯示緩沖區(qū),8個字節(jié)</p>
21、<p> bNeedDisplay DB0;需要刷新顯示</p><p> number DB0;設置哪一位時間</p><p> bFlash DB0;設置時是否需要刷新</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;時分秒賦初值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;設置時間</p><p> JNZMain1</p><p> CALLSetTime</p><p>
25、Main1: CMPbNeedDisplay,0</p><p><b> JZMAIN</b></p><p> CALLDisplay_LED;顯示時分秒</p><p> MOVbNeedDisplay,0;1s定時到刷新轉速</p><p> Main2: J
26、MPMAIN ;循環(huán)進行實驗內容介紹與測速功能測試</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;當前設置位置產生閃爍效果</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;放棄設置</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;調整時的十位數</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;調整時的個位數</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;調整分的十位數</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;調整分的個位數</p><p> INCnumber</p><p> JMPSetTime7</p><p> SetTime5:CMPnumber,6</p><p> JNZSetTime6<
37、/p><p> CMPAL,6;調整秒的十位數</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;調整秒的個位數</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;確認</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;時</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;時</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;計數
53、器T0設置在模式2狀態(tài),HEX計數</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定時</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> 九、軟件設計與流程圖</p><p> 1、數字電子時鐘主程序流程圖</p><p> 數字電子時鐘主程序流程圖</p><p> 2、中斷服務程序流程圖 </p><p> 中斷服務程序流程圖如下圖所示。</p><p><b> 中斷服務程序流程圖<
60、/b></p><p><b> 3.實驗結論</b></p><p> 通過運用數字集成電路設計的24小時制的數字電子時鐘,經過試驗,改裝后成功實現了一下基本功能:</p><p> 能準確的實現通過開關控制時分秒。</p><p> 能準確計時,以數字形式顯示秒、分、時的時間。</p>&
61、lt;p> 能實現記憶的功能,并能在記錄完數據之后實現交替記錄的功能。</p><p><b> 十.實驗總結</b></p><p> 通過這次數字電子鐘的課程設計,我們才把學到的東西與實踐相結合。從中對我們學的知識有了更進一步的理解,而且更進一步地熟悉了芯片的結構及掌握了各芯片的工作原理和其具體的使用方法。也鍛煉了自己獨立思考問題的能力和通過查看相關資
62、料來解決問題的習慣。雖然這只是一次簡單的課程設計,但通過這次課程設計我們了解了課程設計的一般步驟,和設計中應注意的問題。設計本身并不是有很重要的意義,而是同學們對待問題時的態(tài)度和處理事情的能力。各個芯片能夠完成什么樣的功能,使用芯片時應該注意那些要點。同一個電路可以用哪些芯片實現,各個芯片實現同一個功能的區(qū)別。</p><p> 通過這次實踐,我真正意識到自己的不足之處,在編程方面還有很多需要學習的地方,還有許
63、多芯片的功能,也需要再進一步學習研究,來不斷擴大自己的知識面。</p><p><b> 參考文獻</b></p><p> 1. 現代數字電路與邏輯設計 清華大學出版社 北京交通大學出版社.</p><p> 2. 模擬電子技術(修訂版) 清華大學出版社 北京交通大學出版社</p><p> 3. 模擬
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論