2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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><b>  1.引 言3</b></p><p>  1.1.設(shè)計(jì)意義3</p><p>  1.2.系統(tǒng)功能要求3</p><p>  1.3.本組成員所做的工作3</p><p>  2.

2、總體設(shè)計(jì)方案3</p><p>  3.設(shè)計(jì)原理分析7</p><p>  4.系統(tǒng)調(diào)試10</p><p>  5.設(shè)計(jì)總結(jié)12</p><p><b>  參考文獻(xiàn)12</b></p><p>  6.附 錄A;源程序13</p><p>  7.

3、附 錄B;原理圖18</p><p>  8.附 錄C;作品實(shí)物圖片19</p><p><b>  LED點(diǎn)陣的顯示</b></p><p><b>  班級(jí)姓名:</b></p><p>  摘要::LED顯示屏作為一種新型的顯示器件,是由多個(gè)發(fā)光二極管按矩陣形式排列封裝而成,通常用來顯示

4、時(shí)間、圖文等信息。本設(shè)計(jì)是基于ATS52單片機(jī)的16x16顯示屏,其中包含了硬件、軟件、調(diào)試等方案的設(shè)計(jì)。此外、該設(shè)計(jì)只需簡(jiǎn)單的級(jí)聯(lián)就能實(shí)現(xiàn)顯示屏的拓展,但級(jí)聯(lián)時(shí)要注意不要超過驅(qū)動(dòng)負(fù)載范圍。</p><p><b>  1 引言</b></p><p><b>  1.1設(shè)計(jì)意義</b></p><p>  LED顯示屏是

5、一種通過控制半導(dǎo)體發(fā)光二極管的顯示方式,用來顯示文字、圖形、圖像、動(dòng)畫、行情、視頻、錄像信號(hào)等各種信息的顯示屏幕。圖文顯示屏可與計(jì)算機(jī)同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計(jì)算機(jī)進(jìn)行控制,圖文、圖像并茂,以實(shí)時(shí)、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維動(dòng)畫、錄像、電視、VCD節(jié)目以及現(xiàn)場(chǎng)實(shí)況。LED顯示屏顯示畫面色彩鮮艷,立體感強(qiáng),靜如油畫,動(dòng)如電影,廣泛應(yīng)用于車站、碼頭、機(jī)場(chǎng)、商場(chǎng)、醫(yī)院、賓館、銀行、證券市場(chǎng)

6、、建筑市場(chǎng)、拍賣行、工業(yè)企業(yè)管理和其它公共場(chǎng)所。</p><p>  它的優(yōu)點(diǎn):亮度高、工作電壓低、功耗小、微型化、易與集成電路匹配、驅(qū)動(dòng)簡(jiǎn)單、壽命長(zhǎng)、耐沖擊、性能穩(wěn)定。</p><p><b>  1.2系統(tǒng)功能要求</b></p><p>  1.2.1、利用單片機(jī)控制雙色8×8LED點(diǎn)陣的顯示。先測(cè)試8×8LED點(diǎn)陣模

7、塊每個(gè)LED是否顯示正常,測(cè)試完成后,顯示廣東石油化工學(xué)院八個(gè)漢字,要求漢字循環(huán)向右移動(dòng)。</p><p>  1.2.2、所有的8×8LED全部顯示成紅色,接著熄滅所有LED;顯示廣東石油化工學(xué)院向右移動(dòng),直到全部溢出,然后熄滅所有LED;如此循環(huán)顯示。</p><p>  1.2.3、在8X8點(diǎn)陣式LED能顯示“★”、“●”和心形圖。</p><p>

8、<b>  1.3本組成員工作</b></p><p><b>  方案原理論證:</b></p><p><b>  焊接:</b></p><p><b>  調(diào)試:</b></p><p><b>  設(shè)計(jì)報(bào)告:</b><

