數(shù)碼管動態(tài)顯示實(shí)驗(yàn)報(bào)告_第1頁
數(shù)碼管動態(tài)顯示實(shí)驗(yàn)報(bào)告_第2頁
數(shù)碼管動態(tài)顯示實(shí)驗(yàn)報(bào)告_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)四 數(shù)碼管動態(tài)顯示實(shí)驗(yàn)一一、實(shí)驗(yàn)要求1. 在 Proteus 軟件中畫好 51 單片機(jī)最小核心電路,包括復(fù)位電路和晶振電路2. 在電路中增加四個(gè) 7段數(shù)碼管(共陽/共陰自選),將P1 口作數(shù)據(jù)輸出口與 7段數(shù)碼 管數(shù)據(jù)引腳相連 ,P2.0P2.3 引腳輸出選控制信號3. 在 Keil 軟件中編寫程序 ,采用動態(tài)顯示法 , 實(shí)現(xiàn)數(shù)碼管分別顯示數(shù)字1,2,3,4二、實(shí)驗(yàn)?zāi)康?. 鞏固 Proteus 軟件和 Keil 軟件的使用方法2. 學(xué)習(xí)端口輸入輸出的高級應(yīng)用3. 掌握 7 段數(shù)碼管的連接方式和動態(tài)顯示法4. 掌握查表程序和延時(shí)等子程序的設(shè)計(jì)三實(shí)驗(yàn)說明本實(shí)驗(yàn)是將單片機(jī)的 P1 口做為輸出口

2、,將四個(gè)數(shù)碼管的七段引腳分別接到P1.0 至P1.7。由于電路中采用共陽極的數(shù)碼管,所以當(dāng)P1端口相應(yīng)的引腳為 0時(shí),對應(yīng)的數(shù)碼管段點(diǎn)亮。 程序中預(yù)設(shè)了數(shù)字 0-9 的段碼。 由于是讓四個(gè)數(shù)碼管顯示不同的數(shù)值,所以要用掃描的方式來實(shí)現(xiàn)。因此定義了scan函數(shù),接到單片機(jī)的 p2.0至p2.3在實(shí)驗(yàn)中,預(yù)設(shè)的數(shù)字段碼表存放在數(shù)組TAB中,由于段碼表是固定的,因此存儲類型可設(shè)為 code。在Proteus軟件中按照要求畫出電路, 再利用Keil軟件按需要實(shí)現(xiàn)的功能編寫 c程序, 生成Hex文件,把Hex文件導(dǎo)到Proteus軟件中進(jìn)行仿真。為了能夠更好的驗(yàn)證實(shí)驗(yàn)要求, 在編寫程序時(shí)需要延時(shí)0.5s

3、,能讓人眼更好的分辨;89C51的一個(gè)機(jī)器周期包含 12個(gè)時(shí)鐘脈沖,而我們采用的是12MHz晶振,每一個(gè)時(shí)鐘脈沖的時(shí)間是1/12us,所以一個(gè)機(jī)器周期為1us。在keil程序中,子函數(shù)的實(shí)現(xiàn)是用 void delay_ms(int x),其中x為1時(shí)是代表1ms。四、硬件原理圖及程序設(shè)計(jì)一)硬件原理圖設(shè)計(jì)電路中P1.0到P1.7為數(shù)碼管七段端口的控制口,排阻RP1阻值為220Q, p2.0到p2.3為數(shù)碼管的掃描信號。AT89C51單片機(jī)的9腳(RST為復(fù)位引腳,當(dāng) RST為高電平的時(shí)間達(dá)到2個(gè)機(jī)器周期時(shí)系統(tǒng)就會被復(fù)位;31引腳(EA為存取外部存儲器使能引腳,當(dāng)EA為高電平是使用單片機(jī)內(nèi)部存儲

4、器,當(dāng)EA為低電平時(shí)單片機(jī)則使用外部存儲器。18、19引腳是接晶振腳。而接地和電源端在軟件中已經(jīng)接好,所以不用在引線。如下圖所示:(二)流程圖與程序設(shè)計(jì)三)程序設(shè)源代碼#include / 定義 8051 寄存器頭文件#define SEG7P P1/定義掃描信號的位置#define SCANP P2/定義數(shù)碼管的位置char code TAB10=0xc0, 0xf9, 0xa4, 0xb0, 0x99,/ 數(shù)字 04 的碼值0x92, 0x83, 0xf8, 0x80, 0x98 ;/ 數(shù)字 59 的碼值char disp4=1,2,3,4;/定義要顯示的數(shù)值void delay_ms(i

5、nt x);/聲明延時(shí)函數(shù)char scan4=0xfe,0xfd,0xfb,0xf7;/定義掃描char i,j;/定義變量 i, jmain()r/主函數(shù)的開始while(1)/無限循環(huán) for(i=0;i4;i+)/從j=disp3-i;/取出顯示的數(shù)值SCANP =scani;/掃描的順序SEG7P =TABj;/ 將 TAB 的數(shù)值賦給數(shù)碼管delay_ms(4);/ 延時(shí) 4msvoid delay_ms(int x) int i,j;for (i=0;ix;i+)for (j=0;j120;j+);五實(shí)驗(yàn)總結(jié)問題一: 運(yùn)行電路時(shí),數(shù)碼管亂碼解決的方法: 檢查電路,發(fā)現(xiàn)程序中掃描信號端口錯誤,將掃描信號的端口順序調(diào)換, 重新運(yùn)行。問題二: 重新運(yùn)行后,數(shù)碼管只顯示其中的一部分。解決的方法: 檢查程序,發(fā)現(xiàn)是延時(shí)時(shí)間的問題,在改動延時(shí)時(shí)間后,重新編譯后在次 運(yùn)行電路,電路正常顯示,符合要求。通過本次的實(shí)驗(yàn),在前兩個(gè)實(shí)驗(yàn)的基礎(chǔ)上讓我復(fù)習(xí)了知識點(diǎn),也讓我在次掌握了新的知 識。在完成這次實(shí)驗(yàn)后,讓我想到可以用多個(gè)按鍵控制多個(gè)數(shù)碼管實(shí)現(xiàn)加減和暫停和開始。 我覺得這次的課程實(shí)驗(yàn)讓我知道, 一次次的失敗, 并不會讓我放棄去追求, 相反它會引領(lǐng)著 我去發(fā)現(xiàn)問題, 從而解決問題, 完成更深入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論