單片機(jī)課設(shè) 數(shù)碼管顯示滾動控制_第1頁
單片機(jī)課設(shè) 數(shù)碼管顯示滾動控制_第2頁
單片機(jī)課設(shè) 數(shù)碼管顯示滾動控制_第3頁
單片機(jī)課設(shè) 數(shù)碼管顯示滾動控制_第4頁
單片機(jī)課設(shè) 數(shù)碼管顯示滾動控制_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)設(shè)計與實訓(xùn)設(shè)計報告 題 目: 數(shù)碼管滾動顯示控制 姓 名: 王偉杰 班 級: 自動化四班 學(xué) 號: 2014550430 指導(dǎo)老師: 張瑩 提交日期: 2016年10月29日 目錄一、 設(shè)計題目與要求31.1設(shè)計題目31.2設(shè)計要求3二、 系統(tǒng)方案設(shè)計32.1硬件電路設(shè)計31.單片機(jī)最小系統(tǒng)簡介32.數(shù)碼管顯示電路62.3硬件選型及說明61. ST89C51單片機(jī)62. 四位一體七段共陰極顯示數(shù)碼管8三、 系統(tǒng)原理圖設(shè)計與仿真93.1系統(tǒng)仿真圖93.2系統(tǒng)仿真結(jié)果10四、 程序設(shè)計114.1程序設(shè)計114.2程序流程圖12五、 系統(tǒng)調(diào)試145.1系統(tǒng)硬件調(diào)試145.2系統(tǒng)軟件調(diào)試14六、

2、總結(jié)與體會14附錄一16附錄二17附錄三271、 設(shè)計題目與要求單片機(jī)課程設(shè)計是一門實踐課程,要求學(xué)生具有制作調(diào)試單片機(jī)最小系統(tǒng)及外設(shè)的能力,能夠掌握單片機(jī)內(nèi)部資源的使用。單片機(jī)課程設(shè)計內(nèi)容包括硬件設(shè)計、制作及軟件編寫、調(diào)試,學(xué)生在熟練掌握焊接技術(shù)的基礎(chǔ)上,能熟練使用單片機(jī)軟件開發(fā)環(huán)境Keil C51編程調(diào)試,并使用STC ISP調(diào)試工具采用串口下載方式聯(lián)調(diào)制作的單片機(jī)最小系統(tǒng)。單片機(jī)課程設(shè)計題目包含基本部分及擴(kuò)展部分,基本部分即單片機(jī)最小系統(tǒng)部分,擴(kuò)展部分是對單片機(jī)內(nèi)部資源及外部IO口的功能擴(kuò)展,使制作的單片機(jī)系統(tǒng)具有一定的功能。1.1設(shè)計題目 數(shù)碼管滾動顯示控制1.2設(shè)計要求 自制一個單片

3、機(jī)最小系統(tǒng),包括串口下載、復(fù)位電路,采用兩個四位一體數(shù)碼管作為顯示器件,通過按鈕選擇實現(xiàn)四種滾動顯示模式,例如從左至右,從右至左,內(nèi)縮,外擴(kuò)等,滾動信息可以是數(shù)字或有意義的英文字符。2、 系統(tǒng)方案設(shè)計2.1硬件電路設(shè)計本設(shè)計的硬件電路主要包括的模塊有:單片機(jī)最小系統(tǒng)、七段數(shù)碼管顯示模塊、1.單片機(jī)最小系統(tǒng)簡介單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng).對51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路。結(jié)構(gòu)圖如下:圖2.1單片機(jī)最小系統(tǒng)各部分的功能介紹如下:復(fù)位電路:復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化為0000H,使單片

4、機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或操作錯誤是系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需要按復(fù)位鍵以重新啟動。MCS-51單片機(jī)的復(fù)位電路由片內(nèi)、片外兩部分組成,進(jìn)行復(fù)位操作時,外部電路需在復(fù)位引腳RST端產(chǎn)生大于兩個機(jī)器周期的高電平信號,RST引腳通過片內(nèi)施密特觸發(fā)器與復(fù)位電路相連(施密特觸發(fā)器的作用是脈沖整型和抑制噪聲)。MCS-51單片機(jī)的復(fù)位操作有兩種方式:上電復(fù)位和上電按鈕復(fù)位。圖2.2復(fù)位電路圖晶振電路(時鐘電路): 時鐘電路是單片機(jī)的心臟,它用于產(chǎn)生單片機(jī)工作所需要的時鐘信號。單片機(jī)本身就是一個復(fù)雜的同步時序電路,為了保證同步工作方式的實現(xiàn)

