基于單片機(jī)的4x4光立方課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 光立方 </p><p>  院 系 電子工程學(xué)院 </p><p>  專 業(yè) 自動化 <

2、/p><p>  姓 名 </p><p>  學(xué) 號 </p><p>  班級學(xué)號 </p><p>  組 員

3、 </p><p>  指導(dǎo)教師 丁文斌 </p><p><b>  目 錄</b></p><p><b>  一 、摘要3</b></p><p><b>  設(shè)計(jì)目的與要求4</b></p>

4、<p><b>  2.1設(shè)計(jì)目的4</b></p><p><b>  2.2設(shè)計(jì)要求4</b></p><p>  三、硬件方案設(shè)計(jì)4</p><p>  3.1單片機(jī)資源分配情況5</p><p><b>  3.2復(fù)位電路5</b></p>

5、;<p><b>  3.3時鐘電路5</b></p><p>  3.4系統(tǒng)的工作原理圖6</p><p>  3.5焊接實(shí)物圖10</p><p><b>  軟件設(shè)計(jì)11</b></p><p>  4.1系統(tǒng)框圖11</p><p>  4.2

6、程序流程圖11</p><p><b>  4.3程序13</b></p><p><b>  五、心得體會17</b></p><p><b>  六、參考文獻(xiàn)17</b></p><p><b>  摘要</b></p><

7、p>  當(dāng)今社會,隨著電子行業(yè)的不斷發(fā)展,單片機(jī)憑借著其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用廣泛,發(fā)展迅猛。單片機(jī)體積小,質(zhì)量小,抗干擾能力強(qiáng),對環(huán)境要就不高,價(jià)格低廉,靈活性好,已廣泛的應(yīng)用在工業(yè)自動化、通信、自動檢測、信息家電、電力電子航空航天等各個方面。成為現(xiàn)代生產(chǎn)和生活中不可缺少的一部分。</p><p>  對于大三的我們來說,學(xué)習(xí)單片機(jī)也好久了,對單片機(jī)有了大體的了解,此次單片機(jī)課程設(shè)計(jì)

8、,我們采用的是STC89C52RC系列的單片機(jī),利用此單片機(jī)來控制一個“光立方”。光立方顧名思義就是一個立方體,我們采用的是4*4*4的模式,將LED燈分成四層,利用程序來編寫各種不同的效果來控制LED的亮滅,最終使得整個立方體展現(xiàn)不同的造型和圖案,使其變得美輪美奐,絢麗多彩。</p><p><b>  設(shè)計(jì)目的與要求</b></p><p>  2.1設(shè)計(jì)目的

9、 </p><p> ?、牛M(jìn)一步掌握單片機(jī)的原理及其功能。學(xué)會利用單片機(jī)做一些課外電子設(shè)計(jì)與制作。</p><p> ?、疲煜ED點(diǎn)亮條件及其工作原理。</p><p>  ⑶.熟悉光立方顯示的原理及其相關(guān)的線路連接。</p><p> ?、龋ㄟ^此次的電路焊接和調(diào)試提高自己的動手及其分析問題的能力。</p><p&

10、gt;<b>  2.2設(shè)計(jì)要求</b></p><p> ?、?利用單片機(jī)控制4*4*4的LED光立方顯示一些3D的圖形,通過編程編寫一些程序控制單片機(jī)輸出一些高低電平從而控制某個和某些LED等亮和暗,由此來通過燈光顯示一些3D圖形。設(shè)計(jì)內(nèi)容包括了時鐘電路、復(fù)位電路、三極管驅(qū)動電路、LED光立方電路等幾部分的設(shè)計(jì)。根據(jù)內(nèi)容畫出相應(yīng)的電路圖,再編寫出相應(yīng)的程序。</p><

11、;p> ?、?編寫完程序后,進(jìn)行實(shí)物的焊接,將程序燒寫到單片機(jī)上,最后進(jìn)行調(diào)試。</p><p><b>  2.3小組分工情況</b></p><p>  吳小康主要負(fù)責(zé)硬件部分,主要工作是焊接電路。宋建軍主要負(fù)責(zé)軟件部分,主要工作是編寫程序,畫電路圖。文壇主要負(fù)責(zé)報(bào)告的撰寫,一起完成了本次課程設(shè)計(jì)的任務(wù)。</p><p><b&

