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

下載本文檔

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

文檔簡介

1、<p>  目 錄</p><p>  一、 緒論 ………………………………………………………………4</p><p>  1.1設(shè)計意義提出及研究背景………………………………………4</p><p>  1.2國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢……………………………………4</p><p>  1.3本設(shè)計所做的主要工作………

2、…………………………………6</p><p>  1.4方案實現(xiàn)…………………………………………………………6</p><p>  二、系統(tǒng)硬件部分設(shè)計…………………………………………………7</p><p>  2.1整體模塊設(shè)計……………………………………………………7</p><p>  2.2單片機(jī)最小系統(tǒng)電路………………………………

3、……………8</p><p>  2.3行掃描電路………………………………………………………9</p><p>  2.4列掃描電路………………………………………………………9</p><p>  2.5LED顯示屏電路…………………………………………………10</p><p>  2.6LED按鍵電路與電源顯示電路…………………………………

4、10</p><p>  2.7總體硬件電路………………………………………………… 10</p><p>  三、系統(tǒng)軟件部分設(shè)計…………………………………………………11</p><p>  3.1系統(tǒng)主程序設(shè)計……………………………………………… 11</p><p>  3.2顯示驅(qū)動程序………………………………………………… 11&l

5、t;/p><p>  四、系統(tǒng)調(diào)試與測試結(jié)果分析……………………………………… 12</p><p>  4.2結(jié)果及分析(遇到的問題及解決方案)………………………12</p><p>  4.3實習(xí)心得……………………………………………………… 12</p><p><b>  五、附錄</b></p>&l

6、t;p>  附錄一、系統(tǒng)總程序……………………………………………… 13</p><p>  附錄二、系統(tǒng)總體原理圖………………………………………… 42</p><p><b>  一、緒論</b></p><p>  1.1設(shè)計意義提出及研究背景</p><p>  八十年代以來出現(xiàn)了組合型LED點陣顯示器,以

7、發(fā)光二極管為像素,它用高亮度發(fā)光二極管芯陣列組合后,環(huán)氧樹脂和塑模封裝而成。具有高亮度、功耗低、引腳少、視角大、壽命長、耐濕、耐冷熱、耐腐蝕等特點。</p><p>  點陣顯示器有單色和雙色兩類,可顯示紅,黃,綠,橙等。LED點陣有4×4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多種;根據(jù)像素的數(shù)目分為雙

8、基色、三基色等,根據(jù)像素顏色的不同所顯示的文字、圖像等內(nèi)容的顏色也不同,單基色點陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點陣顯示內(nèi)容的顏色由像素內(nèi)不同顏色發(fā)光二極管點亮組合方式?jīng)Q定,如紅綠都亮?xí)r可顯示黃色,如果按照脈沖方式控制二極管的點亮?xí)r間,則可實現(xiàn)256或更高級灰度顯示,即可實現(xiàn)真彩色顯示。 </p><p>  LED點陣顯示器單塊使用時,既可代替數(shù)碼管顯示數(shù)字,也可顯示各種中西文字及

9、符號,如5 ×7點陣顯示器用于顯示西文字母,5×8點陣顯示器用于顯示中西文,8 × 8點陣用于顯示中文文字,也可用于圖形顯示。用多塊點陣顯示器組合則可構(gòu)成大屏幕顯示器,一般這類實用點陣顯示器常通過微機(jī)或單片機(jī)控制驅(qū)動。</p><p>  1.2國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢</p><p>  LED點陣顯示屏是八十年代后期在全球迅速

10、發(fā)展起來的新型信息顯示媒體,它利用發(fā)光二極管構(gòu)成的點陣模塊或像素單元組成在面積顯示屏幕,以可靠性高、使用壽命長、環(huán)境適應(yīng)能力強(qiáng)、價格性能比高、使用成本低等特點,在短短的十來年中,迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。 </p><p>  LED點陣顯示屏發(fā)展的簡要回顧: </p><p>  發(fā)光二極管(LED)是六十年代未發(fā)展起來的一種半導(dǎo)體

11、顯示器件,七十年代,隨著半導(dǎo)體材料合成技術(shù)、單晶制造技術(shù)和P-N結(jié)形成技術(shù)的研究進(jìn)展,發(fā)光二極管在發(fā)光顏色、亮度等性能得以提高并迅速進(jìn)入批量化和實用化。進(jìn)入八十年代后,LED在發(fā)光波長范圍和性能方面大大提高,并開始形成平板顯示產(chǎn)品即LED點陣顯示屏。[2] LED點陣顯示屏發(fā)展經(jīng)歷了三個階段: </p><p>  1)1990年以前LED點陣顯示屏的成長形成時期。一方面,受LED材料器件的限

12、制,LED點陣顯示屏的應(yīng)用領(lǐng)域沒有廣泛展開,另一方面,顯示屏控制技術(shù)基本上是通訊控制方式,客觀上影響了顯示效果。這一時期的LED點陣顯示屏在國外應(yīng)用較廣,國內(nèi)很少,產(chǎn)品以紅、綠雙基色為主,控制方式為通訊控制,灰度等級為單點4級調(diào)灰,產(chǎn)品的成本比較高。 </p><p>  2)1990-1995年,這一階段是LED點陣顯示屏迅速發(fā)展的時期。進(jìn)入九十年代,全球信息產(chǎn)業(yè)高速增長,信息技術(shù)各個領(lǐng)域不斷突破,L