5、,電路應(yīng)在唯一的時鐘信號控制下嚴(yán)格地按時序進(jìn)行工作。單片機(jī)的時鐘產(chǎn)生方法有內(nèi)部時鐘方式和外部時鐘方式,大多數(shù)單片機(jī)應(yīng)用系統(tǒng)采用內(nèi)部時鐘方式,本系統(tǒng)采用的亦是內(nèi)部時鐘方式。在MCS-51芯片內(nèi)部有一個高增益反相放大器,XTAL1、XTAL2引腳分別為該反相放大器的輸入端和輸出端,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個穩(wěn)定的自激振蕩器。 圖2.3時鐘電路圖2.數(shù)碼管顯示電路圖2.4數(shù)碼顯示電路2.3硬件選型及說明1. ST89C51單片機(jī)MCS-51把微型計算機(jī)的主要部件都集成在一塊心片上,使得數(shù)據(jù)傳送距離大大縮短,可靠性更高,運(yùn)行速度更塊。由于屬于芯片化的

6、微型計算機(jī),各功能部件在芯片中的布局和結(jié)構(gòu)達(dá)最優(yōu)化,抗干擾能力加強(qiáng),工作亦相對穩(wěn)定。因此,在工業(yè)測控系統(tǒng)中,使用單片機(jī)是最理想的選擇。單片機(jī)屬于典型的嵌入式系統(tǒng),所以它是低端控制系統(tǒng)最佳器件。8051是MCS-51系列單片機(jī)的典型產(chǎn)品。8051單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線:引腳介紹:電源:VCC - 芯片電源,接+5V;VSS - 接地端; 時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端控制線: ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈

7、沖: ALE功能:用來鎖存P0口送出的低8位地址; PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 PSEN:外ROM讀選通信號。 RST/VPD:復(fù)位/備用電源: RST(Reset)功能:復(fù)位信號輸入端; VPD功能:在Vcc掉電情況下,接備用電源。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源: EA功能:內(nèi)外ROM選擇端; Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 I/O線:4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。圖

8、2.5 89c51引腳圖2. 四位一體七段共陰極顯示數(shù)碼管圖2.6數(shù)碼管引腳圖3、 系統(tǒng)原理圖設(shè)計與仿真3.1系統(tǒng)仿真圖圖3.1系統(tǒng)仿真圖3.2系統(tǒng)仿真結(jié)果圖3.2系統(tǒng)正在運(yùn)行圖3.3系統(tǒng)正在運(yùn)行4、 程序設(shè)計4.1程序設(shè)計 數(shù)碼管動態(tài)顯示程序包含顯示數(shù)字、部分字母符號、小數(shù)點(diǎn)、數(shù)碼管閃爍、數(shù)碼管消隱等。其它程序輸出到顯示程序的數(shù)據(jù)既可以是BCD碼、二進(jìn)制碼、ASCII碼、自定義顯示碼等。由硬件電路工作原理可知,為了顯示穩(wěn)定的數(shù)據(jù),每秒必須顯示數(shù)據(jù)50次以上,才能達(dá)到預(yù)期目的。MCS-51 單片機(jī)內(nèi)部有兩個16 位可編程的定時器/計數(shù)器T0 和T1。它們即可用作定時器方式,又可用作計數(shù)器方式。

9、其中T0 由TH0 和TL0 計數(shù)器構(gòu)成;T1 由TH1 和TL1 計數(shù)器構(gòu)成。工作于定時器方式時,通過對機(jī)器周期(新型51單片機(jī)可以對振蕩周期計數(shù))的計數(shù),即每一個機(jī)器周期定時器加1,來實現(xiàn)定時。故系統(tǒng)晶振頻率直接影響定時時間。如果晶振頻率為12MHZ,則定時器每隔(1/12MHZ)×12=1us 加1。工作于計數(shù)器方式時,對P3.4 或P3.5 管腳的負(fù)跳變(10)計數(shù)。它在每個機(jī)器周期的S5P2 時采樣外部輸入,當(dāng)采樣值在這個機(jī)器周期為高,在下一個機(jī)器周期為低時,計數(shù)器加1。因此需要兩個機(jī)器周期來識別一個有效跳變,故最高計數(shù)頻率為晶振頻率的1/24。特殊功能寄存器TMOD 用于