12、gt;  硬件方案設(shè)計(jì)</b></p><p>  3.1單片機(jī)資源分配情況</p><p>  將4*4*4的LED光立方分層4層,分別由單片機(jī)的P2.0,P2.1,P2.2,P2.3,四個口來控制每一層,且給低電平有效,再有P0口和P1的總共16個口來控制16列,給高電平有效,P0和P1口加上位排阻,再給每一列加三極管放大,三極管的基極接單片機(jī)的P0和P1口,集電極接5V電

13、源,發(fā)射極接每一列。這樣就可以通過控制每個口的輸出信號來控制每個的亮滅。</p><p><b>  2復(fù)位電路</b></p><p>  通過某種方式,是單片機(jī)內(nèi)部各類寄存器的值變?yōu)槌鍪聽顟B(tài)的操作稱為復(fù)位。單片機(jī)的復(fù)位是通過外部電路來實(shí)現(xiàn)的,復(fù)位引腳RET通過一個施密特觸發(fā)器與復(fù)位電路相連接,施密特觸發(fā)器用作噪聲抑制,偉哥機(jī)器周期的S5P2時刻,復(fù)位電路采樣一次施

14、密特輸出電平,獲得內(nèi)部復(fù)位操作所需要的信號。單片機(jī)的時鐘電路正常工作后,CPU在RET/VPD引腳上連續(xù)采集到兩個機(jī)器周期的高電平后就可以完成復(fù)位操作了,但實(shí)際應(yīng)用時,復(fù)位電平的脈沖寬度一般大于1ms。復(fù)位電路通常采用上電復(fù)位、手動按鍵復(fù)位和看門狗復(fù)位三種方式,本次采用的是上電復(fù)位方式。</p><p><b>  3.3時鐘電路</b></p><p>  單片機(jī)的

15、各個功能部件的運(yùn)行都是是時鐘控制信號為基準(zhǔn),一拍一拍的工作。因此時鐘頻率直接影響單片機(jī)的速度,時鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的可靠性和穩(wěn)定性。常用的時鐘電路設(shè)計(jì)為內(nèi)部時鐘方式,單片機(jī)內(nèi)部有一個由反向放大器構(gòu)成的震蕩電路,芯片上的XTAL1和XTAL2分別為震蕩電路的輸入和輸出端。只要在這兩個引腳上接一個石英晶體振蕩器和兩個微調(diào)電容就構(gòu)成內(nèi)部方式的振蕩器電路,有振蕩器產(chǎn)生自激振蕩,便構(gòu)成一個完整的震蕩信號發(fā)生器。</p>

16、<p>  一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1、C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。本系統(tǒng)的C1、C2的值為33pf。</p><p>  單片機(jī)在工作時,有內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期

17、。其大小是時鐘信號頻率的倒數(shù),f表示。圖2中的時鐘頻率為12MHz,即f=12MHz,則時鐘周期為1/12us。</p><p>  3.4系統(tǒng)的工作原理圖</p><p><b>  光立方一、二層:</b></p><p><b>  光立方三、四層:</b></p><p><b>

18、  單片機(jī)口點(diǎn)連接:</b></p><p><b>  三極管放大電路:</b></p><p><b>  總原理圖:</b></p><p><b>  3.5 焊接實(shí)物圖</b></p><p><b>  軟件設(shè)計(jì)</b></p

19、><p><b>  3.1系統(tǒng)方框圖</b></p><p><b>  3.2程序流程圖</b></p><p><b>  元器件清單:</b></p><p><b>  3.3 C語言程序</b></p><p>  #inc

20、lude<reg51.h></p><p>  #define uchar unsigned char</p><p>  void delay100ms(uchar data1ms)</p><p>  {uchar i,j,m; </p><p>  for(i=0;i<data1ms;i++)</p>&