13、ED點陣顯示屏在LED材料和控制技術(shù)方面也不斷出現(xiàn)新的成果。藍(lán)色LED晶片研制成功,全彩色LED點陣顯示屏進(jìn)入市場,電子計算機(jī)及微電子領(lǐng)域的技術(shù)發(fā)展,在顯示屏控制技術(shù)領(lǐng)域出現(xiàn)了視頻控制技術(shù),顯示屏灰度等級實現(xiàn)16級灰度和64級灰度調(diào)灰,顯示屏的動態(tài)顯示效果大大提高。這一階段,LED點陣顯示屏在我國發(fā)展速度非常迅速,從初期的幾家企業(yè)、年產(chǎn)值幾千萬元發(fā)展到幾十家企業(yè)、</p><p>  年產(chǎn)值幾億元,產(chǎn)品應(yīng)用領(lǐng)域涉

14、及金融證券、體育、機(jī)場、鐵路、車站、公路交通、商業(yè)廣告、郵電電信等諸多領(lǐng)域,特別是1993年證券股票業(yè)的發(fā)展更引發(fā)了LED點陣顯示屏市場的大幅增長。LED點陣顯示屏在平板顯示領(lǐng)域的主流產(chǎn)品局面基本形成,LED點陣顯示屏產(chǎn)業(yè)成為新興的高科技產(chǎn)業(yè)。 </p><p>  3)1995年以來,LED點陣顯示屏的發(fā)展進(jìn)入一個總體穩(wěn)步提高產(chǎn)業(yè)格局調(diào)整完善的時期。1995年以來,LED點陣顯示屏產(chǎn)業(yè)內(nèi)部競爭加劇,形

15、成了許多中小企業(yè),產(chǎn)品價格大幅回落,應(yīng)用領(lǐng)域更為廣闊,產(chǎn)品在質(zhì)量、標(biāo)準(zhǔn)化等方面出現(xiàn)了一系列新的問題,有關(guān)部門對LED點陣顯示屏的發(fā)展予以重視并進(jìn)行了適當(dāng)?shù)囊?guī)范和引導(dǎo),目前這方面的工作正在逐步深化。</p><p>  我國LED點陣顯示屏的發(fā)展現(xiàn)狀: </p><p>  產(chǎn)業(yè)發(fā)展初期規(guī)模:我國的LED點陣顯示屏產(chǎn)業(yè)經(jīng)過幾年的發(fā)展,基本形成了一批具有一定規(guī)模的骨干企業(yè)。據(jù)不完全統(tǒng)

16、計,至1998年底,年度銷售總額在1000萬元以上的企業(yè)有20多家,其銷售總額達(dá)6億元左右,占行業(yè)市場總額的85%以上。全國從事LED點陣顯示屏的各類企業(yè)有100余家,從業(yè)人員近6000人,行業(yè)年度銷售總額近8億元人民幣,1996年、1997年的增長速度均保持40%左右,1998年略有回落。在國內(nèi)市場上,國產(chǎn)LED點陣顯示屏的市場占有率近100%,國外同類產(chǎn)品基本沒有市場,四十三屆世乒賽主會場天津體育中心、京九鐵路、北京西客站、首都機(jī)場

17、、浦東機(jī)場等,均由國內(nèi)代表企業(yè)中標(biāo)。 </p><p>  技術(shù)水平相對領(lǐng)先:我國LED點陣顯示屏產(chǎn)業(yè)在規(guī)模發(fā)展的同時,產(chǎn)品技術(shù)推陳出新,一直保持比較先進(jìn)的水平。90年代初即具備了成熟的16級灰度256色視頻控制技術(shù)及無線遙控等國際先進(jìn)水平技術(shù),近年在全彩色LED點陣顯示屏、256級灰度視頻控制技術(shù)、集群無經(jīng)線控制、多級群控技術(shù)等方面均有國內(nèi)先進(jìn)、達(dá)到國際水平的技術(shù)和產(chǎn)品出現(xiàn);LED點陣顯示屏控制專用大

18、規(guī)模集成電路也已由國內(nèi)企業(yè)開發(fā)生產(chǎn)并得到應(yīng)用。</p><p>  1.3本設(shè)計所做的主要工作</p><p>  本文要求設(shè)計一個由單片機(jī)驅(qū)動的16×16點陣LED圖文顯示屏,并且在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形或文字應(yīng)穩(wěn)定、清晰無串?dāng)_。</p><p>  根據(jù)任務(wù)要求,需做的工作如下: </p&g

19、t;<p>  1、查閱點陣的相關(guān)文獻(xiàn)資料,學(xué)習(xí)最簡單的點陣的使用方法; </p><p>  2、將簡單點陣進(jìn)行擴(kuò)展,設(shè)計成16×16LED點陣,使用Keil uVision軟件對硬件試驗箱進(jìn)行調(diào)試,確保硬件電路的完好;</p><p>  3、利用Keil uVision軟件編寫單片機(jī)程序,編譯鏈接生成Hex文件,然后下載到試驗箱中進(jìn)行硬件仿真;

