單片機(jī)課設(shè)數(shù)碼管顯示滾動(dòng)控制_第1頁(yè)
單片機(jī)課設(shè)數(shù)碼管顯示滾動(dòng)控制_第2頁(yè)
單片機(jī)課設(shè)數(shù)碼管顯示滾動(dòng)控制_第3頁(yè)
單片機(jī)課設(shè)數(shù)碼管顯示滾動(dòng)控制_第4頁(yè)
單片機(jī)課設(shè)數(shù)碼管顯示滾動(dòng)控制_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、單片機(jī)設(shè)計(jì)與實(shí)訓(xùn)I設(shè)計(jì)報(bào)告題 目:數(shù)碼管滾動(dòng)顯示控制姓 名:王偉杰班 級(jí):自動(dòng)化四班學(xué) 號(hào):30指導(dǎo)老師:張瑩提交日期:2016年10月29日目錄一、設(shè)計(jì)題目與要求單片機(jī)課程設(shè)計(jì)是一門實(shí)踐課程, 要求學(xué)生具有制作調(diào)試單片機(jī)最小系統(tǒng)及外設(shè)的能力, 能夠掌握單片機(jī)內(nèi)部資源的使用。 單片機(jī)課程設(shè)計(jì)內(nèi)容包括硬件設(shè)計(jì)、制作及軟件編寫、調(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è)計(jì)題目包含基本部分及擴(kuò)展部分,基本部分即單片機(jī)最小系統(tǒng)部分,擴(kuò)展部分是對(duì)單片機(jī)內(nèi)部資源及外部IO口的

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

3、分的功能介紹如下:復(fù)位電路:復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC 初始化為0000H, 使單片機(jī)從0000H 單元開始執(zhí)行程序。 除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤是系統(tǒng)處于死鎖狀態(tài)時(shí), 為擺脫困境, 也需要按復(fù)位鍵以重新啟動(dòng)。 MCS-51 單片機(jī)的復(fù)位電路由片內(nèi)、片外兩部分組成,進(jìn)行復(fù)位操作時(shí),外部電路需在復(fù)位引腳 RST 端產(chǎn)生大于兩個(gè)機(jī)器周期的高電平信號(hào), RST 引腳通過片內(nèi)施密特觸發(fā)器與復(fù)位電路相連 (施密特觸發(fā)器的作用是脈沖整型和抑制噪聲)。 MCS-51 單片機(jī)的復(fù)位操作有兩種方式:上電復(fù)位和上電按鈕復(fù)位。圖復(fù)位電路圖晶振電路 (時(shí)鐘電路) :

4、時(shí)鐘電路是單片機(jī)的心臟, 它用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)。 單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路, 為了保證同步工作方式的實(shí)現(xiàn), 電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。 單片機(jī)的時(shí)鐘產(chǎn)生方法有內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式, 大多數(shù)單片機(jī)應(yīng)用系統(tǒng)采用內(nèi)部時(shí)鐘方式,本系統(tǒng)采用的亦是內(nèi)部時(shí)鐘方式。在MCS-51芯片內(nèi)部有一個(gè)高增益反相放大器,XTAL1、 XTAL2 引腳分別為該反相放大器的輸入端和輸出端,在芯片的外部通過這兩個(gè)引腳跨接晶體振蕩器和微調(diào)電容, 形成反饋電路, 就構(gòu)成 了一個(gè)穩(wěn)定的自激振蕩器。圖時(shí)鐘電路圖2 . 數(shù)碼管顯示電路圖數(shù)碼顯示電路硬件選型及說明1. ST89C