10、定時器/計數(shù)器的方式控制。高4 位用于設(shè)置T1,低4 位用于設(shè)置T0。單片機(jī)內(nèi)部定時器/計數(shù)器的使用,簡而概之:(1)如需用中斷,則將EA和相關(guān)中斷控制位置1;(2)根據(jù)需要設(shè)置工作方式,即對TMOD設(shè)置;(3)然后啟動計數(shù),即對TR0或TR1置1。(4)如使用中斷,則計數(shù)溢出后硬件會自動轉(zhuǎn)入中斷入口地址;如使用查詢,則必須對溢出中斷標(biāo)志位TF0或TF1進(jìn)行判斷。4.2程序流程圖圖4.1主程序圖5、 系統(tǒng)調(diào)試5.1系統(tǒng)硬件調(diào)試在領(lǐng)完課程設(shè)計所需的元器件并檢查是否是自己所需要,并且根據(jù)電路原理圖進(jìn)行電路板的焊制,在焊接過程中注意不要虛焊和短路。焊接完成后首先對電路板上的線路進(jìn)行檢查是否有錯漏和重

11、復(fù)。并且用萬用表測試電路中有無虛焊短接的情況。在測試無誤后,向單片機(jī)燒錄程序,并接通電源進(jìn)行測試。在第一次上電過程中,數(shù)碼管并沒有顯示出如期的結(jié)果,用萬用表對焊接點(diǎn)進(jìn)行再一次的排查并對線路進(jìn)行檢查,發(fā)現(xiàn)單片機(jī)底座有幾個虛焊點(diǎn),并重新對其進(jìn)行焊制。5.2系統(tǒng)軟件調(diào)試在keil編譯器下進(jìn)行程序的編寫,以子程序為單位進(jìn)行調(diào)試,并且利用proteus軟件進(jìn)行仿真實驗并結(jié)合電路板進(jìn)行整機(jī)調(diào)試。六、總結(jié)與體會此次的課程設(shè)計是基于單片機(jī)的數(shù)碼管滾動顯示控制。單片機(jī)是自動化的重要課程,學(xué)習(xí)的時候十分用心,也同時也為這次的課程設(shè)計打下了理論基礎(chǔ)。但是由于學(xué)習(xí)到的更多涉及于課本知識并沒有靈活的掌握,所以說在設(shè)計的

12、過程中也需要不斷的翻閱書籍,以此來達(dá)到完成順利完成課程設(shè)計任務(wù),在這段學(xué)習(xí)與制作的過程中鞏固了我在課堂上學(xué)習(xí)到的內(nèi)容,而且鍛煉到了我個人的自我學(xué)習(xí)能力及制作能力。在課程設(shè)計最開始是做Proteus仿真,從最小系統(tǒng)開始做。單片機(jī)最小系統(tǒng)是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路等。我上學(xué)期做過數(shù)電的課程設(shè)計所以這次看到器件這么少電路圖這么簡單還覺得很高興。然而做完仿真開始焊接時才發(fā)現(xiàn)從單片機(jī)芯片出來的連接數(shù)碼管的線路在仿真中隱藏了只留下了引腳,導(dǎo)致我在焊接的時候一下多了十多根線打亂我的節(jié)奏,好在最后還是踉踉蹌蹌地焊完了。在第一次調(diào)試的時候并沒有現(xiàn)象,這令我十

13、分惶恐,仔細(xì)檢查才發(fā)現(xiàn)仿真中21 20引腳的都略去了而這幾個針腳正是連接vcc跟地的引腳,后來將它焊上了。給我的啟發(fā)是以后在做完仿真焊接的時候一定要每個引腳的過,因為仿真中它將芯片的引腳打亂了順序而且有的引腳也省略了,仿真跟真實的焊接還是不同的。還有就是拿到仿真先別急著焊接,還是要大致地考慮器件的布局跟正反面的走線,提前理清思路焊的時候才能游刃有余,不至于慌忙。而且在制作仿真的過程中也有了瓶頸,大一學(xué)的c語言忘得差不多了好在同學(xué)的幫助下才解決了問題,另外焊接只是一方面,后續(xù)的檢測診斷才是關(guān)鍵,不可能一下子焊好就可以使用,在焊接的過程中難免有一些焊點(diǎn)漏焊虛焊的。每一次的課程設(shè)計對我都是一種拔高跟