20、60;</p><p>  4、仿真調(diào)試成功后,對16*16點陣模塊做進(jìn)一步的了解跟認(rèn)識,確保設(shè)計完美成功。</p><p><b>  1.4方案實現(xiàn)</b></p><p>  從理論上說,不論顯示圖形還是文字,只要控制組成這些圖形或文字的各個點所在的位置相對應(yīng)的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時控制各個發(fā)光點亮滅的方法

21、稱為靜態(tài)驅(qū)動顯示方式。16×16的點陣共有256個發(fā)光二極管,顯然單片機(jī)沒有這多 的端口,如果我采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計算,16×16的點陣需要256/8=32個鎖存器。這個數(shù)字很龐大,因為我們僅僅是16×16的點陣,在實際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個很龐大的數(shù)字。因此在實際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計,而采用另外一種稱為動態(tài)掃描的顯示方法。&#

22、160;</p><p>  動態(tài)掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅(qū)動電路就可以實現(xiàn)多行(比如16行)的同名列共用一套驅(qū)動器。具體就16×16的點陣來說,把所有同1行的發(fā)光管的陽極連在一起,把所有同1列的發(fā)光管的陰極連在一起(共陽極的接法),先送出對應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定時間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;

23、以此類推,第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能夠看到顯示屏上穩(wěn)定的圖形了。 </p><p>  采用掃描方式進(jìn)行顯示時,每一行有一個行驅(qū)動器,各行的同名列共用一個驅(qū)動器。顯示數(shù)據(jù)通常存儲在單片機(jī)的存儲器中,按8位一個字節(jié)的形式順序排放。顯示時要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動器上去,這就存在一個顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制

24、電路到列驅(qū)動器的數(shù)據(jù)傳輸可以采用并列方式或串行方式。顯然,采用并行方式時,從控制電路到列驅(qū)動器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時,并列傳輸?shù)姆桨甘遣豢扇〉摹?#160;</p><p>  采用串行傳輸?shù)姆椒?,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅(qū)動器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動器,只有當(dāng)一行的各列數(shù)據(jù)都以傳輸?shù)轿恢螅@一行的各列

25、才能并行地進(jìn)行顯示。這樣,對于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩部分。對于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時間可能相當(dāng)長,在行掃描周期確定的情況下留給行顯示的時間就太少了,以致影響到LED的亮度。 </p><p>  解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時,傳送下一列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有

26、鎖存功能。經(jīng)過上述分析,就可以歸納出列驅(qū)動器電路應(yīng)具有的功能。對于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實現(xiàn)串入并出的移位功能;對于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時,串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會影響本行的顯示。</p><p>  二、系統(tǒng)硬件部分設(shè)計</p><p>  系統(tǒng)硬件部分電路大致上可以分成電源電路、單片機(jī)最小系統(tǒng)電路及外

27、圍電路、列掃描電路、行掃描電路和LED顯示屏電路五部分。</p><p><b>  2.1整體模塊設(shè)計</b></p><p>  本設(shè)計行、列驅(qū)動電路,顯示屏電路,運用單片機(jī)的智能化,系統(tǒng)的將每個功能電路模塊連接在一起,總體結(jié)構(gòu)設(shè)計如下圖1—1所示: </p><p>  圖1—1 系統(tǒng)結(jié)構(gòu)設(shè)計總圖</p>

28、<p>  2.2單片機(jī)最小系統(tǒng)電路</p><p>  80C51單片機(jī)最小系統(tǒng)電路由復(fù)位電路、晶振電路兩部分組成。</p><p>  復(fù)位電路工作原理:                  

29、60;              </p><p>  上電瞬間RST引腳的電位與VCC等電位,RST引腳為高電平,隨著電容C3充電電流的減少,RST引腳的電位不斷下降,其充電時間常數(shù)為T=R3*C3,此時間常數(shù)足以RST引腳在保持為高電平的時間內(nèi)完成復(fù)位操作。 當(dāng)

30、單片機(jī)已在運行當(dāng)中時,按下復(fù)位鍵S5后再松開,也能使RST引腳為一段時間的高電平,從而實現(xiàn)80C51單片機(jī)復(fù)位。</p><p><b>  晶振電路 :</b></p><p>  XTAL1和XTAL2是片內(nèi)振蕩電路輸入端,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接80C51單片機(jī)片內(nèi)OSC的定時反饋回路。晶振起振后要能在XTAL2端輸出一個3V左

31、右的正弦波,以便使片內(nèi)OSC電路按晶振相同頻率自激振蕩。通常,OSC的輸出時鐘頻率FOSC為6MHZ—16MHZ,典型值為12MHZ或11.0592MHZ。電容C1和C2幫助晶振起振,典型值為30pf,調(diào)節(jié)它們可以達(dá)到微調(diào)FOSC的目的。本系統(tǒng)中,晶振為12MHZ,C1=C2=20pf。</p><p><b>  2.3行掃描電路</b></p><p>  行掃描

32、電路由集成電路74HC595構(gòu)成如圖2—2所示,列的處理信號有三個,SER、SRCLK、RCLK,SER做為列移位寄存器的輸入,SRCLK是移位時鐘,RCLK做為鎖存時鐘當(dāng)將16個位數(shù)據(jù)在SRCLK的脈沖作用下移位寄存器后,就可以開啟RCLK時鐘,使寄存器的數(shù)據(jù)存入鎖存器,因使能腳接0使能,數(shù)據(jù)直接輸出Q端,Q端數(shù)據(jù)經(jīng)接入點陣行腳位,即一行的數(shù)據(jù)顯示。</p><p><b>  圖2—2</b&