5、51 單片機(jī)MCS-51 把微型計(jì)算機(jī)的主要部件都集成在一塊心片上,使得數(shù)據(jù)傳送距離大大縮短,可靠性更高,運(yùn)行速度更塊。由于屬于芯片化的微型計(jì)算機(jī),各功能部件在芯片中的布局和結(jié)構(gòu)達(dá)最優(yōu)化, 抗干擾能力加強(qiáng), 工作亦相對(duì)穩(wěn)定。 因此,在工業(yè)測(cè)控系統(tǒng)中, 使用單片機(jī)是最理想的選擇。 單片機(jī)屬于典型的嵌入式系統(tǒng),所以它是低端控制系統(tǒng)最佳器件。8051是MCS-51系列單片機(jī)的典型產(chǎn)品。8051 單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM數(shù)據(jù)存儲(chǔ)器(RAM定時(shí)/計(jì)數(shù)器、 并行接口、 串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、 地址總線和控制總線等三大總線:引腳介紹:電源: VCC - 芯片電源,接+5V;

6、 VSS - 接地端;時(shí)鐘:XTAL1、 XTAL2 - 晶體振蕩電路反相輸入端和輸出端控制線:ALE/PROG地址鎖存允許/片內(nèi)EPRO端程脈沖:ALE功能:用來鎖存P0口送出的低8位地址;PROGft能:片內(nèi)有EPROMU芯片,在EPROM 編程期間,此引腳輸入編程脈沖。PSEN:外ROMS選通信號(hào)(3) RST/VPD復(fù)位/備用電源:RST (Reset)功能:復(fù)位信號(hào)輸 入端;VPD功能:在Vcc掉電情況下,接備用電源。EA/Vpp:內(nèi)外ROMS擇/片內(nèi)EPRO陶程電源:EA功能:內(nèi) 外ROMS擇端;Vpp功能:片內(nèi)有EPROMJ芯片,在EPRO編程期間,施加 編程電源Vpp。I/O線

7、:4個(gè)8位并行I/O端口: PR P1、P2、P3 口,共32個(gè)弓I腳。P3 口 還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。圖 89c51 引腳圖2. 四位一體七段共陰極顯示數(shù)碼管圖數(shù)碼管引腳圖三、系統(tǒng)原理圖設(shè)計(jì)與仿真 系統(tǒng)仿真圖圖系統(tǒng)仿真圖系統(tǒng)仿真結(jié)果圖系統(tǒng)正在運(yùn)行圖系統(tǒng)正在運(yùn)行四、程序設(shè)計(jì)程序設(shè)計(jì)數(shù)碼管動(dòng)態(tài)顯示程序包含顯示數(shù)字、部分字母符號(hào)、小數(shù)點(diǎn)、數(shù)碼管閃爍、數(shù)碼管消隱等。其它程序輸出到顯示程序的數(shù)據(jù)既可以是 BCDK、二進(jìn)制碼、 ASCII碼、自定義顯示碼等。由硬件電路工作原理可知,為了顯示穩(wěn)定的數(shù)據(jù), 每秒必須顯示數(shù)據(jù)50次以上,才能達(dá)到預(yù)期目的。MCS-51單片

8、機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器T0和T1。它們即 可用作定時(shí)器方式,又可用作計(jì)數(shù)器方式。其中 T0由TH0和TL0計(jì)數(shù)器構(gòu)成; T1由TH1和TL1計(jì)數(shù)器構(gòu)成。工作于定時(shí)器方式時(shí),通過對(duì)機(jī)器周期(新型 51單片機(jī)可以對(duì)振蕩周期計(jì) 數(shù))的計(jì)數(shù),即每一個(gè)機(jī)器周期定時(shí)器加 1,來實(shí)現(xiàn)定時(shí)。故系統(tǒng)晶振頻率直接影響定時(shí)時(shí)間。如果晶振頻率為 12MHz則定時(shí)器每隔(1/12MHZ X12=1us加 1。工作于計(jì)數(shù)器方式時(shí),對(duì) 或管腳的負(fù)跳變(1-0)計(jì)數(shù)。它在每個(gè)機(jī)器周 期的 S5P2 時(shí)采樣外部輸入,當(dāng)采樣值在這個(gè)機(jī)器周期為高,在下一個(gè)機(jī)器周期 為低時(shí),計(jì)數(shù)器加1。因此需要兩個(gè)機(jī)器周期來識(shí)別一

9、個(gè)有效跳變,故最高計(jì)數(shù)頻率為晶振頻率的1/24 。特殊功能寄存器TMOD8于定時(shí)器/計(jì)數(shù)器的方式控制。高4位用于設(shè)置T1, 低4位用于設(shè)置T0o單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器的使用,簡(jiǎn)而概之:(1)如需用 中斷,則將E府口相關(guān)中斷控制位置1; (2)根據(jù)需要設(shè)置工作方式,即對(duì)TMOD 設(shè)置;(3)然后啟動(dòng)計(jì)數(shù),即對(duì)TR喊TR假1。(4)如使用中斷,則計(jì)數(shù)溢出 后硬件會(huì)自動(dòng)轉(zhuǎn)入中斷入口地址;如使用查詢,則必須對(duì)溢出中斷標(biāo)志位TF0IETF1進(jìn)行判斷。程序流程圖圖主程序圖五、系統(tǒng)調(diào)試 系統(tǒng)硬件調(diào)試在領(lǐng)完課程設(shè)計(jì)所需的元器件并檢查是否是自己所需要, 并且根據(jù)電路原理圖進(jìn)行電路板的焊制, 在焊接過程中注意不

10、要虛焊和短路。 焊接完成后首先對(duì)電路板上的線路進(jìn)行檢查是否有錯(cuò)漏和重復(fù)。 并且用萬用表測(cè)試電路中有無虛焊短接的情況。在測(cè)試無誤后,向單片機(jī)燒錄程序,并接通電源進(jìn)行測(cè)試。在第一次上電過程中, 數(shù)碼管并沒有顯示出如期的結(jié)果, 用萬用表對(duì)焊接點(diǎn)進(jìn)行再一次的排查并對(duì)線路進(jìn)行檢查, 發(fā)現(xiàn)單片機(jī)底座有幾個(gè)虛焊點(diǎn), 并重新對(duì)其進(jìn)行焊制。系統(tǒng)軟件調(diào)試在 keil 編譯器下進(jìn)行程序的編寫,以子程序?yàn)閱挝贿M(jìn)行調(diào)試,并且利用proteus軟件進(jìn)行仿真實(shí)驗(yàn)并結(jié)合電路板進(jìn)行整機(jī)調(diào)試。六、總結(jié)與體會(huì)此次的課程設(shè)計(jì)是基于單片機(jī)的數(shù)碼管滾動(dòng)顯示控制。 單片機(jī)是自動(dòng)化的重要課程, 學(xué)習(xí)的時(shí)候十分用心, 也同時(shí)也為這次的課程設(shè)計(jì)

11、打下了理論基礎(chǔ)。 但是由于學(xué)習(xí)到的更多涉及于課本知識(shí)并沒有靈活的掌握, 所以說在設(shè)計(jì)的過程中也需要不斷的翻閱書籍, 以此來達(dá)到完成順利完成課程設(shè)計(jì)任務(wù), 在這段學(xué)習(xí)與制作的過程中鞏固了我在課堂上學(xué)習(xí)到的內(nèi)容, 而且鍛煉到了我個(gè)人的自我學(xué)習(xí)能力及制作能力。 在課程設(shè)計(jì)最開始是做Proteus 仿真, 從最小系統(tǒng)開始做。 單片機(jī)最小系統(tǒng)是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。 應(yīng)該包括: 單片機(jī)、 晶振電路、 復(fù)位電路等。 我上學(xué)期做過數(shù)電的課程設(shè)計(jì)所以這次看到器件這么少電路圖這么簡(jiǎn)單還覺得很高興。 然而做完仿真開始焊接時(shí)才發(fā)現(xiàn)從單片機(jī)芯片出來的連接數(shù)碼管的線路在仿真中隱藏了只留下了引腳, 導(dǎo)

12、致我在焊接的時(shí)候一下多了十多根線打亂我的節(jié)奏, 好在最后還是踉踉蹌蹌地焊完了。 在第一次調(diào)試的時(shí)候并沒有現(xiàn)象,這令我十分惶恐,仔細(xì)檢查才發(fā)現(xiàn)仿真中 21 20 引腳的都略去了而這幾個(gè)針腳正是連接vcc 跟地的引腳, 后來將它焊上了。 給我的啟發(fā)是以后在做完仿真焊接的時(shí)候一定要每個(gè)引腳的過, 因?yàn)榉抡嬷兴鼘⑿酒囊_打亂了順序而且有的引腳也省略了, 仿真跟真實(shí)的焊接還是不同的。 還有就是拿到仿真先別急著焊接, 還是要大致地考慮器件的布局跟正反面的走線, 提前理清思路焊的時(shí)候才能游刃有余,不至于慌忙。而且在制作仿真的過程中也有了瓶頸,大一學(xué)的 c 語(yǔ)言忘得差不多了好在同學(xué)的幫助下才解決了問題, 另

