版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《 嵌入式系統(tǒng)原理 》</p><p><b> 課程設(shè)計(jì)說(shuō)明書</b></p><p> 題 目: 點(diǎn)陣LED圖文顯示屏的設(shè)計(jì) </p><p> 院 (系): 計(jì)算機(jī)與電子系 </p><p> 專業(yè)班級(jí):
2、 </p><p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 20 11 年 12 月 30 日至
3、20 12 年 1 月 13 日</p><p> 嵌入式系統(tǒng)原理 課程設(shè)計(jì)任務(wù)書</p><p><b> 目 錄</b></p><p> 1.設(shè)計(jì)概述………………………………………………………………………………… 頁(yè)碼</p><p> 1.1設(shè)計(jì)目的與意義………………………………………………
4、……………………… 頁(yè)碼</p><p> 1.2系統(tǒng)功能要求……………………………………………………………………… 頁(yè)碼</p><p> 2.方案設(shè)計(jì)……………………………………………………………………………… 頁(yè)碼</p><p> 2.1設(shè)計(jì)思路…………………………………………………………………………… 頁(yè)碼</p>
5、<p> 2.2設(shè)計(jì)選材…………………………………………………………………………… 頁(yè)碼</p><p> 2.3點(diǎn)陣顯示……………………………………………………………………… 頁(yè)碼</p><p> 3.硬件設(shè)計(jì)部分及功能………………………………………………………………… 頁(yè)碼</p><p> 3.1最小系統(tǒng)…………
6、………………………………………………………………………</p><p> 3.2電路仿真圖…………………………………………………………………………</p><p> 3.3電路焊接……………………………………………………………………………</p><p> 4.軟件設(shè)計(jì)部分及功能………………………………………………………………………頁(yè)碼</p>
7、<p> 4.1程序初步思路……………………………………………………………………………</p><p> 4.2具體功能程序……………………………………………………………………………</p><p> 4.2.1獨(dú)立按鍵識(shí)別程序…………………………………………………………………</p><p> 4.2.2點(diǎn)陣的顯示程序……………………………………
8、……………………………</p><p> 4.2.3點(diǎn)陣的左移程序…………………………………………………………………</p><p> 4.2.4總體功能程序…………………………………………………………………</p><p> 5.設(shè)計(jì)總結(jié)…………………………………………………………………………………</p><p><b>
9、 1.設(shè)計(jì)概述</b></p><p> 1.1設(shè)計(jì)目的與意義</p><p> 點(diǎn)陣LED顯示屏是一種通過(guò)控制半導(dǎo)體發(fā)光二極管的顯示方式,用來(lái)顯示文字、圖形、圖像、動(dòng)畫、行情、視頻、錄像信號(hào)等各種信息的顯示屏幕。它具有亮度高、工作電壓低、功耗小、微型化、易與集成電路匹配、驅(qū)動(dòng)簡(jiǎn)單、壽命長(zhǎng)、耐沖擊、性能穩(wěn)定的眾多優(yōu)點(diǎn)。因此通過(guò)點(diǎn)陣顯示屏的設(shè)計(jì)能非常好地將所學(xué)知識(shí)與實(shí)際應(yīng)用
10、結(jié)合起來(lái),同時(shí)還能加強(qiáng)動(dòng)手實(shí)踐能力,為今后的工作打下扎實(shí)的基礎(chǔ)。除此之外,這次的課程設(shè)計(jì)使我自己的設(shè)計(jì)思想有了深刻的體會(huì)和變化,感覺到真是一份耕耘一分收獲。</p><p><b> 1.2系統(tǒng)功能要求</b></p><p> 采用單片機(jī)作為控制核心,采用多塊8x8點(diǎn)陣LED模塊級(jí)聯(lián)構(gòu)成圖文顯示屏,能滾動(dòng)顯示顯示圖形和文字。</p><p&g
11、t; 設(shè)計(jì)矩陣鍵盤或獨(dú)立按鍵進(jìn)行顯示功能控制,要求可以通過(guò)鍵盤輸入來(lái)選擇顯示內(nèi)容、圖形和文字的靜止\左移或右移的功能、左移或右移的頻率等。</p><p> 顯示圖形和文字應(yīng)清晰穩(wěn)定無(wú)串?dāng)_,LED顯示屏各點(diǎn)的亮度要均勻、充足。</p><p><b> 2.方案設(shè)計(jì)</b></p><p><b> 2.1設(shè)計(jì)思路</b
12、></p><p> 采用四個(gè)8*8的點(diǎn)陣級(jí)聯(lián)制作成一個(gè)6*16的點(diǎn)陣,單片機(jī)選用STC89C52,16*16的點(diǎn)陣有16條行選擇線和16條列選擇線,而單片機(jī)STC89C52的P0,P1,P2,P3總共可提供32個(gè)輸出,而后面IO口還要連接鍵盤,所以,不能夠?qū)⑿羞x與列選線都直接連在32個(gè)輸出上,為節(jié)省端口,選用一個(gè)74LS154,即四—十六線譯碼器,這樣只需將單片機(jī)的四個(gè)輸出與譯碼器的四個(gè)輸入相連就可應(yīng)控
13、制16條線,掃描采用列掃描,所以譯碼器的16個(gè)輸出與16條列選擇線相連,而P1,P2與16條行選擇線相連,因?yàn)辄c(diǎn)陣實(shí)際上是發(fā)光三極管的相連,要同時(shí)驅(qū)動(dòng)多個(gè)發(fā)光三極管需要一定的電流,而單片機(jī)的一個(gè)引腳輸出電流還不足夠驅(qū)動(dòng)多個(gè)發(fā)光三極管所以需要一個(gè)驅(qū)動(dòng)電路,驅(qū)動(dòng)電路可以用三極管的放大作用,也可以用反相器,本次實(shí)驗(yàn)中選用反相器。綜上所述,需要的器材有一片STC89C52芯片,一片74LS154芯片,反相器選擇74LS04,一個(gè)74LS04可以
14、連接六條行選擇線,所以需要三個(gè)74LS04,單片機(jī)的P1口還要連接一個(gè)排阻,同時(shí)為方便連線需要排陣和排插,還需要導(dǎo)線若干,最后還需要電木板兩塊,一塊板子上焊接最小系統(tǒng)及外圍的</p><p><b> 2.2設(shè)計(jì)選材</b></p><p><b> 萬(wàn)用電木板,2片;</b></p><p> STC89C52芯片
15、,1片;</p><p> 74LS154芯片,1片;</p><p> 74LS04芯片,3片;</p><p> 40腳插座(配合STC89C52)一個(gè),14腳插座3個(gè)(配合74LS04),24腳插座1個(gè)(配合74LS154);</p><p><b> 排阻1個(gè);</b></p><p&
16、gt; 排針,排插,導(dǎo)線若干;</p><p><b> 8*8點(diǎn)陣4個(gè)。</b></p><p><b> 2.3點(diǎn)陣顯示</b></p><p> 通過(guò)4個(gè)8*8的的點(diǎn)陣級(jí)聯(lián)形成一個(gè)16*16的點(diǎn)陣8*8的</p><p> 點(diǎn)陣的相關(guān)資料與引腳如圖1</p><p
17、><b> 圖1</b></p><p> 由上圖可以知道點(diǎn)陣的行線與列線引腳不是按順序排列的,也不是單獨(dú)在一邊。所以連接要特別注意,級(jí)聯(lián)的方式:將4個(gè)點(diǎn)陣按同一順序排成一個(gè)大的16*16點(diǎn)陣。橫向行線引腳相連,豎向列線引腳相連。</p><p> 3.硬件設(shè)計(jì)部分及功能</p><p><b> 3.1最小系統(tǒng)<
18、/b></p><p> 最小系統(tǒng)在整個(gè)電路中是極其重要的,最小系統(tǒng)如果出現(xiàn)問(wèn)題,會(huì)導(dǎo)致整個(gè)電路出現(xiàn)嚴(yán)重問(wèn)題,使真?zhèn)€電路完全不能工作。</p><p> 制作一個(gè)單片機(jī)最小系統(tǒng),達(dá)到如下基本要求: 1.具有上電復(fù)位和手動(dòng)復(fù)位功能。</p><p> 2.使用單片機(jī)片內(nèi)程序存儲(chǔ)器。</p><p> 3.具有基本的人
19、機(jī)交互接口。按鍵輸入、LED顯示功能。</p><p> 4.具有一定的可擴(kuò)展性,單片機(jī)I/O口可方便地與其他電路板連接。</p><p> 最小系統(tǒng)需要具備復(fù)位電路,時(shí)鐘電路,電源;</p><p> 最小系統(tǒng)電路圖如圖2所示:</p><p><b> 圖2</b></p><p>&
20、lt;b> 3.2電路仿真圖</b></p><p><b> 圖3</b></p><p><b> 3.3電路焊接</b></p><p> 根據(jù)上面的電路模塊將各個(gè)模塊焊接起來(lái)。每焊接好一個(gè)模塊就要將模塊的功能測(cè)試一下,看一看這個(gè)模塊的功能是否正常,如果不正常要馬上檢查,直到確認(rèn)功能正常再焊
21、接下一個(gè)模塊,最后將所有的模塊連接起來(lái),形成整體的電路,再檢查整體的功能是否正常,為下一步軟件測(cè)試打下基礎(chǔ),相對(duì)來(lái)說(shuō)這樣的焊接方法可以節(jié)省很多的時(shí)間。</p><p> 4.軟件設(shè)計(jì)部分及功能</p><p><b> 4.1程序初步思路</b></p><p> 實(shí)驗(yàn)的要求是采用單片機(jī)作為控制核心,采用多塊8x8點(diǎn)陣LED模塊級(jí)聯(lián)構(gòu)成圖
22、文顯示屏,能滾動(dòng)顯示顯示圖形和文字。設(shè)計(jì)矩陣鍵盤或獨(dú)立按鍵進(jìn)行顯示功能控制,要求可以通過(guò)鍵盤輸入來(lái)選擇顯示內(nèi)容、圖形和文字的靜止\左移或右移的功能、左移或右移的頻率等。</p><p> 要顯示圖文就要不斷地對(duì)點(diǎn)陣進(jìn)行掃描,所以必須要有一個(gè)顯示的函數(shù),不斷對(duì)行列進(jìn)行掃描,但這樣還只能夠現(xiàn)實(shí)顯示固定的圖文,不能夠顯示動(dòng)態(tài)的圖文,要顯示動(dòng)態(tài)的圖文,還要設(shè)計(jì)一個(gè)數(shù)據(jù)的緩沖區(qū),通過(guò)按一定的規(guī)律不斷地改變緩沖區(qū)內(nèi)部的數(shù)據(jù)
23、,再通過(guò)數(shù)據(jù)的掃描就可以顯示出動(dòng)態(tài)的圖文,而如果要用鍵盤控制顯示內(nèi)容、圖形和文字的靜止\左移或右移的功能、左移或右移的頻率等,可以將鍵盤連接在單片機(jī)的P3口,通過(guò)不斷查詢的方式來(lái)接受控制顯示信號(hào)。</p><p><b> 4.2具體功能程序</b></p><p> 4.2.1獨(dú)立按鍵識(shí)別程序原理</p><p> //獨(dú)立鍵盤的識(shí)別程
24、序</p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit P24=P2^4;</p><p> sbit P30=P3^0;&
25、lt;/p><p> sbit P31=P3^1;</p><p> sbit P32=P3^2;//位重新定義</p><p> void delay(uint i);</p><p> uchar keydect(void);</p><p> void main(void)</p><p
26、><b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> P0=0xf0|keydect();</p><p><b> }</b></p><
27、p><b> }</b></p><p> void delay(uint i)</p><p><b> {</b></p><p> while(i--);</p><p><b> }</b></p><p> //獨(dú)立鍵盤檢測(cè)函
28、數(shù)</p><p> uchar keydect(void)</p><p><b> {</b></p><p> uchar keytemp=0;</p><p> P24=0;//電路中將P2^4電平拉低</p><p> if((P2&0x0f)!=0x0f)</p
29、><p><b> {</b></p><p> keytemp=P2&0x0f;</p><p> delay(2000);//延時(shí)消抖</p><p> if((P2&0x0f)==keytemp)</p><p><b> {</b></p&
30、gt;<p> return(keytemp);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> return(0xff);</p><p>
31、;<b> }</b></p><p><b> }</b></p><p> return(0xff);</p><p><b> }</b></p><p> 4.2.2點(diǎn)陣的顯示程序</p><p> void display(ucha
32、r * dat)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0;i<16;i++)</p><p><b> {</b></p><p> P2=*dat++;
33、</p><p> P0=*dat++;</p><p><b> delay(3);</b></p><p><b> P1=i;</b></p><p> delay(200);</p><p><b> P1=0xff;</b></
34、p><p><b> }</b></p><p><b> }</b></p><p> 4.2.3點(diǎn)陣的左移程序</p><p> void moveleft(uint row)</p><p> {//uchar diaplaybuff[32];</p>
35、;<p><b> uchar i;</b></p><p> row=row*2;</p><p> for(i=0;i<32;i++)</p><p><b> {</b></p><p> if(row+1>maxrow)</p><p&
36、gt; displaybuff[i]=displaydata[row+1-maxrow];</p><p><b> else </b></p><p> displaybuff[i]=displaydata[row+i];</p><p><b> }</b></p><p><b&
37、gt; }</b></p><p> 4.2.4點(diǎn)陣的上移程序</p><p> void moveup(beginrow)</p><p><b> {</b></p><p> uchar i,step;</p><p><b> uint tmp;</
38、b></p><p> tmp=beginrow/16;</p><p> step=beginrow%16;</p><p> for(i=0;i<32;i=i+2)</p><p><b> {</b></p><p> if(step<8)</p>
39、<p><b> {</b></p><p> displaybuff[i]=(displaydata[tmp*32+i]<<step)||</p><p> (displaydata[tmp*32+i]>>(8-step));</p><p> displaybuff[i+1]=(displaydat
40、a[tmp*32+i+1]<<step)||</p><p> (displaydata[tmp*32+i+32]>>(8-step));</p><p><b> }</b></p><p><b> else</b></p><p> { displaybuff
41、[i]=(displaydata[tmp*32+i+1]<<(step-8))||</p><p> (displaydata[tmp*32+i+32]>>(16-step));</p><p> displaybuff[i+1]=(displaydata[(tmp+1)*32+i]<<(step-8))||</p><p>
42、 (displaydata[tmp*32+i+1]>>(16-step));</p><p><b> }</b></p><p><b> }</b></p><p> 4.2.5整體的程序</p><p> #include<reg52.h></p>
43、<p> #defineuchar unsigned char</p><p> #define uint unsigned int</p><p> #define SEL P1 //行選線,P3 低四位</p><p> #define UP8 P0 //點(diǎn)陣文字上8行IO</p><p>
44、#define DOWN8 P2 //點(diǎn)陣文字下8行IO</p><p><b> uint k;</b></p><p> uint count=1;</p><p> uint keyvalue0;</p><p> uint keyvalue1;</p><p> sbit
45、 P31=P3^1;</p><p> sbit P30=P3^0;</p><p> uchar maxrow=160;</p><p> uchar speed=8;</p><p> uchar displaybuff[32];</p><p> uchar code hanzi[32],hanzi1[
46、32],hanzi2[32],hanzi3[32];</p><p> uchar code hanzi4[32],hanzi5[32],hanzi6[32];</p><p> uchar code fuhao[32],fuhao1[32],fuhao2[32];</p><p> uchar code displaydata[]=</p>
47、<p><b> { </b></p><p> 0xFF,0xFF,0xFF,0xFF,0x07,0xE0,</p><p> 0x77,0xF7,0x77,0xF7,0x77,0xF7,</p><p> 0x77,0xF7,0x00,0x80,0x77,0x77,</p><p> 0x77
48、,0x77,0x77,0x77,0x77,0x77,</p><p> 0x07,0x60,0xFF,0x7F,0xFF,0x0F,</p><p> 0xFF,0xFF,/*"電",0*/</p><p> 0x7F,0xFF,0x7D,0xFF,0x7D,0xFF,</p><p> 0x7D,0xFF,0x7
49、D,0xFF,0x7D,0xBF,</p><p> 0x7D,0x7F,0x1D,0x80,0x5D,0xFF,</p><p> 0x6D,0xFF,0x75,0xFF,0x79,0xFF,</p><p> 0x7D,0xFF,0x7F,0xFF,0x7F,0xFF,</p><p> 0xFF,0xFF,/*"子&q
50、uot;,0*/</p><p> 0xDB,0xF7,0xDB,0xF9,0x5B,0xFE,</p><p> 0x01,0x00,0x5C,0xFF,0xDD,0xFE,</p><p> 0xFF,0xFB,0xDD,0xFB,0x33,0xFB,</p><p> 0xFF,0xFB,0xFF,0xFB,0x00,0x00,
51、</p><p> 0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,</p><p> 0xFF,0xFF,/*"科",0*/ </p><p> 0xBF,0xFB,0xCF,0xFB,0xEE,0xFB,</p><p> 0x69,0xFB,0x6F,0xFB,0x6F,0xBB,</p&g
52、t;<p> 0x6E,0x7B,0x69,0x81,0x6F,0xF9,</p><p> 0x6F,0xFA,0x67,0xFB,0xEB,0xFB,</p><p> 0xEC,0xFB,0xAF,0xFB,0xCF,0xFB,</p><p> 0xFF,0xFF,/*"學(xué)",1*/</p><p
53、> 0xFF,0xF7,0xFF,0xF7,0x1F,0xF7,</p><p> 0x60,0xF7,0x77,0xF7,0x77,0xF7,</p><p> 0x77,0xF7,0x77,0xF7,0x77,0xF7,</p><p> 0x77,0xB7,0x77,0x7F,0x77,0xBF,</p><p> 0x
54、77,0xC0,0xF7,0xFF,0xFF,0xFF,</p><p> 0xFF,0xFF,/*"與",2*/ </p><p> 0xEF,0xFB,0xEF,0xBB,0xEF,0x7D,</p><p> 0x00,0x80,0xEF,0xFE,0x6F,0x7F,</p><p> 0xF7,0x7F,
55、0x77,0xBF,0x77,0xBC,</p><p> 0x77,0xD3,0x00,0xEF,0x77,0xD7,</p><p> 0x77,0xB9,0x77,0x7E,0xF7,0x7F,</p><p> 0xFF,0xFF,/*"技",3*/ </p><p> 0xFF,0xEF,0xEF,0xF
56、7,0xEF,0xFB,</p><p> 0xEF,0xFD,0xEF,0xFE,0x2F,0xFF,</p><p> 0xCF,0xFF,0x00,0x00,0xCF,0xFF,</p><p> 0x2F,0xFF,0xED,0xFE,0xE3,0xFD,</p><p> 0xEF,0xFB,0xEF,0xF7,0xFF,0
57、xEF,</p><p> 0xFF,0xFF,/*"術(shù)",4*/</p><p> 0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,</p><p> 0x07,0xC0,0x07,0xC0,0xF7,0xDF,</p><p> 0xF7,0xDF,0xFF,0xDF,0xFF,0xDF,</
58、p><p> 0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,</p><p> 0xFF,0xDF,0xFF,0xCF,0xFF,0xF7,</p><p> 0xFF,0xFF,/*"L",0*/</p><p> 0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,</p>&l
59、t;p> 0x07,0xC0,0x07,0xC0,0x77,0xDF,</p><p> 0x77,0xDF,0x77,0xDF,0x77,0xDF,</p><p> 0x77,0xDF,0x77,0xDF,0x17,0xDC,</p><p> 0xF7,0xCF,0xE7,0xCF,0xEF,0xF7,</p><p>
60、 0xFF,0xFF,/*"E",1*/</p><p> 0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,</p><p> 0x07,0xC0,0x07,0xC0,0xF7,0xDF,</p><p> 0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,</p><p> 0xF7,0xD
61、F,0xE7,0xCF,0xEF,0xEF,</p><p> 0xCF,0xE7,0x1F,0xF0,0x3F,0xF8,</p><p><b> 0xFF,0xFF</b></p><p><b> };</b></p><p> void delay(uchar delaytime)
62、</p><p><b> {</b></p><p> while(delaytime--);</p><p><b> }</b></p><p> void option1(void)</p><p> {uchar i;</p><p&
63、gt;<b> uint j;</b></p><p> uint value=1;</p><p> uchar code hanzi[]=</p><p> { 0xFF,0xFF,0xFF,0xFF,0x07,0xE0,</p><p> 0x77,0xF7,0x77,0xF7,0x77,0xF7,&l
64、t;/p><p> 0x77,0xF7,0x00,0x80,0x77,0x77,</p><p> 0x77,0x77,0x77,0x77,0x77,0x77,</p><p> 0x07,0x60,0xFF,0x7F,0xFF,0x0F,</p><p> 0xFF,0xFF};/*"電",0*/</p>
65、<p> uchar code hanzi1[]=</p><p> {0x7F,0xFF,0x7D,0xFF,0x7D,0xFF,</p><p> 0x7D,0xFF,0x7D,0xFF,0x7D,0xBF,</p><p> 0x7D,0x7F,0x1D,0x80,0x5D,0xFF,</p><p> 0x6
66、D,0xFF,0x75,0xFF,0x79,0xFF,</p><p> 0x7D,0xFF,0x7F,0xFF,0x7F,0xFF,</p><p> 0xFF,0xFF};/*"子",0*/</p><p> uchar code hanzi2[]=</p><p> {0xDB,0xF7,0xDB,0xF9,
67、0x5B,0xFE,</p><p> 0x01,0x00,0x5C,0xFF,0xDD,0xFE,</p><p> 0xFF,0xFB,0xDD,0xFB,0x33,0xFB,</p><p> 0xFF,0xFB,0xFF,0xFB,0x00,0x00,</p><p> 0xFF,0xFD,0xFF,0xFD,0xFF,0xF
68、D,</p><p> 0xFF,0xFF};/*"科",0*/</p><p> uchar code hanzi3[]=</p><p> {0xBF,0xFB,0xCF,0xFB,0xEE,0xFB,</p><p> 0x69,0xFB,0x6F,0xFB,0x6F,0xBB,</p><
69、;p> 0x6E,0x7B,0x69,0x81,0x6F,0xF9,</p><p> 0x6F,0xFA,0x67,0xFB,0xEB,0xFB,</p><p> 0xEC,0xFB,0xAF,0xFB,0xCF,0xFB,</p><p> 0xFF,0xFF};/*"學(xué)",1*/</p><p>
70、uchar code hanzi4[]=</p><p> {0xFF,0xF7,0xFF,0xF7,0x1F,0xF7,</p><p> 0x60,0xF7,0x77,0xF7,0x77,0xF7,</p><p> 0x77,0xF7,0x77,0xF7,0x77,0xF7,</p><p> 0x77,0xB7,0x77,0x
71、7F,0x77,0xBF,</p><p> 0x77,0xC0,0xF7,0xFF,0xFF,0xFF,</p><p> 0xFF,0xFF};/*"與",2*/</p><p> uchar code hanzi5[]=</p><p> {0xEF,0xFB,0xEF,0xBB,0xEF,0x7D,<
72、/p><p> 0x00,0x80,0xEF,0xFE,0x6F,0x7F,</p><p> 0xF7,0x7F,0x77,0xBF,0x77,0xBC,</p><p> 0x77,0xD3,0x00,0xEF,0x77,0xD7,</p><p> 0x77,0xB9,0x77,0x7E,0xF7,0x7F,</p>
73、<p> 0xFF,0xFF};/*"技",3*/</p><p> uchar code hanzi6[]=</p><p> {0xFF,0xEF,0xEF,0xF7,0xEF,0xFB,</p><p> 0xEF,0xFD,0xEF,0xFE,0x2F,0xFF,</p><p> 0xCF,0
74、xFF,0x00,0x00,0xCF,0xFF,</p><p> 0x2F,0xFF,0xED,0xFE,0xE3,0xFD,</p><p> 0xEF,0xFB,0xEF,0xF7,0xFF,0xEF,</p><p> 0xFF,0xFF};/*"術(shù)",4*/</p><p> uchar code fuh
75、ao[]=</p><p> {0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,</p><p> 0x07,0xC0,0x07,0xC0,0xF7,0xDF,</p><p> 0xF7,0xDF,0xFF,0xDF,0xFF,0xDF,</p><p> 0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,&l
76、t;/p><p> 0xFF,0xDF,0xFF,0xCF,0xFF,0xF7,</p><p> 0xFF,0xFF};/*"L",0*/</p><p> uchar code fuhao1[]=</p><p> {0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,</p><p&g
77、t; 0x07,0xC0,0x07,0xC0,0x77,0xDF,</p><p> 0x77,0xDF,0x77,0xDF,0x77,0xDF,</p><p> 0x77,0xDF,0x77,0xDF,0x17,0xDC,</p><p> 0xF7,0xCF,0xE7,0xCF,0xEF,0xF7,</p><p> 0xFF
78、,0xFF};/*"E",1*/</p><p> uchar code fuhao2[]=</p><p> {0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,</p><p> 0x07,0xC0,0x07,0xC0,0xF7,0xDF,</p><p> 0xF7,0xDF,0xF7,0xDF,0
79、xF7,0xDF,</p><p> 0xF7,0xDF,0xE7,0xCF,0xEF,0xEF,</p><p> 0xCF,0xE7,0x1F,0xF0,0x3F,0xF8,</p><p> 0xFF,0xFF};/*"D",2*/</p><p> while(count)</p><p
80、> {while(value)</p><p><b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=
81、hanzi[i*2];</p><p> P2=hanzi[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b
82、></p><p><b> }</b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(v
83、alue)</p><p><b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=hanzi1[i*2];<
84、;/p><p> P2=hanzi1[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p>
85、;<p><b> }</b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(value)</p&g
86、t;<p><b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=hanzi2[i*2];</p><
87、p> P2=hanzi2[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p><p>&
88、lt;b> }</b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(value)</p><p>
89、<b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=hanzi3[i*2];</p><p> P2=han
90、zi3[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p><p><b> }&l
91、t;/b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(value)</p><p><b> {
92、</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=hanzi4[i*2];</p><p> P2=hanzi4[i*2+1];&l
93、t;/p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p><p><b> }</b></
94、p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(value)</p><p><b> {</b><
95、;/p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=hanzi5[i*2];</p><p> P2=hanzi5[i*2+1];</p><
96、;p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p><p><b> }</b></p><p&
97、gt;<b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(value)</p><p><b> {</b></p><
98、p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=hanzi6[i*2];</p><p> P2=hanzi6[i*2+1];</p><p><b&g
99、t; P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
100、 value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p><b> count--;</b></p><p><b> }</b></p><
101、;p> while(value)</p><p><b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=
102、fuhao[i*2];</p><p> P2=fuhao[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b
103、></p><p><b> }</b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(v
104、alue)</p><p><b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=fuhao1[i*2];<
105、;/p><p> P2=fuhao1[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p>
106、;<p><b> }</b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p> while(value)</p&g
107、t;<p><b> {</b></p><p> for(j=0;j<k;j++)</p><p> {for(i=0;i<16;i++)</p><p><b> {</b></p><p> P0=fuhao2[i*2];</p><
108、p> P2=fuhao2[i*2+1];</p><p><b> P1=i;</b></p><p> delay(220);</p><p><b> P1=0x9f;</b></p><p><b> }</b></p><p>&
109、lt;b> }</b></p><p><b> value=0;</b></p><p><b> }</b></p><p><b> value=1;</b></p><p><b> }</b></p>&
110、lt;p> //獨(dú)立鍵盤檢測(cè)函數(shù)</p><p> /*uchar keydect0(void)</p><p> { uchar keytemp=0;</p><p> //P24=0;//電路中將P2^4電平拉低</p><p> if((P31&&1)!=1)</p><p>&
111、lt;b> {</b></p><p> keytemp=P31&&1;</p><p> delay(2000);//延時(shí)消抖</p><p> if((P31&&1)==keytemp)</p><p><b> {</b></p><p
112、> return(keytemp);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> return(1);</p><p><b> }
113、</b></p><p><b> }</b></p><p> return(1);</p><p><b> }*/</b></p><p> unsigned char code FontData [5][32] = {</p><p> /*--
114、 文字: 生 --*/</p><p> /*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 --*/</p><p> 0xff,0x7f,0xef,0x3f,0xef,0x7f,0xef,0x77,0xe0,0x03,0xdf,0x7f,0xdf,0x7f,0xbf,0x77,</p><p> 0x60,0x03,0xff,0x
115、7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7b,0x80,0x01,0xff,0xff,</p><p> /*-- 文字: 日 --*/</p><p> /*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 --*/</p><p> 0xff,0xff,0xe0,0x0f,0xef,0xef,
116、0xef,0xef,0xef,0xef,0xef,0xef,0xe0,0x0f,0xef,0xef,</p><p> 0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xe0,0x0f,0xef,0xef,0xff,0xff,0xff,0xff,</p><p> /*-- 文字: 快 --*/</p><p> /*-
117、- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 --*/</p><p> 0xdf,0x7f,0x2f,0x7f,0xdf,0x7f,0xc8,0x07,0x57,0x77,0x57,0x77,0x5f,0x77,0xd0,0x01,</p><p> 0xdf,0x7f,0xde,0xbf,0xde,0xbf,0xde,0xdf,0xdd,0xef,0xdd,0x
118、e7,0xdb,0xf1,0xd7,0xfb,</p><p> /*-- 文字: 樂(lè) --*/</p><p> /*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 --*/</p><p> 0xff,0xcf,0xef,0x07,0xe0,0xff,0xef,0x7f,0xef,0x7f,0xef,0x7f,0xc0,0x03,
119、0xef,0x7f,</p><p> 0xf7,0x7f,0xf3,0x6f,0xe7,0x77,0xcf,0x73,0xdb,0x79,0xbd,0x7b,0xef,0xff,0xff,0xff</p><p><b> };</b></p><p> //unsigned char code FontData;</p>
120、<p> void Delay_50us(unsigned char t) //50us延時(shí)程序</p><p><b> {</b></p><p> unsigned char j; </p><p> for(;t>0;t--) </p><p> for(j=19;j&
121、gt;0;j--)</p><p><b> }</b></p><p> void DisNFont (unsigned char *FontBufferStart,unsigned char N,unsigned char Time) //流動(dòng)顯示N個(gè)漢字</p><p> { //參數(shù)三個(gè):字符串字模首地址、字?jǐn)?shù)、顯示流動(dòng)速度&
122、lt;/p><p> unsigned char FontNum,i,j,row; //循環(huán)變量,字?jǐn)?shù)計(jì)數(shù)、16次流動(dòng)、16列掃描</p><p> for(FontNum=0;FontNum<N-1;FontNum++)</p><p><b> {</b></p><p> for(i=0;i<
123、;16;i++) //字到字流動(dòng) 16次左移才能完成</p><p><b> {</b></p><p> for(j=0;j<Time;j++) //顯示延遲,決定流動(dòng)速度</p><p><b> {</b></p><p> for(row=0;row&l
124、t;16;row++) //顯示16*16屏幕一次</p><p><b> {</b></p><p> SEL = row; //選通顯示列</p><p> UP8 = *(FontBufferStart+FontNum*32+(i+row)*2+1); //獲取顯示數(shù)據(jù) 循環(huán)顯示關(guān)鍵算法</p>&
125、lt;p> DOWN8 = *(FontBufferStart+FontNum*32+(i+row)*2); //以移動(dòng)偏移為基礎(chǔ)獲取新數(shù)據(jù)</p><p> Delay_50us (15); //適當(dāng)延時(shí)</p><p> UP8 = 0x00; //關(guān)閉顯示</p><p> DOWN8 = 0x00;
126、 //關(guān)閉顯示 防止花屏</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
127、 }</b></p><p> void main()</p><p><b> { </b></p><p><b> while(1)</b></p><p><b> {k=30;</b></p><p> option1()
128、 ;</p><p><b> count=1;</b></p><p><b> k=15 ;</b></p><p> option1();</p><p><b> count=1;</b></p><p> DisNFont (Font
129、Data[0],5,20);</p><p><b> }</b></p><p><b> }</b></p><p><b> 5.設(shè)計(jì)總結(jié)</b></p><p> 這次課程設(shè)計(jì)我的收獲很大,第一塊板子焊完以后發(fā)現(xiàn)出錯(cuò)了,經(jīng)過(guò)檢查發(fā)現(xiàn)時(shí)三極管的極性接反了,結(jié)果就又
130、重新再焊。這一次我們吸取了上次的教訓(xùn),把系統(tǒng)分成好幾個(gè)功能模塊進(jìn)行焊接和測(cè)試,最后再順利把各個(gè)模塊搭接起來(lái)進(jìn)行調(diào)試,通過(guò)一次次的調(diào)試,我們終于實(shí)現(xiàn)了功能要求。自己的內(nèi)心也感到非常滿足,畢竟自己親手做出了成品。另外,我們的設(shè)計(jì)思想也有了非常深刻的變化和體會(huì),積累了許多寶貴的經(jīng)驗(yàn),我相信在以后的實(shí)踐任務(wù)中我們會(huì)更加出色。</p><p><b> 課程設(shè)計(jì)成績(jī)?cè)u(píng)定表</b></p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- led點(diǎn)陣顯示屏課程設(shè)計(jì)
- led點(diǎn)陣顯示屏設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--點(diǎn)陣led電子顯示屏
- 單片機(jī)課程設(shè)計(jì)---點(diǎn)陣led電子顯示屏
- 單片機(jī)課程設(shè)計(jì)---led點(diǎn)陣電子顯示屏的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)之led點(diǎn)陣電子顯示屏設(shè)計(jì)
- 16乘16led點(diǎn)陣電子顯示屏課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----led點(diǎn)陣顯示屏
- 畢業(yè)設(shè)計(jì)----led點(diǎn)陣顯示屏
- 單片機(jī)課程設(shè)計(jì)報(bào)告--- led點(diǎn)陣動(dòng)態(tài)顯示屏設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)---點(diǎn)陣電子顯示屏的設(shè)計(jì)
- led點(diǎn)陣顯示屏論文 led漢字點(diǎn)陣論文 led點(diǎn)陣顯示論文
- 課程設(shè)計(jì)--點(diǎn)陣式lcd液晶顯示屏設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---點(diǎn)陣電子顯示屏設(shè)計(jì)
- led顯示屏單片機(jī)課程設(shè)計(jì)
- led點(diǎn)陣顯示屏畢業(yè)設(shè)計(jì)文獻(xiàn)綜述
- eda(led點(diǎn)陣顯示屏控制系統(tǒng)設(shè)計(jì))
- 點(diǎn)陣式LED顯示屏的設(shè)計(jì)和實(shí)現(xiàn).pdf
- 基于單片機(jī)的led點(diǎn)陣顯示屏設(shè)計(jì)
- led顯示屏設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論