33、gt;</p><p><b>  2.4列掃描電路</b></p><p>  單片機(jī)P2口高4位輸出的行號經(jīng)4/16線譯碼器74HC154譯碼后生成16條列選通信號線,構(gòu)成的系統(tǒng)原理圖3—3,再經(jīng)過驅(qū)動器驅(qū)動對應(yīng)的行線。一條行線上要帶動16列的LED進(jìn)行顯示。</p><p><b>  圖3—3</b></p&

34、gt;<p>  2.5LED顯示屏電路</p><p>  如圖4—4為點陣插入模塊,R2為亮度調(diào)節(jié)電阻。</p><p><b>  圖4—4</b></p><p>  2.6LED按鍵電路與電源顯示電路</p><p>  如圖5—5在燈LED的顯示下可以了解電路通電是否正常,按鍵S1、S2分別控制

35、字庫的選擇與字之間的間隔時間。</p><p><b>  圖5—5</b></p><p><b>  2.7總體硬件電路</b></p><p>  在整個電路設(shè)計中,用兩片8位輸出鎖存移位寄存器74HC595作為行掃描,用一片74HC164芯片作為列掃描,用單片機(jī)80C51對74HC595和74HC154進(jìn)行控制和驅(qū)

36、動 (總電路原理圖如附錄二所示)。</p><p>  三、系統(tǒng)軟件部分設(shè)計</p><p>  本設(shè)計的軟件的主要功能是向顯示屏提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕顯示漢字。根據(jù)軟件分層次設(shè)計的原理,可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生列掃描信號和其它控制信號,配合完成LED顯示

37、屏的掃描顯示工作。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主程序來實現(xiàn)。 </p><p>  從有利于實現(xiàn)較復(fù)雜的算法(顯示效果處理)和有利于程序結(jié)構(gòu)化考慮,顯示屏程序適宜采用C語言編寫。</p><p>  3.1系統(tǒng)主程序設(shè)計</p><p>  系統(tǒng)主程序的總體結(jié)構(gòu)如圖6—6所示。系統(tǒng)的主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,

38、然后LED顯示屏進(jìn)入開機(jī)狀態(tài),轉(zhuǎn)入正常的顯示,每次顯示一個漢字,連續(xù)實現(xiàn)漢字循環(huán)顯示效果。本次設(shè)計共有3個字庫,在按鍵S2的控制下可以選擇循環(huán)顯示不同的字庫,在按鍵S1的控制下可控制字與字之間的間隔</p><p><b>  時間。</b></p><p><b>  3.2顯示驅(qū)動程序</b></p><p>  顯示

39、驅(qū)動程序查詢當(dāng)前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。</p><p>  void DataOut(uchar dat) //發(fā)送數(shù)據(jù)</p><p>  { uchar x; </p>

40、<p>  for(x=0;x<8;x++) //每次移一個字節(jié)</p><p>  { CLK = 0; // CLK = P1^6 ; //移位時鐘,上升沿觸發(fā)</p><p>  if (dat & 0x01)</p><p>  DIN = 1; //74HC595數(shù)據(jù)

41、線,將數(shù)據(jù)移人寄存器 </p><p><b>  else</b></p><p><b>  DIN = 0;</b></p><p>  _nop_(); //延時</p><p><b>  _nop_();</b>&

42、lt;/p><p><b>  CLK = 1;</b></p><p><b>  _nop_(); </b></p><p>  _nop_(); </p><p>  dat>>=1; //所以dat>>=1也就是dat = dat>>1相當(dāng)于da

43、t除以2</p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  四、系統(tǒng)調(diào)試與測試結(jié)果分析</p><p>  4.2結(jié)果及分析(遇到的問題及解決方案)&l

44、t;/p><p>  遇到問題1:無法用按鍵來選擇字庫</p><p>  解決方法:用單片機(jī)的外部中斷1</p><p>  遇到問題2:無法用按鍵控制延時</p><p>  解決方法:用單片機(jī)外部中斷2</p><p><b>  4.3實習(xí)心得</b></p><p>

45、  在整個設(shè)計的調(diào)試中遇到很多問題,首先是實現(xiàn)了每個字庫單獨顯示,到后面要實現(xiàn)字庫在按鍵控制下調(diào)用時,程序調(diào)試了一天都沒什么成果,后來在同學(xué)的幫助下知道了要用單片機(jī)芯片的外部中斷來實現(xiàn)控制,可是我本人是不太會用中斷的,可是問題還是要解決的,所以在這實踐周我學(xué)習(xí)到了很多,特別是在大家的幫助下學(xué)會了用單片機(jī)的中斷部分,在用按鍵控制字與字之間的顯示間隔時間是同樣遇到了難題,自己感覺程序沒什么錯,可是字庫單獨顯示沒什么問題,但在</p&g

46、t;<p>  加上延時后,在點陣上看到的是一行一行往下顯示的一下亮點,后來找學(xué)長幫忙才知道,是我把延時的程序語句放錯了地方,所以在加上延時后,把程序掃描一個字的過程慢慢的顯示了出來,所以會看到一行一行的錯亂亮點往下一排一排顯示。</p><p><b>  五、附錄</b></p><p><b>  附錄一、系統(tǒng)總程序</b>&