9、/p><p><b>  2 總體設(shè)計(jì)方案</b></p><p><b>  2.1 設(shè)計(jì)思路</b></p><p>  圖文顯示一般有靜態(tài)和動(dòng)態(tài)顯示兩種方案,靜態(tài)方案雖然設(shè)計(jì)簡(jiǎn)單,但其使用的管腳太多,如本設(shè)計(jì)中16x16的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多的端口,如果我采用鎖存器來擴(kuò)展端口,按8位的鎖存器來

10、計(jì)算,16x16的點(diǎn)陣需要256/8=32個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)槲覀儍H僅是16x16的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個(gè)很龐大的數(shù)字。因此在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用另外一種稱為動(dòng)態(tài)掃描的顯示方法。</p><p>  動(dòng)態(tài)掃描的意思簡(jiǎn)單地說就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如16行)的同名列共用一套驅(qū)動(dòng)器。具體就16x16的點(diǎn)陣來

11、說,把所有同1行的發(fā)光管的陽極連在一起,把所有同1列的發(fā)光管的陰極連在一起(共陽極的接法),先送出對(duì)應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定時(shí)間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;以此類推,第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能夠看到顯示屏上穩(wěn)定的圖形了。</p><p>  

12、采用掃描方式進(jìn)行顯示時(shí),每一行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)驅(qū)動(dòng)器。顯示數(shù)據(jù)通常存儲(chǔ)在單片機(jī)的存儲(chǔ)器中,按8位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動(dòng)器上去,這就存在一個(gè)顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制電路到列驅(qū)動(dòng)器的數(shù)據(jù)傳輸可以采用并列方式或串行方式。顯然,采用并行方式時(shí),從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并列傳輸?shù)姆桨甘遣豢扇〉摹?lt;/p><p>

13、  采用串行傳輸?shù)姆椒?,控制電路可以只用一根信?hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都以傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。這樣,對(duì)于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩部分。對(duì)于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。&l

14、t;/p><p>  解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有所存功能。經(jīng)過上述分析,就可以歸納出列驅(qū)動(dòng)器電路應(yīng)具有的功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并處的移位功能;對(duì)于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一

15、行的列數(shù)據(jù),而不會(huì)影響本行的顯示</p><p><b>  2.2 設(shè)計(jì)方框圖</b></p><p>  2.3 主控制器STC89C52RC單片機(jī)簡(jiǎn)介</p><p>  STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得

16、STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作

17、。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6T/12T可選。</p><p>  和atmel的對(duì)比 </p><p>  STC89C52RC單片機(jī): </p><p>  8K字節(jié)程序存儲(chǔ)空間; </p><p>  512字節(jié)數(shù)據(jù)存儲(chǔ)空間; </p&

18、gt;<p>  內(nèi)帶4K字節(jié)EEPROM存儲(chǔ)空間; </p><p>  可直接使用串口下載; </p><p>  AT89S52單片機(jī): </p><p>  8K字節(jié)程序存儲(chǔ)空間; </p><p>  256字節(jié)數(shù)據(jù)存儲(chǔ)空間; </p><p>  沒有內(nèi)帶EEPROM存儲(chǔ)空間;</p&g

19、t;<p>  2.4 74HC595芯片</p><p>  74HC595是硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標(biāo)準(zhǔn)。 74HC595是具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。 移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。 數(shù)據(jù)在SHcp的上升沿輸入到移位寄存器中,在STcp的上升沿輸入到存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。 移位寄存

20、器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。</p><p>  8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關(guān)斷狀態(tài)。三態(tài)。</p><p>  2.5 8X8點(diǎn)陣</p><p>  一共64個(gè)發(fā)光點(diǎn)構(gòu)成,上下兩排引腳

21、,每排8個(gè),一共16個(gè)</p><p>  8X8點(diǎn)陣的顯示原理:</p><p>  8X8點(diǎn)陣共由64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是</p><p>  放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一行置1電平,某一列置0電平,則相應(yīng)的</p><p>  二極管就亮;如要將第一個(gè)點(diǎn)點(diǎn)亮,則1腳接高電平a腳接低電平,則第一個(gè)點(diǎn)就亮了;&l