13、外焊接只是一 方面,后續(xù)的檢測(cè)診斷才是關(guān)鍵,不可能一下子焊好就可以使用,在焊接的過程 中難免有一些焊點(diǎn)漏焊虛焊的。每一次的課程設(shè)計(jì)對(duì)我都是一種拔高跟歷練, 在 一次次的課程設(shè)計(jì)中我會(huì)不斷地進(jìn)步, 提升自己的解決問題的能力,跟動(dòng)手焊接 能力,還有故障排查能力,做課程設(shè)計(jì)固然需要智慧然而堅(jiān)持跟耐心也是很關(guān)鍵 的,這幾樣缺一不可,否則很難做出成功的作品。我相信我會(huì)一步步地慢慢變好 變強(qiáng)。附錄元器件清單器件名稱數(shù)量Stc89c54單片機(jī)1電容小七段共陰極數(shù)碼管2電阻小微動(dòng)開關(guān)2芯片插座3驅(qū)動(dòng)1晶振1附錄二#include<>/- 定義使用的 IO 口 -/#define GPIO_DIG

14、P2/ 段選#define GPIO_PLACE P0/ 位選sbit k =P1A0;/- 定義全局變量-/unsigned char code DIG_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

15、 的顯示碼unsigned char DisplayData8;/ 用來存放要顯示的 8 位數(shù)的值/- 聲明全局函數(shù)-/void Displaykey();void Runkey();void first();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;