47、lt;/p><p>  #include <reg52.H></p><p>  #include <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  void

48、 delayms(uint t);</p><p>  void time_key1();</p><p>  void select_key2();</p><p>  void T0_time();</p><p>  void max_1();</p><p>  void max_2();</p>

49、<p>  void max_3();</p><p>  sbit LIN_A=P0^0 ; </p><p>  sbit LIN_B=P0^1 ;</p><p>  sbit LIN_C=P0^2 ;</p><p>  sbit LIN_D=P0^3 ;</p><p>  sbit key1=P

50、2^0 ;</p><p>  sbit key2=P2^1;</p><p>  sbit DIN =P0^6; </p><p>  sbit CLK =P0^5; //移位時鐘,上升沿觸發(fā)</p><p>  sbit R_CLK=P0^4; </p><p><b> 

51、 uint t=0;</b></p><p><b>  uint q=0;</b></p><p>  uint p=0;//中斷按下標(biāo)志</p><p>  uchar code tab1[] = //"浙"</p><p>  {0xFD,0xF7,0xBD,0xE3,0xDD,0x

52、9F,0xDD,0xBF,0xF0,0x3F,0x7D,0xBF,0xBD,0x81,0xAD,0x3,</p><p>  0xEC,0xB7,0xD1,0xB7,0x1D,0xB7,0xDD,0xB7,0xDD,0xB7,0xDD,0xB7,0xD5,0x77,0xFA,0xF};</p><p>  uchar code tab2[] = //"江"</p&

53、gt;<p>  {0xFF,0xFF,0xDF,0xFF,0xE8,0x03,0xEF,0xBF,0x7F,0xBF,0xBF,0xBF,0xB7,0xBF,0xF7,0xBF,</p><p>  0xEF,0xBF,0xEF,0xBF,0x1F,0xBF,0xDF,0xBF,0xDF,0xBF,0xD0,0x01,0xDF,0xFF,0xFF,0xFF};</p><p&g

54、t;  uchar code tab3[] = //"傳"</p><p>  {0xF7,0xBF,0xF7,0xBF,0xF7,0xBF,0xEC,0x07,0xEF,0xBF,0xCF,0x7F,0xC8,0x01,0xAF,0x7F,</p><p>  0x6E,0xFF,0xEC,0x07,0xEF,0xF7,0xEE,0xEF,0xEF,0x5F,0xEF

55、,0xBF,0xEF,0xDF,0xEF,0xDF};</p><p>  uchar code tab4[] = //"媒"</p><p>  {0xEF,0x77,0xEF,0x77,0xEC,0x01,0xEF,0x77,0x03,0x77,0xDB,0x07,0xDB,0x77,0xDB,0x77,</p><p>  0xDB,0x0

56、7,0xB7,0xDF,0xD4,0x01,0xEF,0x8F,0xD7,0x57,0xBA,0xDB,0x79,0xDD,0xFF,0xDF};</p><p>  uchar code tab5[] = //"電"</p><p>  { 0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xDE

57、,0xF7,0xC0,0x07,</p><p>  0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF5,0xFE,0xFD,0xFE,0xFD,0xFF,0x01};</p><p>  uchar code tab6[] = //"子"</p><p>  {0xFF,0xFF,0x80,0x0

58、7,0xFF,0xEF,0xFF,0xDF,0xFF,0xBF,0xFE,0x7F,0xFE,0xFF,0x00,0x01,</p><p>  0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF};</p><p>  uchar code tab7[] = //"科&q

59、uot;</p><p>  {0xF7,0xEF,0xE2,0xEF,0x0F,0x6F,0xEF,0x6F,0xEF,0xEF,0x02,0xEF,0xEF,0x6F,0xC7,0x6F,</p><p>  0xCB,0xEF,0xAF,0xE1,0xAC,0x0F,0x6F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF };</p&

60、gt;<p>  uchar code tab8[] =//"學(xué)"</p><p>  {0xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F,</p><p>  0xFF,0xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xF

61、E,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF}; </p><p>  uchar code tab9[] =//祝</p><p>  {0xDF,0xF7,0xEC,0x03,0xED,0xF7,0xFD,0xF7,0x01,0xF7,0xF5,0xF7,0xED,0xF7,0xC4,0x07,</p><p>  0xA9,0x57

62、,0x6F,0x5F,0xEF,0x5F,0xEE,0xDF,0xEE,0xDD,0xED,0xDD,0xEB,0xE1,0xE7,0xFF};</p><p>  uchar code tab10[] =//大</p><p>  {0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFE,0xFF,0xFD,0x7

63、F,</p><p>  0xFD,0x7F,0xFD,0xBF,0xFB,0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xF1,0x9F,0xFB,0xFF,0xFF};</p><p>  uchar code tab11[] =//家</p><p>  {0xFD,0xFF,0xFE,0xFF,0x80,0x01,0xBF,0xFD,0x7F

64、,0xFB,0xC0,0x07,0xFB,0xFF,0xE5,0xEF,</p><p>  0x9C,0xCF,0xFA,0xBF,0xE6,0x7F,0x9C,0xBF,0xFA,0xCF,0xE6,0xF1,0x9A,0xFB,0xFD,0xFF};</p><p>  uchar code tab12[] =//身</p><p>  {0xFE,0xFF,