22、t;/p><p>  如果要將第一行點(diǎn)亮,則第1腳要接高電平,而(a、b、c、d、e、f、g、h )</p><p>  這些引腳接低電平,那么第一行就會(huì)點(diǎn)亮;如要將第一列點(diǎn)亮,</p><p>  則第a腳接低電平,而(1、2、3、4、5、6、7、8)接高電平,那么第一列就會(huì)點(diǎn)亮.</p><p><b>  3 設(shè)計(jì)原理分

23、析</b></p><p><b>  3.1 硬件設(shè)計(jì)</b></p><p><b>  3.1.1電源部分</b></p><p>  3.1.2單片機(jī)系統(tǒng)</p><p>  常用的時(shí)鐘電路設(shè)計(jì)有兩種方式,一種是內(nèi)部時(shí)鐘方式,一種是外部時(shí)鐘方式。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,將XTAL

24、1(X1)與XTAL2(X2)之間跨接一個(gè)晶振和瓷片電容,從而構(gòu)成一個(gè)穩(wěn)定的自激震蕩器。電容值取22pF,其大小將影響震蕩頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為減少線間的寄生電容,晶振和電容應(yīng)盡能安裝得與單片機(jī)靠近,保證晶振穩(wěn)定可靠的工作。</p><p>  另一部分是復(fù)位部分。上電自動(dòng)復(fù)位電路是最簡(jiǎn)單的復(fù)位電路,只需要一個(gè)1K左右電阻、一個(gè)22pF左右的電容及12MHZ的晶振。有時(shí)還需要按鍵手動(dòng)復(fù)位,此

25、時(shí)只要在電容上并聯(lián)一個(gè)按鍵即可。電容一個(gè)為一般電容,一個(gè)為電解電容。</p><p><b>  3.1.3按鍵部分</b></p><p>  由于按鍵的封裝為四腳,為了布線,就把按鍵畫成左上角的樣子,再把兩邊相連,這是因?yàn)榘存I距離長(zhǎng)的一邊都是相通的,根據(jù)這個(gè)特性而畫出按鍵。另外,兩按鍵接的是外部中斷INT0和INT1。</p><p>&l

26、t;b>  3.1.4連接口</b></p><p>  左圖為與8X8LED模塊的連接口,由于用到P1口,所以干脆全部口都引出來。</p><p>  3.1.5 8X8LED點(diǎn)陣模塊</p><p>  上圖就是8X8點(diǎn)陣驅(qū)動(dòng)模塊。</p><p>  各行的同名列共用一個(gè)列驅(qū)動(dòng),數(shù)據(jù)通常存儲(chǔ)在單片機(jī)的存儲(chǔ)器中,按8位

27、一個(gè)字節(jié)的形式存放。由于列線過多,故多采用串行傳輸。由于每次要傳輸16位,而且數(shù)據(jù)要逐位輸給驅(qū)動(dòng)器,只有當(dāng)一行中各列數(shù)據(jù)都已傳輸?shù)轿缓?,這一行的各列才能進(jìn)行并行顯示,耗時(shí)較長(zhǎng)。為了滿足以上要求,驅(qū)動(dòng)選擇74LS595移位寄存器。移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。 數(shù)據(jù)在SCHcp的上升沿輸入,在STcp的上升沿進(jìn)入的存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。 移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)

28、串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。其特點(diǎn):8位串行輸入 /8位串行或并行輸出 存儲(chǔ)狀態(tài)寄存器,三種狀態(tài); 輸出寄存器可以直接清除 100MHz的移位頻率。輸出能力: 并行輸出,總線驅(qū)動(dòng);串行輸出;標(biāo)準(zhǔn)中等規(guī)模集成電路 。</p><p>  74HC595是一個(gè)串入并出的芯片,通過一個(gè)for(i=0;i

29、<8;i++)來存儲(chǔ)數(shù)據(jù)。</p><p>  具體來說就是第一個(gè)時(shí)鐘信號(hào)來到時(shí)低位的數(shù)據(jù)向高位挪動(dòng)一位,在這個(gè)程序中是SH_CK 信號(hào),當(dāng)SH_CLK 是一個(gè)上跳沿時(shí),傳入的形參dat與0x80相與,得到的數(shù)為1,則通過SDATA置1,否通過置為0,并存儲(chǔ)在SDATA的相應(yīng)位置(最低位)上,DS內(nèi)部也自動(dòng)左移一位數(shù)據(jù)然后dat向左移一位,使次高位變?yōu)樽罡呶慌c0x80相與,并存儲(chǔ)。通過8次后,就可以得到數(shù)據(jù)

