版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> LED點陣動態(tài)顯示屏</p><p><b> 課程設(shè)計題目:</b></p><p> LED點陣動態(tài)顯示屏設(shè)計;</p><p> 用實驗箱16*16的LED顯示屏多態(tài)滾動顯示漢字或字符;</p><p><b> 課程設(shè)計目的:</b></p>&l
2、t;p> 為了進(jìn)一步鞏固學(xué)習(xí)的理論知識,增強(qiáng)學(xué)生對所學(xué)知識的實際應(yīng)用能力和運(yùn)用所知識解決實際問題的能力,開始為期一周的單片機(jī)課程設(shè)計。通過實訓(xùn)使學(xué)生在鞏固所學(xué)知識的基礎(chǔ)上具有初步的單片機(jī)系統(tǒng)設(shè)計與應(yīng)用能力。單片機(jī)課程設(shè)計的目的是培養(yǎng)學(xué)生綜合設(shè)計的能力,訓(xùn)練學(xué)生靈活運(yùn)用所學(xué)知識,獨立完成問題分析、總體設(shè)計和編程實現(xiàn)等軟件開發(fā)過程的綜合實踐能力,鞏固深化學(xué)生的理論知識,提高編程水平,并在此過程中培養(yǎng)他們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的學(xué)習(xí)作風(fēng)
3、。為今后其他計算機(jī)課程打下基礎(chǔ)。</p><p> 在學(xué)習(xí)《單片機(jī)原理及應(yīng)用A》課程的基礎(chǔ)上,進(jìn)一步深入理解MCS-51單片機(jī)的結(jié)構(gòu)、工作原理和應(yīng)用技術(shù),提高單片機(jī)控制系統(tǒng)設(shè)計、研發(fā)的能力;按照教學(xué)計劃的要求,利用一周時間,綜合應(yīng)用所學(xué)知識,設(shè)計具有一定功能的小型單片機(jī)控制系統(tǒng),培養(yǎng)學(xué)生一定的自學(xué)能力和獨立分析問題、解決問題的能力,要求學(xué)生能通過獨立思考、查閱工具書、參考文獻(xiàn),提出自己的設(shè)計方案,找出設(shè)計中遇到
4、問題的解決途徑。</p><p> 課程設(shè)計要求及任務(wù):</p><p> 1.整個課程設(shè)計的各個環(huán)節(jié)都要自己動手。</p><p> 2.完成16X16LED點陣動態(tài)顯示屏設(shè)計,實現(xiàn)漢字“歡迎您”的動態(tài)顯示;</p><p> 3.采用C語言編程實現(xiàn); </p><p> 4.其他要求參見“nKDE-51單
5、片機(jī)實驗教學(xué)系統(tǒng)實驗指導(dǎo)書”;</p><p> 5.基本任務(wù)為必做項目,附加任務(wù)為選做項目;</p><p> 6.對課程設(shè)計進(jìn)行總結(jié),撰寫課程設(shè)計說明書。</p><p><b> 設(shè)計任務(wù):</b></p><p> 基本任務(wù):利用nKDE-51單片機(jī)實驗教學(xué)系統(tǒng)上的硬件資源,實現(xiàn)LED點陣顯示屏的動態(tài)顯示
6、功能。</p><p> 附加任務(wù):通過鍵盤(1)控制顯示屏的顯示/熄滅;</p><p> (2)通過PC機(jī)輸入顯示內(nèi)容。</p><p><b> 工作量要求:</b></p><p> 設(shè)計的硬件電路圖與程序流程圖;</p><p><b> 源程序代碼;</b&g
7、t;</p><p> 3.系統(tǒng)運(yùn)行結(jié)果符合課程設(shè)計要求。</p><p><b> 4.主要參考文獻(xiàn)</b></p><p> ?、?《nKDE51單片機(jī)實驗教學(xué)系統(tǒng)實驗指導(dǎo)書》南京郵電大學(xué),2011年</p><p> ?、?《單片機(jī)原理與應(yīng)用及C51程序設(shè)計》(第2版),謝維成等編著,清華大學(xué)出版社</p
8、><p> ?、?《單片機(jī)原理及應(yīng)用》(第2版),李建忠,西安電子科技大學(xué)出版社,2008年</p><p> ④.C程序設(shè)計(第三版),譚浩強(qiáng),清華大學(xué)出版社,2005年</p><p><b> 課程設(shè)計內(nèi)容:</b></p><p><b> 功能說明:</b></p><
9、;p> 可在16*16LED屏上左右滾動顯示“美好南工”、“歡迎您”</p><p> 可在實現(xiàn)字符活著漢字在顯示過程中控制LED屏的亮與滅</p><p> 可在實現(xiàn)字符活著漢字在顯示過程中控制“美好南工”與“歡迎您”兩段</p><p><b> 漢字的切換</b></p><p> 首先介紹硬件電路
10、的鏈接情況:(電路圖)</p><p> 連線說明:單片機(jī)內(nèi)測的四個端口和LED屏上的四個端口依次連接,還有其P0.0端口接按鍵SW1、P2.7接按鍵SW1</p><p><b> (取模情況)</b></p><p><b> ?。龑懗绦颍?lt;/b></p><p><b> 課
11、程設(shè)計源程序:</b></p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p><b> bit n;</b></p><p> sbit sw2=P2^7;//定義按鍵key</p>
12、;<p> sbit sw1=P0^0;//定義按鍵sw1</p><p> uchar code code1[]=//字模</p><p><b> {</b></p><p> 0x00,0x80,0x84,0x80,0x84,0x44,0x94,0x44,0x95,0x24,0x96,0x14,0x94
13、,0x0C,0xFC,0x07,</p><p> 0x94,0x0C,0x96,0x14,0x95,0x24,0x94,0x64,0x94,0xC4,0x84,0x44,0x80,0x00,0x00,0x00,/*"美",0*/</p><p> 0x10,0x80,0x10,0x43,0xF0,0x22,0x1F,0x14,0x10,0x0C,0xF0,0x73
14、,0x80,0x20,0x82,0x00,</p><p> 0x82,0x40,0x82,0x80,0xF2,0x7F,0x8A,0x00,0x86,0x00,0x82,0x00,0x80,0x00,0x00,0x00,/*"好",1*/</p><p> 0x04,0x00,0x04,0x00,0xE4,0x7F,0x24,0x04,0x24,0x05,0x64
15、,0x05,0xB4,0x05,0x2F,0x7F,</p><p> 0x24,0x05,0xA4,0x05,0x64,0x05,0x24,0x25,0x24,0x44,0xE6,0x3F,0x04,0x00,0x00,0x00,/*"南",2*/</p><p> 0x00,0x20,0x00,0x20,0x02,0x20,0x02,0x20,0x02,0x20
16、,0x02,0x20,0x02,0x20,0xFE,0x3F,</p><p> 0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x20,0x00,0x00/*"工",0*/</p><p><b> };</b></p><p> u
17、char code code2[]=</p><p><b> {</b></p><p> 0x14,0x20,0x24,0x10,0x44,0x4C,0x84,0x43,0x64,0x43,0x1C,0x2C,0x20,0x20,0x18,0x10,</p><p> 0x0F,0x0C,0xE8,0x03,0x08,0x06,0x0
18、8,0x18,0x28,0x30,0x18,0x60,0x08,0x20,0x00,0x00,/*"歡",0*/</p><p> 0x40,0x40,0x41,0x20,0xCE,0x1F,0x04,0x20,0x00,0x40,0xFC,0x47,0x04,0x42,0x02,0x41,</p><p> 0x02,0x40,0xFC,0x5F,0x04,0x4
19、0,0x04,0x42,0x04,0x44,0xFC,0x43,0x00,0x40,0x00,0x00,/*"迎",1*/</p><p> 0x80,0x00,0x40,0x20,0x30,0x38,0xFC,0x03,0x03,0x38,0x90,0x40,0x68,0x40,0x06,0x49,</p><p> 0x04,0x52,0xF4,0x41,0x0
20、4,0x40,0x24,0x70,0x44,0x00,0x8C,0x09,0x04,0x30,0x00,0x00/*"您",2*/</p><p><b> };</b></p><p> void delay(int m)</p><p><b> {int i;</b></p>
21、<p> while(m--)</p><p> for(i=0;i<40;i++);</p><p><b> }</b></p><p> void XIANSHI(uchar *Buffer,uchar N,uchar Time) //流動顯示N個漢字,三個參數(shù):字符串字模首地址、字?jǐn)?shù)、顯示流動速度<
22、/p><p><b> { </b></p><p> uchar Num,i,j,row,pos; //循環(huán)變量:字?jǐn)?shù)計數(shù)、16次流動、16列掃描</p><p> for(Num=0;Num<N-1;Num++)</p><p><b> {</b></p&
23、gt;<p> for(i=0;i<16;i++) //字到字流動 16次左移才能完成</p><p><b> {</b></p><p> for(j=0;j<Time;j++) //顯示延遲,決定流動速度</p><p><b> {</b
24、></p><p> for(row=0;row<16;row++) //顯示16*16屏幕一次</p><p> {if(pos==0)</p><p><b> pos=0x01;</b></p><p> P0 =~*(Buffer+Num*32+(i+row)*2); //獲取
25、顯示數(shù)據(jù) 循環(huán)顯示關(guān)鍵算法</p><p> P3 =~*(Buffer+Num*32+(i+row)*2+1); //以移動偏移為基礎(chǔ)獲取新數(shù)據(jù)</p><p><b> if(row<8)</b></p><p> {P1=pos;//上半屏顯示,即顯示一個字的上半部</p><p>&l
26、t;b> P2=0x00;}</b></p><p><b> else</b></p><p> {P1=0x00;//下半屏顯示,即顯示一個字的下半部</p><p><b> P2=pos;}</b></p><p><b> pos<&
27、lt;=1;</b></p><p><b> delay(3);</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><
28、;b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> { </b></p><p><b> n=1;</b></p><p><b>
29、while(1)</b></p><p><b> {</b></p><p> if(sw1==1)</p><p><b> { </b></p><p> if(sw2==0) //第一次按下KEY鍵 </p><p>&l
30、t;b> {</b></p><p> while(sw2==0){};</p><p><b> n=~n;</b></p><p><b> }</b></p><p> while(n==0)</p><p><b> {<
31、/b></p><p> XIANSHI(code2,3,5);//流動顯示N個漢字</p><p> delay(100);</p><p> if(sw2==0)//再次按下KEY鍵 </p><p><b> {</b></p><p> while(sw2
32、==0){};</p><p><b> n=~n;</b></p><p><b> }</b></p><p><b> }</b></p><p> XIANSHI(code1,4,5);//流動顯示N個漢字</p><p> dela
33、y(100); </p><p><b> }</b></p><p> if (sw1==0){}</p><p><b> }</b></p><p><b> }</b></p><p><b> 具體實現(xiàn)步驟:</b&
34、gt;</p><p> ?、?打開桌面上的KEIL軟件</p><p> ?、?新建一個工程文件,完成其命名并保存</p><p> ?、?為工程選一個目標(biāo)器件(如AT-89C51)</p><p> ?、?創(chuàng)建源程序文件并輸入程序代碼并保存(后綴名為.C)</p><p> ?、?把源文件添加到項目中(即添加源代碼
35、組)</p><p> ?、?為工程項目設(shè)置軟硬件環(huán)境</p><p> ?、?編譯項目文件(生成.HEX文件)</p><p><b> ?、?軟件的相關(guān)調(diào)試</b></p><p><b> ?、?連接好硬件電路</b></p><p> ?、?打開桌面的下載軟件(STC
36、-ISC)燒寫程序,添加生成的.HEX文件,點擊下載按鈕(確保下載前關(guān)閉實驗箱的電源)經(jīng)提示后再完成上電操作,如此即可觀看到滾屏的效果。</p><p><b> 實際效果:</b></p><p><b> 課程設(shè)計心得:</b></p><p> 這次的實訓(xùn)雖然只有短短的一周時間,可我們學(xué)到的卻遠(yuǎn)遠(yuǎn)超過我們平時一
37、周所學(xué)到的知識,這次的課程設(shè)計以實現(xiàn)在16*16的LED屏上滾動顯示漢字或字符為主線,融入了各種基礎(chǔ)的知識和實踐經(jīng)驗。再拓展到個許多計算機(jī)知識,中編程的工作量是最大的,最浪費(fèi)精力的,也是最重要的。</p><p> 這次課程設(shè)計的過程編程給我留下了深刻的印象,記得剛開始時大家聽老師講好像很簡單,可當(dāng)老師讓我們自己動手編時大家才發(fā)現(xiàn)了大量的問題,不經(jīng)過老師的講解和示范我們很難完成?,F(xiàn)在我們每個人都能編寫相應(yīng)的程序
38、了。</p><p> 通過這一周的課程設(shè)計我深刻體會到了單片機(jī)應(yīng)用技術(shù)時一門實踐性很強(qiáng)的課程,既要掌握概念,又要動手實踐,通過短短一周的時間我對單片機(jī)應(yīng)用技術(shù)有了更為詳細(xì)地了解,解決我以前的許多困惑,我以我最大的能力和端正的態(tài)度完成了這門課程設(shè)計。因此我將會盡我最大的努力將所學(xué)到的知識運(yùn)用到其他更多的地方進(jìn)行實踐和更好的掌握。</p><p><b> 補(bǔ)充:</b&
39、gt;</p><p> 如需實現(xiàn)上下滾動的話源代碼如下:</p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> uchar code Code1[]=</p><p><b> {</b
40、></p><p> 0x14,0x20,0x24,0x10,0x44,0x4C,0x84,0x43,0x64,0x43,0x1C,0x2C,0x20,0x20,0x18,0x10,</p><p> 0x0F,0x0C,0xE8,0x03,0x08,0x06,0x08,0x18,0x28,0x30,0x18,0x60,0x08,0x20,0x00,0x00,/*"歡&
41、quot;,0*/</p><p> 0x40,0x40,0x41,0x20,0xCE,0x1F,0x04,0x20,0x00,0x40,0xFC,0x47,0x04,0x42,0x02,0x41,</p><p> 0x02,0x40,0xFC,0x5F,0x04,0x40,0x04,0x42,0x04,0x44,0xFC,0x43,0x00,0x40,0x00,0x00,/*&qu
42、ot;迎",1*/</p><p> 0x80,0x00,0x40,0x20,0x30,0x38,0xFC,0x03,0x03,0x38,0x90,0x40,0x68,0x40,0x06,0x49,</p><p> 0x04,0x52,0xF4,0x41,0x04,0x40,0x24,0x70,0x44,0x00,0x8C,0x09,0x04,0x30,0x00,0x00/
43、*"您",2*/</p><p><b> };</b></p><p> void delay(int ms)</p><p><b> {</b></p><p><b> int i;</b></p><p> whi
44、le(ms--)</p><p> for(i=0;i<40;i++);// 調(diào)整for循環(huán)控制變量大小可改變延時時長</p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><
45、p> int i,j,k;</p><p> unsigned char pos;</p><p><b> j = 0;</b></p><p> pos = 0x01;</p><p><b> while(1)</b></p><p><b>
46、 {</b></p><p> pos = 0x01;// 初始狀態(tài),顯示第一行</p><p> for(k=0;k<96;k=k+2)</p><p><b> {</b></p><p><b> j=k;</b></p>&
47、lt;p> for(i=0;i<16;i++)// 共有16行,依次顯示</p><p><b> {</b></p><p> if(pos == 0) pos = 0x01;</p><p> if(j>95) j=j-96;</p><p> P1 = Code1[j++]
48、;// 讀取一行漢字點陣數(shù)據(jù)(2字節(jié),16位)</p><p> P2 = Code1[j++];</p><p> if(i<8)// 顯示上半部分</p><p><b> {</b></p><p> P0 = ~pos; </p><p><b&g
49、t; delay(1);</b></p><p> P3 = 0xff;</p><p><b> }</b></p><p> else // 顯示下半部分</p><p><b> {</b></p><p> P0 = 0xff;&
50、lt;/p><p> P3 = ~pos;</p><p><b> delay(1);</b></p><p><b> }</b></p><p> pos <<= 1;</p><p><b> delay(2);</b>&l
51、t;/p><p><b> }</b></p><p> //LEDDelay(20);</p><p> //LEDDelay(1000);</p><p><b> }</b></p><p><b> }</b></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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計--點陣led電子顯示屏
- 單片機(jī)課程設(shè)計---點陣led電子顯示屏
- 單片機(jī)課程設(shè)計---led點陣電子顯示屏的設(shè)計
- 單片機(jī)課程設(shè)計之led點陣電子顯示屏設(shè)計
- led顯示屏單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計---點陣電子顯示屏設(shè)計
- 基于單片機(jī)的led點陣顯示屏設(shè)計
- led點陣顯示屏課程設(shè)計
- 單片機(jī)課程設(shè)計---液晶點陣顯示屏程序設(shè)計
- 基于單片機(jī)的led點陣電子顯示屏設(shè)計
- 基于單片機(jī)的LED點陣顯示屏設(shè)計定稿.doc
- 基于單片機(jī)的LED點陣顯示屏設(shè)計初稿.doc
- 單片機(jī)課程設(shè)計---led點陣屏滾動
- 單片機(jī)課程設(shè)計lcd顯示屏設(shè)計
- 單片機(jī)課程設(shè)計----led點陣漢字顯示
- 單片機(jī)課程設(shè)計報告——點陣式液晶顯示屏的顯示程序設(shè)計
- 基于51單片機(jī)的led點陣顯示屏
- led顯示屏單片機(jī)課程設(shè)計說明書
- 基于51單片機(jī)控制的點陣led電子顯示屏設(shè)計
- 課程設(shè)計---點陣led圖文顯示屏的設(shè)計
評論
0/150
提交評論