65、0xFD,0xEF,0xF0,0x07,0xF7,0xEF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0D,0xF7,0xEB,</p><p>  0xF7,0xE7,0x80,0x0F,0xFF,0xAF,0xFF,0x6F,0xFC,0xEF,0xE3,0xEF,0x1F,0xAF,0xFF,0xDF};</p><p>  uchar code tab13[] =//體

66、</p><p>  {0xEF,0x7F,0xEF,0x7F,0xEF,0x7F,0xDF,0x77,0xD0,0x03,0x9D,0x5F,0x5D,0x5F,0xDB,0x6F,</p><p>  0xDB,0x6F,0xD7,0x77,0xD4,0x11,0xCF,0x7B,0xDF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF,0x7F};</p>

67、<p>  uchar code tab14[] =//健</p><p>  {0xEF,0xDF,0xEF,0xDF,0xEF,0x03,0xD1,0xDB,0xDC,0x01,0x9D,0xDB,0x5B,0x03,0xD7,0xDF,</p><p>  0xD0,0x01,0xDD,0xDF,0xCD,0xDB,0xD2,0x01,0xDB,0xDF,0xD5,0xDF

68、,0xCE,0xD9,0xDF,0x0;</p><p>  uchar code tab15[] =//康</p><p>  {0xFE,0xFF,0xFF,0x7B,0xC0,0x01,0xDF,0x7F,0xD0,0x07,0xDF,0x77,0xC0,0x01,0xDF,0x77,</p><p>  0xD0,0x07,0xD7,0x7F,0xDB,0x

69、3B,0xDD,0x57,0xBB,0x6F,0xB7,0x71,0x6D,0x7B,0xFE,0xFF};</p><p>  uchar code tab16[] =//工</p><p>  {0xFF,0xFF,0xFF,0xF7,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,</p><

70、p>  0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFF,0xFF,0xFF,0xFF};</p><p>  uchar code tab17[] =//作</p><p>  {0xF6,0xFF,0xF6,0xFF,0xF6,0xFB,0xEE,0x01,0xED,0x7F,0xCD,0x7F,0x

71、AB,0x6F,0x67,0x07,</p><p>  0xEF,0x7F,0xEF,0x7F,0xEF,0x77,0xEF,0x03,0xEF,0x7F,0xEF,0x7F,0xEF,0x7F,0xEF,0x7F};</p><p>  uchar code tab18[] =//順</p><p>  {0xFF,0xFB,0xB8,0x01,0xAB,0xD

72、F,0xAB,0xBB,0xAA,0x01,0xAA,0xFB,0xAA,0xDB,0xAA,0xDB,0xAA,0xDB,0xAA,0xDB,0xAA,0xDB,0xAA,0xDB,0xAB,0xDF,0xBB,0xA7,0x7B,0x7B,0xFC,0xFD};</p><p>  uchar code tab19[] =//利</p><p>  {0xFE,0xFB,0xF8,0x

73、7B,0x83,0xFB,0xFB,0xDB,0xFB,0xDB,0xFA,0xDB,0x00,0x5B,0xF3,0xD,</p><p>  0xF1,0xDB,0xEA,0x5B,0xEB,0x5B,0xDB,0xDB,0xBB,0xFB,0xFB,0xFB,0xFB,0xEB,0xFB,0xF7}; </p><p>  uchar code tab20[] =//基<

74、/p><p>  {0xF7,0xDF,0xF7,0xD7,0x80,0x03,0xF7,0xDF,0xF0,0x1F,0xF7,0xDF,0xF0,0x1F,0xF7,0xDB,</p><p>  0x00,0x01,0xFB,0xBF,0xF6,0xCF,0xCE,0xB1,0x30,0x1B,0xFE,0xFF,0xFE,0xEF,0xC0,0x07};</p><

75、p>  uchar code tab21[] =//于</p><p>  {0xFF,0xEF,0xC0,0x07,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFE,0xFF,</p><p>  0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xF

76、A,0xFF,0xFD,0xFF};</p><p>  uchar code tab22[] =//單</p><p>  {0xEF,0xEF,0xF7,0xDF,0xFB,0xB7,0xC0,0x03,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,</p><p>  0xDE,0xF7,0xC0,0x07,0xDE,0xFF

77、,0xFE,0xFB,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF};</p><p>  uchar code tab23[] =//片</p><p>  {0xFF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF,0x7B,0xC0,0x01,0xDF,0xFF,0xDF,0xFF,</p><p&

78、gt;  0xC0,0x3F,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xBF,0xBF,0x7F,0xBF};</p><p>  uchar code tab24[] =//機(jī)</p><p>  {0xEF,0xFF,0xEF,0xEF,0xEE,0x07,0xEE,0xEF,0x02,0xEF,0xEE,0xEF,0xCE

79、,0xEF,0xC6,0xEF,</p><p>  0xAA,0xEF,0xAE,0xEF,0x6E,0xEF,0xEE,0xEF,0xEE,0xED,0xED,0xED,0xEB,0xF1,0xE7,0xFF;</p><p>  uchar code tab25[] =//控</p><p>  {0xEF,0xBF,0xEF,0xDF,0xEC,0x01,0