30、,并存儲(chǔ)在SDTTA中了,</p><p>  這時(shí)ST_CK一個(gè)上跳沿,數(shù)據(jù)即送出去了。 </p><p><b>  4 軟件設(shè)計(jì)</b></p><p>  顯示屏軟件模塊:初始化程序、主程序、多字滾動(dòng)、顯示程序、掃描程序。顯示程序的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號(hào),使屏幕按設(shè)計(jì)的要求顯示。軟件設(shè)計(jì)中,顯示屏的軟件系統(tǒng)分為

31、兩層;第一層是底層的顯示驅(qū)動(dòng)程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動(dòng)程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號(hào)和其他控制信號(hào),配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動(dòng)器程序由定時(shí)器T0中斷程序?qū)崿F(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主程序來實(shí)現(xiàn)。</p><p>  4.1 74HC595驅(qū)動(dòng)</p><p>  /*----------------

32、----------------------------*/</p><p>  #ifndef __74HC595_H__</p><p>  #define __74HC595_H__</p><p>  /*--------------------------------------------*/</p><p>  sbit SD

33、 = P1^4;//串行數(shù)據(jù)輸入</p><p>  sbit ST_CK = P1^5;//存儲(chǔ)寄存器時(shí)鐘輸入</p><p>  sbit SH_CK = P1^6;//移位寄存器時(shí)鐘輸入</p><p>  /*--------------------------------------------*/</p><p><

34、;b>  //函數(shù)聲明</b></p><p>  void Ser_IN(unsigned char Data);//串行數(shù)據(jù)輸入</p><p>  void Par_OUT(void);//串行數(shù)據(jù)輸出</p><p>  /*--------------------------------------------*/</p

35、><p><b>  //串行數(shù)據(jù)輸入</b></p><p>  void Ser_IN(unsigned char Data)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i = 0; i <

36、 8; i++)</p><p><b>  {</b></p><p>  SH_CK = 0;</p><p>  SD = Data & 0x80;</p><p>  Data <<= 1;</p><p>  SH_CK = 1;</p><

37、p><b>  }</b></p><p><b>  }</b></p><p>  /*--------------------------------------------*/</p><p><b>  //并行數(shù)據(jù)輸出</b></p><p>  void P

38、ar_OUT(void)</p><p><b>  {</b></p><p>  ST_CK = 0;</p><p>  ST_CK = 1;</p><p><b>  }</b></p><p><b>  #endif</b></p&g

39、t;<p>  根據(jù)74HC595的功能表,就可以很容易寫出上面的頭文件。</p><p><b>  4.2 中斷</b></p><p>  4.2.1外部中斷0</p><p>  在該中斷中實(shí)現(xiàn)的功能為狀態(tài)跳轉(zhuǎn),用flag變量來實(shí)現(xiàn)。</p><p>  void ex0() interrupt 0