16、for(a=0; a<8; a+)DisplayDataa = DIG_CODEa;/ 存放段碼first(); / 設(shè)置定時(shí)器初值和工作方式while(1)Displaykey(); / 掃描按鍵Runkey();/ 執(zhí)行相對(duì)應(yīng)的按鍵步驟/* 函 數(shù) 名 :first()* 函數(shù)功能: 設(shè)置初值*/void first()TMOD=0x01;/ 設(shè)置T0為定時(shí)器工作方式0TH0=(65536-20000)/256;TL0=(65536-20000)%256;/ 設(shè)置計(jì)數(shù)器初值,定時(shí)時(shí)間為 20msIE=0x82;/ 允許定時(shí)器0 中斷/* 函 數(shù) 名 :Displaykey();* 函

17、數(shù)功能: 按鍵掃描*/void Displaykey()if(k=0)/* 函 數(shù) 名 :void time0() interrupt1 using 1* 函數(shù)功能: 定時(shí)器 0*/void time0() interrupt 1 using 1unsigned char a;TH0=(65536-20000)/256;TL0=(65536-20000)%256;/ 方式 1 需要重置定時(shí)器的初值if(k=0)/ 定時(shí)20ms去除按鍵抖動(dòng)while(1)if(k=1) break;/ 判斷按鍵是否彈起step=step+1;/ 進(jìn)入下一個(gè)工作方式if(step=5)step=1;switch(

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

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

溫馨提示

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