21、lt;p>  for(j=0;j<110;j++)</p><p>  for(m=0;m<100;m++)</p><p><b>  ;</b></p><p><b>  }</b></p><p>  void disp(uchar ceng,uchar lie1,ucha

22、r lie2 )</p><p><b>  {</b></p><p>  delay100ms(7);</p><p><b>  P1=ceng;</b></p><p><b>  P2=lie1;</b></p><p><b>  

23、P0=lie2;</b></p><p><b>  }</b></p><p>  void main(void)</p><p>  {unsigned char hang,shu1;</p><p>  unsigned char code C1[][16]={</p><p>

24、  {0x07,0x0B,0x0D,0x0E,0x0E,0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00},</p><p>  {0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00,0x08,0x0C},</p><p>  {0x0E,0x

25、0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E},</p><p>  {0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},</p><p>  {0x00,0x00,0x00,0x

26、00,0x00,0x00,0x00,0x00,0x08,0x0C,0x0E,0x0F,0x0E,0x0C,0x08,0x00},</p><p>  {0x00,0x00,0x00,0x00,0x00,0x0D,0x0D,0x0D,0x05,0x09,0x09,0x09,0x0D,0x0D,0x0D,0x05},</p><p>  {0x09,0x09,0x09,0x00,0x09,0x

27、09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09},</p><p>  {0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09}</p><p><b>  };</b></p><p>  unsigned char code L1[][16]={</p

28、><p>  {0xFF,0xFF,0xFF,0xFF,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x96,0x96,0x96,0x96,0x96},</p><p>  {0x96,0x96,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC},</p><

29、p>  {0x01,0x03,0x07,0x0F,0x8E,0x8C,0x88,0x80,0x00,0x00,0x00,0x10,0x30,0x70,0x70,0x60},</p><p>  {0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xCC,0x0F,0x33,0x66,0xCC,0xF0,0x33,0x66,0xCC},</p><p>  {0x

30、66,0x33,0xF0,0xCC,0x66,0x33,0xF0,0xCC,0xCC,0xCC,0xCC,0xCC,0x60,0x60,0x60,0x60},</p><p>  {0xE8,0x74,0x32,0x11,0x00,0x06,0x66,0x60,0x60,0x60,0x00,0x00,0x06,0x66,0x60,0x60},</p><p>  {0x60,0x00,0x

31、00,0x00,0x80,0x40,0x20,0x20,0x20,0x60,0x62,0x60,0x30,0x10,0x80,0xC0},</p><p>  {0x60,0x60,0x60,0x60,0x64,0x60,0x30,0x10}</p><p>  // {0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0x00

32、,0x00,0x00,0x00,0x00},//列掃描</p><p><b>  };</b></p><p>  unsigned char code L2[][16]={</p><p>  {0xFF,0xFF,0xFF,0xFF,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x69,0x69,0x69,0x6

33、9,0x69},</p><p>  {0x69,0x69,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x33,0x33,0x33,0x33,0x33,0x33,0x33},</p><p>  {0x00,0x00,0x00,0x00,0x00,0x08,0x88,0xC8,0xE8,0xF0,0x71,0x31,0x11,0x10,0x04,0x06},&l

34、t;/p><p>  {0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x33,0xF0,0xCC,0x66,0x33,0x0F,0xCC,0x66,0x33},</p><p>  {0x66,0xCC,0x0F,0x33,0x66,0xCC,0x0F,0x33,0x33,0x33,0x33,0x33,0x06,0x06,0x06,0x06},</p>

35、<p>  {0x8E,0x47,0x23,0x11,0x00,0x00,0x00,0x06,0x06,0x06,0x66,0x60,0x00,0x00,0x06,0x06},</p><p>  {0x06,0x66,0x60,0x00,0x08,0x0C,0x06,0x66,0x06,0x06,0x06,0x06,0x03,0x01,0x00,0x08},</p><p> 

36、 {0x04,0x64,0x06,0x06,0x06,0x06,0x03,0x01}</p><p>  // {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10}</p><p><b>  };</b></p><p><b