40、</p><p><b>  {</b></p><p>  if(INT0==0)</p><p><b>  {</b></p><p>  delay_ms(20);</p><p>  if(INT0==0)</p><p><b>

41、  {</b></p><p><b>  flag++;</b></p><p>  if(flag==4)</p><p><b>  flag=0;</b></p><p><b>  k=0;</b></p><p><b>

42、;  n=0;</b></p><p><b>  m=0;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>&l

43、t;b>  }</b></p><p><b>  4.2.2定時(shí)器0</b></p><p>  利用定時(shí)器0實(shí)現(xiàn)定時(shí)掃描。每1ms掃描一次。</p><p>  TH0=(65536-1000)/256=0xfc</p><p>  TL0=(65536-1000)%256=0x18</p&g

44、t;<p>  如上,為定時(shí)器初值計(jì)算方法。</p><p>  void t0() interrupt 1</p><p><b>  {</b></p><p>  TH0 = 0xfc; </p><p

45、>  TL0 = 0x18;</p><p>  display();</p><p><b>  }</b></p><p><b>  4.3顯示函數(shù)</b></p><p>  該函數(shù)用了Ser_IN(),Par_OUT(),函數(shù),在74HC595頭文件里有定義。</p>

46、<p>  該函數(shù)里還對(duì)速度進(jìn)行了控制。</p><p><b>  4.4 掃描壞點(diǎn)</b></p><p>  if(onlyone==0)</p><p><b>  {</b></p><p>  for(i=0; i<2; i++)</p><p>

47、<b>  {</b></p><p>  for(j=0; j<8; j++) //全亮</p><p><b>  {</b></p><p>  Ser_IN(0); //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(0xff);</p><p>  Pa

48、r_OUT();</p><p><b>  }</b></p><p>  delay_ms(2000);</p><p>  for(j=0; j<8; j++) //全滅</p><p><b>  {</b></p><p>  Ser_IN(0xff);

49、 //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(0);</p><p>  Par_OUT();</p><p><b>  }</b></p><p>  delay_ms(2000);</p><p><b>  }</b></p><p

50、><b>  TR0=1;</b></p><p>  onlyone++;</p><p><b>  }</b></p><p><b>  5 設(shè)計(jì)總結(jié)</b></p><p>  本次設(shè)計(jì)的8X8的點(diǎn)陣LED顯示,能夠在目測(cè)條件下LED顯示屏各點(diǎn)亮度充足,可顯示“

51、廣東石油化工學(xué)院”,也可顯示五角星,心形,還有圓形。顯示的圖形和文件較穩(wěn)定、清晰。“廣東石油化工學(xué)院”向右滾動(dòng)顯示。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡(jiǎn)單,容易實(shí)現(xiàn),性能穩(wěn)定可靠,成本低等特點(diǎn)。</p><p>  在此次設(shè)計(jì)中,我們得到以下體會(huì):</p><p>  在這次點(diǎn)陣設(shè)計(jì)的過程中,讓我進(jìn)一步熟悉Keil及DXP的使用。</p><p>  本次設(shè)計(jì)結(jié)果有個(gè)別點(diǎn)比較亮

52、,這應(yīng)該是點(diǎn)陣驅(qū)動(dòng)的問題,可待改進(jìn)。</p><p>  通過這次點(diǎn)陣設(shè)計(jì),從硬件上了解了STC89C52RC優(yōu)點(diǎn)。</p><p>  本次設(shè)計(jì)的“廣東石油化工學(xué)院”8字,除了“學(xué)院”兩字和圓形比較難顯示以外,其他的都很清晰,主要原因是8X8點(diǎn)陣分辨率不夠高,一共才64個(gè)點(diǎn)。本來打開用4個(gè)8X8集成一個(gè)16X16,但是由于個(gè)別原因,沒有改動(dòng)。</p><p>  

53、在后面的設(shè)計(jì)中,都沒有什么問題。在焊接方面,我們了解到焊接器件的步驟,而且要先消去電烙鐵的靜電,防止靜電對(duì)芯片特別是放大器件造成傷害,焊接二極管,三極管等元器件速度要快,防止持續(xù)高溫?fù)p壞元器件。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 劉欣銘,張廣斌.LED顯示屏技術(shù)綜述[J].黑龍江電力,2003, 25(4):294-296.&l

54、t;/p><p>  [2] 陽進(jìn).基于單片機(jī)的LED顯示屏的漢字顯示[J].中國(guó)科技信息,2005,(12):112.</p><p>  [3] Mark Nelson著.瀟湘工作室譯.串行通信開發(fā)指南[M].中國(guó)水利水電出版社,2002. </p><p>  [4] 王宜懷.單片機(jī)原理及其嵌入式應(yīng)用教程[M].北京希望電子出版社,2002. </p>

55、<p>  [5] 韓潤(rùn)萍,陳小萍.點(diǎn)陣LED顯示屏控制系統(tǒng)[J].微計(jì)算機(jī)信息,2003,19(10):50-51. </p><p>  6.附 錄A;源程序</p><p>  6.1 //8X8.C\\</p><p>  #include<reg52.h></p><p>  #include "

56、;74HC595.H"</p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  #define num sizeof(table)</p><p>  unsigned char code lie[]={0xfe,0x

57、fd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; </p><p>  unsigned char code table[]={</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x04,0x04,0x06,0x04,0x3c,0x40,0x00,/*"

58、廣"*/</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x70,0x12,0xfa,0x93,0x36,0xda,0x12,0x00,/*"東"*/</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</

59、p><p>  0xf2,0x92,0x92,0xf6,0x1a,0x62,0x82,0x00,/*"石"*/</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x7c,0x54,0x7f,0x54,0x7c,0x00,0x54,0x4a,/*"油"*/&l

60、t;/p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x62,0x44,0x68,0x3e,0x10,0x01,0x7e,0x04,/*"化"*/</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><

61、p>  0x00,0x40,0x44,0x44,0x7c,0x44,0x44,0x00,/*"工"*/</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x26,0x2b,0x3a,0xeb,0xaa,0x2b,0x06,0x00,/*"學(xué)"*/</p>&

62、lt;p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x80,0xf6,0x1a,0x3b,0x5a,0x84,0x1e,0xfe,/*"院"*/</p><p><b>  };</b></p><p>  unsigned char code tabl

63、e_xx[]={</p><p>  0xC4,0x6C,0x7E,0x3F,0x3F,0x7E,0x6C,0xC4,/*"星星"*/</p><p><b>  };</b></p><p>  unsigned char code table_yuan[]={</p><p>  0x00,0x1

64、8,0x3C,0x7E,0x7E,0x3C,0x18,0x00,/*"圓形"0*/</p><p><b>  };</b></p><p>  unsigned char code table_xin[]={</p><p>  0x1C,0x22,0x42,0x84,0x84,0x42,0x22,0x1C,/*"

65、;心形"0*/</p><p><b>  };</b></p><p>  uchar function=0;</p><p>  uchar k,onlyone,flag;</p><p>  uint m ,n;</p><p>  void delay_ms(uint xms)&

66、lt;/p><p><b>  {</b></p><p>  uint i, j;</p><p>  for(i=xms; i>0; i--)</p><p>  for(j=122; j>0; j--);</p><p><b>  }</b></p>

67、;<p>  void init()</p><p><b>  {</b></p><p>  TMOD = 0x01;</p><p>  TH0 = 0xfc;//1ms</p><p>  TL0 = 0x18;</p><p>  IE = 0x82;</

68、p><p><b>  EX0 = 1;</b></p><p><b>  IT0 = 1;</b></p><p><b>  }</b></p><p>  void display(void)</p><p><b>  {</b&g

69、t;</p><p>  Ser_IN((lie[7-k])); //列掃描數(shù)據(jù)</p><p>  Ser_IN(table[k+n]);//查表取出行掃描數(shù)據(jù)</p><p>  Par_OUT();//輸出顯示</p><p><b>  k++; </b></p><p&g

70、t;  if(k==8) k=0;//循環(huán)掃描</p><p><b>  m++; </b></p><p>  if(m==200) //滾動(dòng)速度控制</p><p><b>  {</b></p><p><b>  m=0; </b></p>

71、;<p><b>  n++;</b></p><p><b>  }</b></p><p>  if(n==num-7) n=0;//循環(huán)顯示</p><p><b>  }</b></p><p>  void main(void)</p&g

72、t;<p><b>  {</b></p><p>  uchar i,j;</p><p>  init(); //初始化</p><p><b>  while(1)</b></p><p><b>  {</b></p><

73、;p>  if(onlyone==0) //掃壞點(diǎn),只掃一次</p><p><b>  {</b></p><p>  for(i=0; i<2; i++)</p><p><b>  {</b></p><p>  for(j=0; j<8; j++) //全亮</

74、p><p><b>  {</b></p><p>  Ser_IN(0); //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(0xff);</p><p>  Par_OUT();</p><p><b>  }</b></p><p>  de

75、lay_ms(2000);</p><p>  for(j=0; j<8; j++) //全滅</p><p><b>  {</b></p><p>  Ser_IN(0xff); //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(0);</p><p>  Par_OUT();

76、</p><p><b>  }</b></p><p>  delay_ms(2000);</p><p><b>  }</b></p><p><b>  TR0=1;</b></p><p>  onlyone++;</p>&

77、lt;p><b>  }</b></p><p>  while(flag==1)</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  for(j=0; j<8; j++) //星形</p>