80、xED,0xFD,0x03,0xAB,0xEF,0x77,0xEA,0xFB,0xE7,0xFF,</p><p>  0xCF,0xF7,0x2C,0x03,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDB,0xA8,0x01,0xDF,0xFF};</p><p>  uchar code tab26[] =//制</p><p>

81、  {0xFB,0xFB,0xDB,0xFB,0xDA,0xFB,0xC0,0x5B,0xDB,0xDB,0xBB,0x5B,0x00,0x1B,0xFB,0xDB,0xC0,0x5B,0xDB,0x5B,0xDB,0x5B,0xDB,0x7B,0xD9,0x7B,0xDA,0xFB,0xFB,0xEB,0xFB,0xF7};</p><p>  uchar code tab27[] =//的</p>

82、<p>  {0xEF,0xBF,0xEF,0xBF,0xDD,0xBB,0x80,0x81,0xBD,0x7B,0xBC,0xFB,0xBD,0xFB,0xBD,0xB,</p><p>  0x81,0x9B,0xBD,0xDB,0xBD,0xFB,0xBD,0xFB,0xBD,0xFB,0x81,0xFB,0xBD,0xD7,0xFF,0xEF};</p><p>  

83、uchar code tab28[] =// L</p><p>  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,</p><p>  0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFC,0xE3,0xF9,0x80,0x01,0xFF,0xFF

84、,0xFF,0xFF};</p><p>  uchar code tab29[] =//E</p><p>  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xE3,0xF1,0xE3,0xFD,0xE3,0xEF,0xE0,0x0F,</p><p>  0xE0,0x0F,0xE3,0xEF,0xE3,0xFF,0xE3,

85、0xFD,0xE3,0xF9,0x80,0x03,0xFF,0xFF,0xFF,0xFF};</p><p>  uchar code tab30[] =//D</p><p>  {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x0F,0xE7,0xC3,0xE7,0xF1,0xE7,0xF1,0xE7,0xF1,</p><p>  0

86、xE7,0xF0,0xE7,0xF1,0xE7,0xF1,0xE7,0xF3,0xE7,0xC7,0x80,0x1F,0xFF,0xFF,0xFF,0xFF};</p><p>  uchar code tab31[] =//顯</p><p>  {0xFF,0xEF,0xE0,0x07,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,

87、0xE0,0x0F,</p><p>  0xEB,0xAF,0xBB,0xBB,0xCB,0xB3,0xEB,0xAF,0xFB,0xBF,0xFB,0xBB,0x00,0x01,0xFF,0xFF;</p><p>  uchar code tab32[] =//示</p><p>  {0xFF,0xEF,0xC0,0x07,0xFF,0xFF,0xFF,0x

88、FF,0xFF,0xFF,0xFF,0xFB,0x00,0x01,0xFE,0xFF,</p><p>  0xFE,0xFF,0xF6,0xDF,0xE6,0xE7,0xDE,0xF3,0xBE,0xFB,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF};</p><p><b>  // 數(shù)據(jù)傳輸</b></p><p> 