14、歷練,在一次次的課程設(shè)計中我會不斷地進(jìn)步,提升自己的解決問題的能力,跟動手焊接能力,還有故障排查能力,做課程設(shè)計固然需要智慧然而堅持跟耐心也是很關(guān)鍵的,這幾樣缺一不可,否則很難做出成功的作品。我相信我會一步步地慢慢變好變強(qiáng)。附錄一元器件清單器件名稱數(shù)量Stc89c54單片機(jī)1電容若干七段共陰極數(shù)碼管2電阻若干微動開關(guān)2芯片插座3驅(qū)動1晶振1附錄二#include<reg51.h>/-定義使用的IO口-/#define GPIO_DIG P2/段選#define GPIO_PLACE P0/位選sbit k =P10;/-定義全局變量-/unsigned char code DIG_

15、PLACE8 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/位選控制 查表的方法控制unsigned char code DIG_CODE17 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼unsigned char DisplayData8;/用來存放要顯示的8位數(shù)的值/-聲明全局函數(shù)-/void Displaykey();void Runkey();void fi

16、rst();void step1();void step2();void step3();void step4();signed char delay;signed char i;unsigned char j;signed char i1;unsigned char step=1;/* 函 數(shù) 名 : main* 函數(shù)功能 : 主函數(shù)*/void main(void)unsigned char a;for(a=0; a<8; a+)DisplayDataa = DIG_CODEa; /存放段碼first(); /設(shè)置定時器初值和工作方式while(1) Displaykey();/掃描

17、按鍵 Runkey(); /執(zhí)行相對應(yīng)的按鍵步驟 /* 函 數(shù) 名 :first()* 函數(shù)功能 : 設(shè)置初值*/void first() TMOD=0x01; /設(shè)置T0為定時器 工作方式0 TH0=(65536-20000)/256;TL0=(65536-20000)%256; /設(shè)置計數(shù)器初值,定時時間為20msIE=0x82; /允許定時器0中斷 /* 函 數(shù) 名 :Displaykey();* 函數(shù)功能 : 按鍵掃描*/void Displaykey() if(k=0) TR0=1; /啟動定時器0 /* 函 數(shù) 名 :void time0() interrupt1 using 1*

18、 函數(shù)功能 : 定時器0*/ void time0() interrupt 1 using 1 unsigned char a; TH0=(65536-20000)/256;TL0=(65536-20000)%256; /方式1需要重置定時器的初值 if(k=0) /定時20ms去除按鍵抖動 while(1) if(k=1) break; /判斷按鍵是否彈起 step=step+1;/進(jìn)入下一個工作方式 if(step=5) step=1; switch(step) case 1: i=0; break; /設(shè)置步驟1的初值 case 2: i=7; break; /設(shè)置步驟2的初值 case

19、 3: i=0; i1=7; break; /設(shè)置步驟3的初值 case 4: i=3; i1=4; break; /設(shè)置步驟4的初值 a+; while(a=20) /利用定時器進(jìn)行延時 延時時間為20ms*50=1sa=0;delay=1; /延時結(jié)束標(biāo)志位TR0=0; /關(guān)閉定時器 /* 函 數(shù) 名 :Runkey();* 函數(shù)功能 : 按鍵執(zhí)行和選擇*/void Runkey() switch(step) case 1: step1(); break; case 2: step2(); break; case 3: step3(); break; case 4: step4(); br

20、eak; /* 函 數(shù) 名 : step1* 函數(shù)功能 : 右掃程序*/void step1()GPIO_PLACE = DIG_PLACEi; /發(fā)送位選GPIO_DIG = DisplayDatai; /發(fā)送段碼j = 10; /掃描間隔時間設(shè)定while(j-);GPIO_DIG = 0x00;/消隱TR0=1; /開定時器延時while(delay=1) delay=0; i=i+1; /延時時間到,數(shù)碼管位選移動 while(i=8) i=0; /* 函 數(shù) 名 : step2* 函數(shù)功能 : 左掃程序*/void step2()GPIO_PLACE = DIG_PLACEi; /發(fā)送位選GPIO_DIG = DisplayDatai; /發(fā)送段碼j = 10; /掃描間隔時間設(shè)定while(j-);GPIO_DIG = 0x00; /消隱TR0=1;while(delay=1) delay=0; i=i-1; /延時時間到,數(shù)碼管位選移動 while(i=-1) i=7; /* 函 數(shù) 名 : step3* 函數(shù)功能 : 內(nèi)縮程序* 輸 入 : 無* 輸 出 :

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論