37、>  while(1) </b></p><p><b>  { </b></p><p>  for(hang=0;hang<8;hang++)</p><p>  {for(shu1=0;shu1<16;shu1++) </p><p>  disp(C1[hang][shu1],L1[

38、hang][shu1],L2[hang][shu1]);</p><p><b>  }</b></p><p>  // for(hang=0;hang<1;hang++)</p><p><b>  // {</b></p><p>  // for(shu1=0;shu1<16;

39、shu1++)</p><p>  // {shu2=0;</p><p>  // disp(C1[shu2][shu2],L1[hang][shu1],L2[hang][shu1]);</p><p><b>  // }</b></p><p><b>  // }</b><

40、/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  心得體會</b></p><p>  此次為期半個多月的課程設(shè)計(jì),讓我感受頗深。最終看到了絢麗多姿,變化多端的LED光立方的圖案。在這半個多月的學(xué)習(xí)中,在很大程度上培養(yǎng)了自己的

41、獨(dú)立思考及其動手能力。學(xué)會了自己獨(dú)立的發(fā)現(xiàn)問題、分析問題。老師還為我們提供了網(wǎng)絡(luò),遇到不明白的問題,首先是通過上網(wǎng)查閱相關(guān)資料、翻閱書籍找出問題的答案。而且還有老師在實(shí)驗(yàn)室指導(dǎo)我們的設(shè)計(jì),在查閱資料仍找不到但答案的還可以請教老師。盡管此次設(shè)計(jì)過程中遇到些問題,但最終還是一步一個腳印過來了。</p><p>  本次我主要的是負(fù)責(zé)程序的編寫。在剛開始燒寫程序進(jìn)去調(diào)試時,發(fā)現(xiàn)LED燈P0口和P2口控制的兩組燈點(diǎn)亮的有

42、點(diǎn)延時,不能夠同步顯示圖案的效果。檢查程序后發(fā)現(xiàn),原來是在送完P(guān)0口數(shù)據(jù)后,就立馬加了個延時,再送P2口數(shù)據(jù),再延時,這樣導(dǎo)致P0口與P2口之間的顯示效果在視覺上慢了半拍,達(dá)不到預(yù)期圖案要顯示的效果,最后將中間的那個延時程序調(diào)到送完P(guān)2口數(shù)據(jù)之后再給其進(jìn)行延時,通過調(diào)試發(fā)現(xiàn)能夠正常顯示。另外在編寫各種圖案顯示代碼的時候,讓我深刻的體會到,要想編好相應(yīng)的代碼,光立方的三維空間的想象能力還是比較重要,54個燈到底是要求哪個燈給高電平哪個燈給

43、低電平,還要根據(jù)顯示要求組合好。以防出現(xiàn)亂碼顯示情況。在匯編程序中,剛開始想用移位指令來實(shí)現(xiàn)代碼的傳送,發(fā)現(xiàn)在一些簡單的圖案還可以(如掃描極有規(guī)律的顯示),但在復(fù)雜一點(diǎn)的立體圖就無法使用了,最后還是將其全部統(tǒng)一改寫成調(diào)用數(shù)組的形式送代碼,這樣既簡單又不容易出錯。</p><p>  此次設(shè)計(jì)在xx老師的指導(dǎo)下完成的,老師扎實(shí)的專業(yè)知識,讓我覺得自己還有好多的知識需要去學(xué)習(xí)。在這大學(xué)的時間,要好好的提升自己的相關(guān)技

44、能。</p><p><b>  七.參考文獻(xiàn)</b></p><p>  1.張毅剛.《新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)》.哈爾濱工業(yè)大學(xué)出版社 20032.朱兆優(yōu)、陳堅(jiān)等.《單片機(jī)原理及應(yīng)用》.電子工業(yè)出版社2010</p><p>  3.秦曾煌.《電工學(xué)》高等教育出版社.2009</p><p>  4.歐陽斌林

45、.《單片機(jī)原理及應(yīng)用》.中國水利水電出版社 2006</p><p>  5.潭浩強(qiáng).《C程序設(shè)計(jì)》.北京航空航天出版社</p><p>  6.付曉光.《單片機(jī)原理與實(shí)用技術(shù)》.清華大學(xué)出版社</p><p>  7.鄒壽彬.《電子技術(shù)基礎(chǔ)》.清華大學(xué)出版社</p><p>  8.許熙文.《電路基礎(chǔ)》.高等教育出版社</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論