78、<p><b>  {</b></p><p>  Ser_IN(lie[j]); //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(table_xx[j]);</p><p>  Par_OUT();</p><p>  delay_ms(1);</p><p><b>

79、;  }</b></p><p><b>  }</b></p><p>  while(flag==2)</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  for(j=0; j&

80、lt;8; j++) //圓形</p><p><b>  {</b></p><p>  Ser_IN(lie[j]); //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(table_yuan[j]);</p><p>  Par_OUT();</p><p>  delay_ms(1)

81、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(flag==3)</p><p><b>  {</b></p><p><b>  TR0=0;</b><

82、/p><p>  for(j=0; j<8; j++) //心形 </p><p><b>  {</b></p><p>  Ser_IN(lie[j]); //8X8點(diǎn)陣列掃描</p><p>  Ser_IN(table_xin[j]);</p><p>  Par_OUT();<

83、/p><p>  delay_ms(1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

84、;<p>  void t0() interrupt 1</p><p><b>  {</b></p><p>  TH0 = 0xfc; </p><p>  TL0 = 0x18;</p><p>

85、  display();</p><p><b>  }</b></p><p>  void ex0() interrupt 0</p><p><b>  {</b></p><p>  if(INT0==0)</p><p><b>  {</b>

86、</p><p>  delay_ms(20);</p><p>  if(INT0==0)</p><p><b>  {</b></p><p><b>  flag++;</b></p><p>  if(flag==4)</p><p><

87、;b>  flag=0;</b></p><p><b>  k=0;</b></p><p><b>  n=0;</b></p><p><b>  m=0;</b></p><p><b>  TR0=1;</b></p>

88、;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2 //74HC595.H\\</p><p>  /*-----------------------------------

89、---------*/</p><p>  #ifndef __74HC595_H__</p><p>  #define __74HC595_H__</p><p>  /*--------------------------------------------*/</p><p>  sbit SD = P1^4;//串行數(shù)據(jù)輸入

90、</p><p>  sbit ST_CK = P1^5;//存儲(chǔ)寄存器時(shí)鐘輸入</p><p>  sbit SH_CK = P1^6;//移位寄存器時(shí)鐘輸入</p><p>  /*--------------------------------------------*/</p><p><b>  //函數(shù)聲明</

91、b></p><p>  void Ser_IN(unsigned char Data);//串行數(shù)據(jù)輸入</p><p>  void Par_OUT(void);//串行數(shù)據(jù)輸出</p><p>  /*--------------------------------------------*/</p><p><

92、b>  //串行數(shù)據(jù)輸入</b></p><p>  void Ser_IN(unsigned char Data)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i = 0; i < 8; i++)</p>

93、<p><b>  {</b></p><p>  SH_CK = 0;//CLOCK_MAX=100MHz</p><p>  SD = Data & 0x80;</p><p>  Data <<= 1;</p><p>  SH_CK = 1;</p><p

94、><b>  }</b></p><p><b>  }</b></p><p>  /*--------------------------------------------*/</p><p><b>  //并行數(shù)據(jù)輸出</b></p><p>  void Pa

95、r_OUT(void)</p><p><b>  {</b></p><p>  ST_CK = 0;</p><p>  ST_CK = 1;</p><p><b>  }</b></p><p><b>  #endif</b></p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論