89、 void DataOut(uchar dat)</p><p>  { uchar x; </p><p>  for(x=0;x<8;x++)</p><p>  { CLK = 0; // CLK = P1^6 ; //移位時鐘,上升沿觸發(fā)</p><p>  if (dat & 0x01)&l

90、t;/p><p>  DIN = 1; //74HC595數(shù)據(jù)線 </p><p><b>  else</b></p><p><b>  DIN = 0;</b></p><p><b>  _nop_(); </b&

91、gt;</p><p><b>  _nop_();</b></p><p><b>  CLK = 1;</b></p><p><b>  _nop_(); </b></p><p>  _nop_(); </p><p>  dat>&g

92、t;=1; //所以dat>>=1也就是dat = dat>>1相當(dāng)于dat除以2</p><p>  }return; }</p><p><b>  //設(shè)計行線</b></p><p>  void SetLin(uchar x)</p><p>  { switch(x)&l

93、t;/p><p>  { case 0 : LIN_A = 0; LIN_B = 0; LIN_C = 0; LIN_D = 0; break;</p><p>  case 1 : LIN_A = 1; LIN_B = 0; LIN_C = 0; LIN_D = 0; break;</p><p>  case 2 : LIN_A =

94、0; LIN_B = 1; LIN_C = 0; LIN_D = 0; break;</p><p>  case 3 : LIN_A = 1; LIN_B = 1; LIN_C = 0; LIN_D = 0; break;</p><p>  case 4 : LIN_A = 0; LIN_B = 0; LIN_C = 1; LIN_D = 0; break;<

95、/p><p>  case 5 : LIN_A = 1; LIN_B = 0; LIN_C = 1; LIN_D = 0; break;</p><p>  case 6 : LIN_A = 0; LIN_B = 1; LIN_C = 1; LIN_D = 0; break;</p><p>  case 7 : LIN_A = 1; LI

96、N_B = 1; LIN_C = 1; LIN_D = 0; break;</p><p>  case 8 : LIN_A = 0; LIN_B = 0; LIN_C = 0; LIN_D = 1; break;</p><p>  case 9 : LIN_A = 1; LIN_B = 0; LIN_C = 0; LIN_D = 1; break;</p>

97、;<p>  case 10 : LIN_A = 0; LIN_B = 1; LIN_C = 0; LIN_D = 1; break;</p><p>  case 11 : LIN_A = 1; LIN_B = 1; LIN_C = 0; LIN_D = 1; break;</p><p>  case 12 : LIN_A = 0; LIN_B =

98、 0; LIN_C = 1; LIN_D = 1; break;</p><p>  case 13 : LIN_A = 1; LIN_B = 0; LIN_C = 1; LIN_D = 1; break;</p><p>  case 14 : LIN_A = 0; LIN_B = 1; LIN_C = 1; LIN_D = 1; break;</p>&l

99、t;p>  case 15 : LIN_A = 1; LIN_B = 1; LIN_C = 1; LIN_D = 1; break;</p><p>  default : break;} return;}</p><p><b>  //字庫一</b></p><p>  void max_1()</p>

100、<p>  {uchar dat1,dat0,x,y,i; </p><p>  for(i=0; i<100; i++) </p><p>  { for(x=0; x<16; x++) </p><p>  { R_CLK =0; </p><p>  y =(x<&

101、lt;1);</p><p>  DataOut(0xff); </p><p>  DataOut(0xff);</p><p><b>  R_CLK=1;</b></p><p><b>  _nop_();</b></p><p><b>  R_C

102、LK =0;</b></p><p>  dat1 =tab1[y+1]; </p><p>  dat0 =tab1[y]; </p><p>  DataOut(dat1); </p><p>  DataOut(dat0); </p><p>  SetLin(x); </p&g

103、t;<p><b>  R_CLK =1;</b></p><p>  _nop_(); }</p><p>  }delayms(t); </p><p>  for(i=0; i<100; i++)</p><p><b>  { </b></p>&l

104、t;p>  for(x=0; x<16; x++) </p><p><b>  { </b></p><p>  R_CLK=0; </p><p>  y =(x<<1);</p><p>  DataOut(0xff); </p><p>  Data

105、Out(0xff);</p><p><b>  R_CLK=1;</b></p><p><b>  _nop_();</b></p><p><b>  R_CLK =0;</b></p><p>  dat1=tab2[y+1]; </p><p&g

106、t;  dat0=tab2[y]; </p><p>  DataOut(dat1); </p><p>  DataOut(dat0); </p><p>  SetLin(x); </p><p><b>  R_CLK=1;</b></p><p>  _nop_(); }

107、 </p><p>  delayms(t);</p><p>  for(i=0; i<100; i++)</p><p>  { for(x=0; x<16; x++) </p><p>  { R_CLK=0; </p><p><b>  y=(x<<1);</b&

108、gt;</p><p>  DataOut(0xff); </p><p>  DataOut(0xff);</p><p><b>  R_CLK =1;</b></p><p><b>  _nop_();</b></p><p><b>  R_CLK

109、=0;</b></p><p>  dat1=tab3[y+1]; </p><p>  dat0=tab3[y]; </p><p>  DataOut(dat1); </p><p>  DataOut(dat0); </p><p>  SetLin(x); </p>&

110、lt;p><b>  R_CLK=1;</b></p><p>  _nop_(); </p><p><b>  } } </b></p><p>  delayms(t);</p><p>  for(i=0; i<100; i++)</p><p> 

111、 { for(x=0; x<16; x++) </p><p>  { R_CLK=0; </p><p><b>  y=(x<<1);</b></p><p>  DataOut(0xff); </p><p>  DataOut(0xff);</p><p>

112、<b>  R_CLK=1;</b></p><p><b>  _nop_();</b></p><p><b>  R_CLK=0;</b></p><p>  dat1=tab4[y+1]; </p><p>  dat0=tab4[y]; </p>&

113、lt;p>  DataOut(dat1); </p><p>  DataOut(dat0); </p><p>  SetLin(x); </p><p><b>  R_CLK=1;</b></p><p>  _nop_(); </p><p>  } } delaym

114、s(t);</p><p>  for(i=0; i<100; i++)</p><p>  { for(x=0; x<16; x++) </p><p>  { R_CLK = 0; </p><p>  y = (x<<1);</p><p>  DataOut(0xff);

115、 </p><p>  DataOut(0xff);</p><p>  R_CLK = 1;</p><p><b>  _nop_();</b></p><p>  R_CLK = 0;</p><p>  dat1 = tab5[y+1]; </p><p>  

116、dat0 = tab5[y]; </p><p>  DataOut(dat1); </p><p>  DataOut(dat0); </p><p>  SetLin(x); </p><p>  R_CLK = 1;</p><p>  _nop_();} </p><p&

117、gt;  } delayms(t);</p><p>  for(i=0; i<100; i++)</p><p>  { for(x=0; x<16; x++) </p><p>  { R_CLK = 0; </p><p>  y = (x<<1);</p><p>  Data

118、Out(0xff); </p><p>  DataOut(0xff);</p><p>  R_CLK = 1;</p><p><b>  _nop_();</b></p><p>  R_CLK = 0;</p><p>  dat1 = tab6[y+1]; </p>

119、<p>  dat0 = tab6[y]; </p><p>  DataOut(dat1); </p><p>  DataOut(dat0); </p><p>  SetLin(x); </p><p>  R_CLK = 1;</p><p>  _nop_(); </p&g

溫馨提示

  • 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

提交評論