版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> 第1章研究背景及設(shè)計(jì)目的要求1</p><p> 1.1 研究背景1</p><p> 1.2 設(shè)計(jì)目的要求1</p><p> 第2章設(shè)計(jì)的方案及基本原理2</p><p><b> 2.1設(shè)計(jì)方案2
2、</b></p><p><b> 2.2基本原理2</b></p><p> 第3章 程序設(shè)計(jì)5</p><p> 3.1主程序流程圖5</p><p><b> 3.2程序代碼5</b></p><p> 第4章 調(diào)試結(jié)果及分析6</
3、p><p> 4.1調(diào)試運(yùn)行及結(jié)果6</p><p> 4.2調(diào)試結(jié)果分析7</p><p> 第5章 心得與體會(huì)8</p><p><b> 參考文獻(xiàn)9</b></p><p><b> 附 錄10</b></p><p>
4、研究背景及設(shè)計(jì)目的要求</p><p><b> 1.1 研究背景</b></p><p> 隨著電子科技的逐步發(fā)展,單片機(jī)領(lǐng)域發(fā)展逐步趨向集成化,微型化,本設(shè)計(jì)利用凌陽(yáng)單片機(jī)控制6個(gè)LED數(shù)碼管的顯示,完成本課程設(shè)計(jì)需要熟悉凌陽(yáng)單片機(jī)的工作原理,了解該款16位單片機(jī)的內(nèi)部結(jié)構(gòu)如圖1-1所示,以及它功能上的特性:體積小、集成度高、可靠性好且易于擴(kuò)展。µ’
5、nSP?家族把各功能部件模塊化地集成在一個(gè)芯片里,內(nèi)部采用總線結(jié)構(gòu),因而減了各功能部件之間的連線,提高了其可靠性和抗干擾能力。</p><p> 圖1-1 凌陽(yáng)單片機(jī)內(nèi)部結(jié)構(gòu)圖</p><p> 數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元,按能顯示多少個(gè)“8”可分為1位、2位、4位等數(shù)碼管要正常顯示,
6、就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。其驅(qū)動(dòng)方式具體原理將在后續(xù)介紹。</p><p> 1.2 設(shè)計(jì)目的要求</p><p> 1.熟悉SPCE061A控制LED數(shù)碼管顯示的方法。 </p><p> 2.進(jìn)一步熟悉µ’nSP?匯編語(yǔ)言和C語(yǔ)言程序設(shè)計(jì)。 </
7、p><p> 3.最終實(shí)現(xiàn)設(shè)計(jì)效果由六個(gè)LED數(shù)碼管移位循環(huán)顯示0~9,即: “012345” , “123456” , “234567” ,……, “890123” ,“901234”……。</p><p> 設(shè)計(jì)的方案及基本原理</p><p><b> 2.1設(shè)計(jì)方案</b></p><p> 運(yùn)用 Windo
8、ws 系統(tǒng)和 µ’nSP? IDE 仿真環(huán)境的 PC 機(jī)一臺(tái)以及61板一套、LED鍵盤模組一套、10 針排線兩根來控制LED,通過程序的設(shè)置使LED顯示程序中的數(shù)字,即顯示“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”。</p><p><b> 2.2基本原理</b></p><p> 數(shù)碼管由7個(gè)發(fā)光二極管組成,行成一個(gè)日字形,它們可以
9、共陰極,也可以共陽(yáng)極.通過解碼電路得到的數(shù)碼接通相應(yīng)的發(fā)光二極而形成相應(yīng)的字,這就是它的工作原理基本的半導(dǎo)體數(shù)碼管是由7個(gè)條狀的發(fā)光二極管(LED)按圖2-1(a)所示排列而成的,可實(shí)現(xiàn)數(shù)字“0~9”及少量字符的顯示。另外為了顯示小數(shù)點(diǎn),增加了1個(gè)點(diǎn)狀的發(fā)光二極管,因此數(shù)碼管就由8個(gè)LED組成,我們分別把這些發(fā)光二極管命名為“a,b,c,d,e,f,g,dp”,排列順序如下圖2-1。</p><p> 圖2-1
10、 管腳排列及內(nèi)部結(jié)構(gòu)</p><p> LED顯示器中每個(gè)發(fā)光二極管要通過5mA—20mA電流才能達(dá)到正常亮度,如圖2-2LED原理圖。SPCE061A的輸入電流可達(dá)到12mA,輸出可達(dá)5mA,實(shí)際上不用驅(qū)動(dòng)電路即可達(dá)到正常亮度,為了可靠性設(shè)計(jì)可采用晶體管構(gòu)成驅(qū)動(dòng)電路。這樣,由于視覺暫留現(xiàn)象,我們看到的便是6只顯示器同時(shí)在顯示。</p><p> 圖2-2 LED原理圖</p&g
11、t;<p> 當(dāng)需要某一位數(shù)碼管顯示數(shù)字時(shí),只需要先選中這位數(shù)碼管的位信號(hào),再給顯示數(shù)字的段碼。比如當(dāng)在第一個(gè)數(shù)碼管上顯示一個(gè)“6” 時(shí),如圖 2-3,先選中第一位數(shù)碼管的位信號(hào)(實(shí)驗(yàn)箱上標(biāo)號(hào)是“1”),即先給和“1”相連接的 I/O口送1;再把段碼設(shè)置為0x007d,即在 a、c、d、e、f、g各段引出的端口檢測(cè)到高電平,就可以顯示一個(gè)“6”出來。</p><p> 圖2-3 數(shù)碼管顯示“6”
12、</p><p> 要實(shí)現(xiàn)每個(gè)數(shù)碼管分別顯示不同數(shù)字的效果,例如,要顯示“123456”,則需要不斷地快速刷新數(shù)碼管的顯示狀態(tài),即先使第一個(gè)數(shù)碼管顯示數(shù)字“1”,其他數(shù)碼管熄滅,然后熄滅第一個(gè)數(shù)碼管,第二個(gè)數(shù)碼管顯示數(shù)字“2”,以此類推。其中晶體管共集電極接法由圖2-4給出。這樣,利用人眼的視覺殘留效應(yīng),就產(chǎn)生了“123456”同時(shí)顯示出來的效果。</p><p> 圖2-4晶體管共集
13、電極接法</p><p> 數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一, 動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,如圖2-5所示連接方法。另外為每個(gè)數(shù)碼管的公共極COM 增加位選通控制電路,位選通由各自獨(dú)立的 I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制
14、,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p> 圖2-5 SPCE061
15、A和6位LED顯示電路模塊的連接</p><p> 按照上面數(shù)碼管的顯示原理,當(dāng)要在第四個(gè)數(shù)碼管上顯示一個(gè)“E”時(shí),先要通過 IOB12 端口給“4”端口送一個(gè) 1,選中第四個(gè)數(shù)碼管;由圖 4-1 可以看出,顯示“E”時(shí),需要 a、d、e、f、g段被點(diǎn)亮,所以給 IOA0、IOA3、IOA4、IOA5、IOA6 端口各送一個(gè) 1,則在 a、d、e、f、g 端口各能檢測(cè)到一個(gè)高電平,就可以點(diǎn)亮 a、d、e、f、g
16、 段,顯示一個(gè)“E” 。</p><p><b> 第3章 程序設(shè)計(jì)</b></p><p><b> 3.1主程序流程圖</b></p><p> 程序運(yùn)行具體過程,開始時(shí)單片機(jī)進(jìn)行初始化,將屬性寄存器,方向寄存器數(shù)據(jù)寄存器清零,并設(shè)置系統(tǒng)時(shí)鐘自身開始計(jì)數(shù)。當(dāng)初始計(jì)數(shù)小于等于99循環(huán)遞歸自身過程,當(dāng)DIG>
17、99時(shí)計(jì)數(shù)器開始自加時(shí),以此控制位置變量POS使其在自累加的時(shí)候控制數(shù)碼管顯示位數(shù),小于6時(shí)循環(huán)累加到達(dá)6即清零重新開始計(jì)數(shù)這樣完成了數(shù)碼管位數(shù)的顯示控制。圖3-1主程序流程圖。</p><p><b> 圖3-1 主流程圖</b></p><p><b> 3.2程序代碼</b></p><p> 主程序代碼如附錄
18、所示</p><p> 第4章 調(diào)試結(jié)果及分析</p><p> 4.1調(diào)試運(yùn)行及結(jié)果</p><p> 打開凌陽(yáng)單片機(jī)運(yùn)行環(huán)境,將預(yù)存寫好的程序輸入到編輯欄內(nèi),打開單片機(jī)主電源,避免冷啟動(dòng)使單片機(jī)出現(xiàn)漂移,經(jīng)檢查無誤后進(jìn)行運(yùn)行主程序,同時(shí)觀察程序運(yùn)行狀況避免死循環(huán)導(dǎo)致死機(jī)現(xiàn)象。調(diào)試結(jié)果如圖4-1使數(shù)碼管顯示“123456”和圖4-2是數(shù)碼管顯示“012345
19、”所示。</p><p> 圖4-1數(shù)碼管顯示“123456”</p><p> 圖4-2數(shù)碼管顯示“012345”</p><p> 4.2 調(diào)試結(jié)果分析</p><p> 程序運(yùn)行過程中出現(xiàn)了諸多情況,在確定主程序正確無誤的情況下,出現(xiàn)報(bào)錯(cuò),可能是在輸入程序時(shí)忘記了注釋和主程序的區(qū)分,誤將主程序作為注釋,致使程序運(yùn)行丟失了必要語(yǔ)句
20、從而發(fā)生機(jī)械中斷。在運(yùn)行程序過程中,出現(xiàn)了LED顯示不規(guī)則數(shù)碼的現(xiàn)象,原因是未將LED所有管腳與I/O口進(jìn)行短接,漏接了若干個(gè)管腳造成輸出與程序設(shè)計(jì)上的不匹配。當(dāng)程序準(zhǔn)確無誤時(shí)發(fā)現(xiàn)顯示數(shù)碼過程中LED數(shù)碼管始終閃爍不定,原因是在設(shè)計(jì)過程中單片機(jī)驅(qū)動(dòng)LED頻率過低造成人眼能觀察到他的刷新過程,類似細(xì)節(jié)問題應(yīng)該在編輯程序的時(shí)候給予足夠的重視。如果要測(cè)試定時(shí)中斷頻率,只要在中斷中對(duì)這個(gè)測(cè)試口取反,即可通過示波器觀測(cè)中斷頻率;要測(cè)試主程序運(yùn)行周
21、期,只要把取反指令放在主程序循環(huán)圈中,即可;要測(cè)試一次復(fù)雜計(jì)算(或其它動(dòng)作)需要消耗多少時(shí)間,我們只需在計(jì)算之前把測(cè)試口變?yōu)楦唠娖?,等到?jì)算結(jié)束后立即把輸出口恢復(fù)到低電平,這段高電平的時(shí)間長(zhǎng)度,即為計(jì)算消耗時(shí)間;兩個(gè)動(dòng)作之間的延時(shí)時(shí)間,我們也可以按照上一條方法一樣,在兩個(gè)動(dòng)作發(fā)生前把測(cè)試口分別取一次反。</p><p><b> 第5章 心得與體會(huì)</b></p><p
22、> 通過這次的課程設(shè)計(jì)作品的制作讓我對(duì)單片機(jī)的理論有了更加深入的了解,同時(shí)在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識(shí)與實(shí)際的應(yīng)用存在著不小的差距,書本上的知識(shí)很多都是理想化后的結(jié)論,忽略了很多實(shí)際的因素,或者涉及的不全面,可在實(shí)際的應(yīng)用時(shí)這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果,有時(shí)結(jié)果甚至很差別很大。通過這次實(shí)踐使我更深刻的體會(huì)到了理論聯(lián)系實(shí)際的重要性,我們?cè)诮窈蟮膶W(xué)習(xí)工作
23、中會(huì)更加的注重實(shí)際,避免只會(huì)紙上談兵。首先,學(xué)習(xí)單片機(jī)要有一定的基礎(chǔ):電子技術(shù)方面要有數(shù)字電路和模擬電路等方面的理論基礎(chǔ),特別是數(shù)字電路;編程語(yǔ)言要求匯編語(yǔ)言或C語(yǔ)言。要想成為單片機(jī)高手,建議首先學(xué)習(xí)匯編語(yǔ)言,盡管匯編語(yǔ)言屬于低級(jí)語(yǔ)言,編程效率低,但是較C語(yǔ)言具有目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快等優(yōu)點(diǎn),更重要的是能使我們盡快熟悉單片機(jī)的內(nèi)部結(jié)構(gòu),并能對(duì)其進(jìn)行精確的控制。</p><p> 為期一個(gè)星期的課程
24、設(shè)計(jì)已經(jīng)結(jié)束,在這一星期的學(xué)習(xí)、設(shè)計(jì)、搜索資料過程中我感觸頗深。使我對(duì)抽象的理論有了具體的認(rèn)識(shí)。通過這次課程設(shè)計(jì),我掌握了常用元件的識(shí)別和測(cè)試;熟悉了常用的儀器儀表;了解了電路的連接、測(cè)試方法;以及如何提高電路的性能等等。</p><p> 這個(gè)課程設(shè)計(jì)課我還不是很熟悉,第一次做難免會(huì)感到陌生,而且對(duì)很多基本的東西都不是很清楚,在一定程度上影響了我們的課程設(shè)計(jì)的質(zhì)量,希望能在以后的時(shí)間里認(rèn)真學(xué)習(xí)好這些基礎(chǔ)的東西
25、。我對(duì)這個(gè)課程設(shè)計(jì)課有著深刻的體會(huì):要想做好這個(gè)課程設(shè)計(jì),就必須認(rèn)認(rèn)真真地去做,不要怕麻煩,遇到不懂的問題就要主動(dòng)去問同學(xué)或者老師。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]胡宴如.模擬電子技術(shù)[M].北京高等教育出版社,2000.3.</p><p> [2]彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)[M].北京高等教育出
26、版社,1997.</p><p> [3]羅亞非.凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ)[M].北京航空航天大學(xué)出版社,2005.</p><p> [4]邱關(guān)源.電路[M].北京高等教育出版社,2006.5.</p><p> [5]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京高等教育出版社,2006.5.</p><p> [6]參考網(wǎng)址www.unsp
27、.com</p><p><b> 附 錄</b></p><p><b> 主程序如下所示:</b></p><p> .include hardware.inc</p><p> .define LED_SEG 0x00ff</p><p> .define
28、LED_DIG 0x3f00</p><p><b> .ram</b></p><p> .var Pos,Dig,TimerCnt</p><p><b> .data</b></p><p><b> DigCode:</b></p><p&g
29、t; .dw 0x3F,0x06,0x5B,0x4F,0x66</p><p> .dw 0x6D,0x7D,0x07,0x7F,0x6F</p><p><b> .code</b></p><p> .public LedDispDig</p><p> LedDispDig:</p>&l
30、t;p> push r1,r2 to [sp]</p><p><b> r1=1</b></p><p> [P_Watchdog_Clear]=r1</p><p> r1=[P_IOB_Dir]</p><p> [P_IOB_Dir]=r1</p><p> r1=[P_
31、IOB_Attrib]</p><p> r1|=LED_DIG+LED_SEG</p><p> [P_IOB_Attrib]=r1</p><p><b> r1=0x0080</b></p><p><b> r2=[Pos]</b></p><p> L_
32、SetIOBHigh:</p><p> r1=r1 LSL 1</p><p><b> r2-=1</b></p><p> jnzL_SetIOBHigh</p><p> [P_IOB_Data]=r1</p><p><b> r1=[Dig]</b>&
33、lt;/p><p> r2=DigCode</p><p><b> r2+=r1</b></p><p><b> r1=[r2]</b></p><p> r2=[P_IOB_Buffer]</p><p><b> r2|=r1</b><
34、;/p><p> [P_IOB_Data]=r2</p><p> pop r1,r2 from [sp]retf</p><p> .public _main</p><p> r1=0L_MainLoop:</p><p> r2=1000L_TimerLoop:</p><p
35、><b> [Dig]=r1</b></p><p><b> r3=1</b></p><p><b> [Pos]=r3</b></p><p> L_DigLoop:call LedDispDig</p><p> r3=[Dig]r3+=1cmp r
36、3,9</p><p> jna L_DigNext</p><p><b> r3=0</b></p><p> L_DigNext:</p><p><b> [Dig]=r3</b></p><p> r3=[Pos] r3+=1</p>
37、<p><b> [Pos]=r3</b></p><p><b> cmp r3,6</b></p><p> jna L_DigLoop</p><p><b> r2-=1</b></p><p> jnz L_TimerLoop</p>
38、;<p><b> r1+=1</b></p><p><b> cmp r1,9</b></p><p> jna L_MainLoop</p><p><b> r1=0</b></p><p> jmp L_MainLoop</p>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)數(shù)碼管
- 單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示設(shè)計(jì)-c語(yǔ)言
- 單片機(jī)驅(qū)動(dòng)數(shù)碼管簡(jiǎn)單小實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)--兩位數(shù)碼管顯示設(shè)計(jì)
- 單片機(jī)技術(shù)課程設(shè)計(jì)報(bào)告(數(shù)碼管電子時(shí)鐘)
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--單只數(shù)碼管顯示數(shù)字
- 單片機(jī)課程設(shè)計(jì)--用數(shù)碼管設(shè)計(jì)的可調(diào)式數(shù)字鐘
- 單片機(jī)控制數(shù)碼管顯示程序
- 單片機(jī)控制數(shù)碼管顯示數(shù)字
- 單片機(jī)課程設(shè)計(jì)-8位8段led數(shù)碼管動(dòng)態(tài)掃描顯示解讀
- 單片機(jī)課程設(shè)計(jì)----凌陽(yáng)spce061a聲控小車
- c51單片機(jī)03數(shù)碼管
- 【doc】單片機(jī)課程設(shè)計(jì) 基于at89s52單片機(jī)的數(shù)碼管顯示音樂盒的設(shè)計(jì)
- 數(shù)碼管顯示課程設(shè)計(jì)報(bào)告
- plc數(shù)碼管顯示課程設(shè)計(jì)
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--數(shù)碼管動(dòng)態(tài)顯示滾動(dòng)示單個(gè)數(shù)字設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--鍵盤輸入在led數(shù)碼管上的顯示
- 凌陽(yáng)單片機(jī)流水燈
- 用單片機(jī)控制數(shù)碼管顯示數(shù)字的設(shè)計(jì)與研究
- 嵌入式課程設(shè)計(jì)--led數(shù)碼管驅(qū)動(dòng)程序
評(píng)論
0/150
提交評(píng)論