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

下載本文檔

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

文檔簡介

1、<p><b>  1 引 言</b></p><p><b>  1.1系統(tǒng)設(shè)計(jì)要求</b></p><p>  設(shè)計(jì)并制作一個依靠搖動能顯示字符、圖形的LED顯示棒。</p><p>  系統(tǒng)設(shè)計(jì)的基本要求:</p><p>  設(shè)計(jì)一個基于LED的顯示棒,其中LED燈必須呈線狀排列,

2、并至少使用16只,系統(tǒng)采用電池供電,搖動顯示棒時形成的亮燈扇形區(qū)域能讓人分辨出字符“A”、文字“電” 以及國際奧委會五環(huán)圖形,并用按鍵實(shí)現(xiàn)顯示的切換。</p><p>  系統(tǒng)設(shè)計(jì)的發(fā)揮部分:</p><p>  搖動顯示棒時形成的亮燈扇形區(qū)域能夠讓人分辨出英文單詞“Welcome”、漢字詞組“美亞”和北京奧運(yùn)會會徽圖形,并適當(dāng)增加設(shè)計(jì)特色與創(chuàng)新。</p><p>

3、  1.2 系統(tǒng)設(shè)計(jì)思路及特點(diǎn)</p><p>  該LED顯示棒搖動時顯現(xiàn)的字符或圖形由LED燈顯示,LED燈成線狀排列,每個瞬間線陣只能顯示數(shù)字編碼后的文字或圖形的一列,利用人眼的視覺暫留原理,將需要顯示的字符或圖形分成N列(N≥16),一般人手左右擺動的頻率為幾赫茲到十幾赫茲,因此,通過單片機(jī)控制LED線陣以一較低頻率掃描顯示字符或圖形的每一列,擺動顯示棒時即可因視覺暫留看出顯示的字符或圖形;左右擺動一次通

4、過端口電平變化,調(diào)用相應(yīng)的顯示子程序,字符切換通過外部中斷實(shí)現(xiàn),該系統(tǒng)設(shè)計(jì)對程序設(shè)計(jì)的要求較硬件電路要高。</p><p><b>  2 系統(tǒng)理論設(shè)計(jì)</b></p><p>  2.1 系統(tǒng)總體方案比較及說明</p><p>  方案一:選用單片機(jī)AT89C51作為掃描顯示控制核心,由其直接控制LED線陣的顯示,并外加掃描控制開關(guān)控制字符或

5、圖形的掃描顯示,原理框圖如圖-1所示。 </p><p>  圖-1 方案一原理框圖</p><p>  該方案線路簡單,掃描控制開關(guān)可選擇機(jī)械開關(guān)或編碼開關(guān)或水銀開關(guān),在顯示棒搖擺時接通線路控制單片機(jī)掃描輸出字符或圖形的列編碼信號;單片機(jī)外另接有中斷控制按鈕用以切換不同字符或圖形的顯示,LED線陣采用普通三極管驅(qū)動,電路采用4節(jié)充電電池供電。</p><p>  

6、此方案的優(yōu)點(diǎn)是:單片機(jī)C51的端口較多,可實(shí)現(xiàn)顯示數(shù)據(jù)并行傳輸,速度較快,且外圍電路簡單,調(diào)試較方便。</p><p>  缺點(diǎn)是:為了增大顯示清晰度,除去可能由背景LED燈占用的端口外,單片機(jī)剩余端口無法使線陣中LED燈數(shù)量擴(kuò)展至24只以上;單片機(jī)使用的晶振頻率較大,軟件不易實(shí)現(xiàn)對計(jì)數(shù)的控制。</p><p>  方案二:由單片機(jī)AT89C2051最小系統(tǒng)、寄存器組、驅(qū)動電路、LED線陣

7、和電源部分組成,原理方框圖如圖-2所示。</p><p>  圖2 方案二系統(tǒng)設(shè)計(jì)框圖</p><p>  該方案通過單片機(jī)將列編碼輸入寄存器,通過寄存器組移位功能實(shí)現(xiàn)字符圖像的掃描輸出。</p><p>  與方案一比較,方案二中單片機(jī)所需輸出端口很少,可選用小型單片機(jī)AT89C2051,不僅功能強(qiáng),而且尺寸小,價位比較低,其數(shù)據(jù)輸出串口輸出方式,所需端口較少,

8、編程同C51兼容,總體線路較簡單,電路板占用面積小;利用寄存器移位功能可輕易實(shí)現(xiàn)顯示LED燈數(shù)量的擴(kuò)展,不僅具備方案一的大部分優(yōu)點(diǎn),而且外圍器件更少,能耗更低,電路調(diào)試簡單,故選擇方案二。 </p><p>  2.2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)及說明 </p><p>  以小型單片機(jī)AT89C2051為控制核心,使用三只串行連接的八位移位寄存器74HC164組成具有24位移位功能的寄存器組,控制

9、由24只LED燈組成的線陣掃描顯示字符或圖形,并附加有自動斷電控制部分,降低能源消耗,電源采用四節(jié)1.5V的可充電電池供電,系統(tǒng)總框圖如圖-3所示。</p><p>  圖3 系統(tǒng)總體結(jié)構(gòu)框圖</p><p>  2.3 系統(tǒng)硬件理論設(shè)計(jì)、電路原理圖</p><p>  2.3.1單片機(jī)AT89C2051最小系統(tǒng) </p><p>  單片機(jī)

10、最小系統(tǒng)原理如圖-4所示。</p><p>  AT89C2051有20個引腳,采用DIP-20封裝.其內(nèi)部含2KB的FLASH存儲器,128B的RAM.它為用戶提供了15條可編程雙向I/O口線.P1口是一個完整的8位雙向I/O口,另有2個外中斷口(INT0,INT1)。2個16位可編程定時計(jì)數(shù)器信號輸入端(T0,T1),全雙向串行通信口數(shù)據(jù)接收端RXD和數(shù)據(jù)發(fā)送端TXD,1個模擬比較放大器輸入端(P1.0,P1

11、.1為同向或反向輸入端。另外,AT89C2051的時鐘頻率可為零,具備可用軟件設(shè)置睡眠省電功能。</p><p>  最小系統(tǒng)包括了時鐘電路、復(fù)位電路等,另外還設(shè)置了按鍵,鎖存器,LED管等外圍電路。在89C2051引腳X1和X2跨接晶振和微調(diào)電容就構(gòu)成了時鐘電路,系統(tǒng)的時鐘脈沖由它提供.復(fù)位電路不接按鍵,使其始終處于無效狀態(tài).。</p><p>  圖4 單片機(jī)最小系統(tǒng)</p>

12、;<p>  2.3.2 寄存器組電路</p><p>  寄存器組電路如圖-5所示,寄存器組由三個八位移位寄存器74HC164組成,時鐘觸發(fā)信號同時來自單片機(jī)P3.1口,寄存器U3輸入端接入來自P3.0口的串行輸出信號,其余兩寄存器輸入端接在左邊寄存器的輸出端上,組成的寄存器組具有24位移位功能,可以滿足按列至少16只LED燈掃描顯示的要求。</p><p>  圖5 寄

13、存器組電路</p><p>  2.2.3 掃描控制開關(guān)</p><p>  該開關(guān)接線原理圖如圖-6(a)所示,掃描控制開關(guān)起著擺動傳感作用,每當(dāng)顯示棒擺動至左端位置時,開關(guān)瞬時接通,中斷信號送入單片機(jī),控制若干次掃描信號輸出。</p><p>  方案一:采用機(jī)械式開關(guān),如圖-6(b)所示,紅色弧線代表擺子的導(dǎo)軌,限制其擺動軌道,P1和P2為左右觸點(diǎn),P1接至中

14、斷口INTO,P0接地,該開關(guān)材料和制作簡單,但擺子轉(zhuǎn)軸和地線接觸可靠性較差。</p><p> ?。╝)開關(guān)接線原理圖 (b)機(jī)械開關(guān)</p><p><b>  圖6 掃描控制開關(guān)</b></p><p>  方案二:采用光限位開關(guān),可靠性很強(qiáng),但擺棒的粗細(xì)需匹配,開關(guān)體積過大,而且難以購買,價格昂貴。&l

15、t;/p><p>  方案三:采用水銀開關(guān),其體積較小,價格適中,可靠性強(qiáng),選擇此方案。</p><p>  2.3.4 自動掉電控制電路</p><p>  自動掉電控制電路原理如圖-7所示, 其中按鍵S作為電源開關(guān)和顯示切換開關(guān),按下此鍵時,PNP型三極管進(jìn)入飽和導(dǎo)通狀態(tài),接通單片機(jī)電源,此時由程序控制單片機(jī)持續(xù)送入低電平信號,使三極管保持導(dǎo)通狀態(tài);若一段時間內(nèi)掃描

16、控制開關(guān)和顯示切換開關(guān)均未送入中斷信號,則單片機(jī)送出高電平,三極管截止,系統(tǒng)進(jìn)入休眠省電狀態(tài);未進(jìn)入省電狀態(tài)時再次按下開關(guān)S,單片機(jī)產(chǎn)生中斷,變換顯示的字符或圖形。</p><p>  圖7 自動掉電控制電路</p><p>  2.3.5 LED驅(qū)動及顯示電路</p><p>  LED驅(qū)動及顯示電路如圖8所示,LED燈點(diǎn)亮所需電流一般為三至五毫安,八只LED總電

17、流只有幾十毫安,因此驅(qū)動采用一只普通三極管即可,圖中二極管D1~D3起分壓作用,所有LED點(diǎn)亮的控制信號來自三個寄存器74HC164。</p><p>  圖8 LED驅(qū)動及顯示電路</p><p>  2.3.6 系統(tǒng)總圖: </p><p>  將以上設(shè)計(jì)的單片機(jī)最小系統(tǒng)、寄存器組、掃描控制、自動斷電控制、驅(qū)動與顯示等各部分電路進(jìn)行接口連接,構(gòu)成LED顯示棒的系

18、統(tǒng)總體電路圖。(見附件B)</p><p>  2.4系統(tǒng)軟件設(shè)計(jì)、各程序流程圖</p><p>  程序分為若干子程序,硬件的功能描述可完全在軟件上實(shí)現(xiàn)。</p><p>  1.主程序流程圖如圖9(a)所示,需實(shí)現(xiàn)的功能是初始化各端口和變量。判斷圖文切換按鍵和中斷開關(guān)是否被按下,若沒按下,則延時若干秒后進(jìn)入休眠省電模式;若按下,則進(jìn)行字符的切換顯示。</p

19、><p>  2.按鍵中斷實(shí)現(xiàn)數(shù)據(jù)掃描切換程序流程圖如圖-9(b)所示,單片機(jī)外部中斷源有2個,采用外部中斷0作為判斷是否搖擺的端口,該端口連接水銀開關(guān),如果有搖擺,則觸發(fā)外部中斷,進(jìn)行掃描數(shù)據(jù)處理。</p><p>  3.賦值子程序流程圖如圖10(a)所示,賦值前先檢測中斷是否有效,如有效,則將要顯示的字符數(shù)據(jù)依次送入寄存器,送完后返回。否則返回到中斷入口處等待下一次中斷的到來。</

20、p><p>  4.定時間隔子程序流程圖如圖10(b)所示,首先判斷掃描間隔是否太大,如果太大,則使用默認(rèn)間隔,否則啟動定時器,在定時期間判斷中斷是否又被觸發(fā),如果有,則定時停止,強(qiáng)行返回。否則等到定時結(jié)束后再返回到掃描子程序中。</p><p>  圖10 程序流程圖2</p><p><b>  3 系統(tǒng)實(shí)現(xiàn)</b></p>&l

21、t;p>  3.1硬、軟件分別調(diào)試及聯(lián)合調(diào)試</p><p>  3.1.1 階段調(diào)試 </p><p>  各部分線路連接前對各元器件的功能進(jìn)行檢測,確保元件功能正常后,再對各局部電路功能進(jìn)行調(diào)試。</p><p>  寄存器組電路調(diào)試:利用函數(shù)發(fā)生器產(chǎn)生的方波作為時鐘信號,對進(jìn)行移位功能測試。</p><p>  LED線陣驅(qū)動及顯

22、示電路調(diào)試:輸入穩(wěn)壓源產(chǎn)生的6V直流穩(wěn)定電壓,用萬用表分別測出一只至八只LED全亮?xí)r的電流,改變限流電阻大小,直至電流大小和顯示正常。</p><p>  單片機(jī)最小系統(tǒng)調(diào)試:寫入簡單程序,用萬用表測出相應(yīng)端口的電壓,判斷出高低電平,改變外圍元件參數(shù),直至達(dá)到設(shè)計(jì)要求。</p><p>  軟件調(diào)試:采用了自頂向下的調(diào)試方法,先調(diào)試功能電路,在調(diào)試整個系統(tǒng),調(diào)試過程中軟件調(diào)試和硬件調(diào)試相結(jié)

23、合,提高了效率。</p><p>  3.1.2 聯(lián)合調(diào)試 </p><p>  軟、硬件聯(lián)合調(diào)試:當(dāng)軟硬件基本功能發(fā)分別調(diào)試后,進(jìn)行聯(lián)合調(diào)試,調(diào)試過程中出現(xiàn)的問題有:字符呈倒立顯示,文字只能顯示中間部分等;通過分析軟件程序和硬件電路,對程序進(jìn)行了大量的調(diào)試,最終實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。</p><p>  3.2 方案的修改、說明</p><p>

24、  設(shè)計(jì)方案通過論證和實(shí)際測試,系統(tǒng)原理正確且可行,未作大量修改,只通過改變外圍少量元件的參數(shù)對電路進(jìn)行優(yōu)化,逐步達(dá)到設(shè)計(jì)目標(biāo)要求。 </p><p><b>  4 系統(tǒng)測試</b></p><p>  4.1實(shí)驗(yàn)、測試儀器與測試試驗(yàn)方法</p><p>  基本儀器清單如表1所示。</p><p>  表1 基本儀

25、器清單</p><p>  4.2 測試數(shù)據(jù)及測試結(jié)果分析</p><p>  4.2.1 測試數(shù)據(jù)</p><p>  安裝好電池后,按下電源開關(guān),LED線陣開始閃爍,在光線適當(dāng)?shù)沫h(huán)境下?lián)u動棒時在亮燈扇形區(qū)域能夠讓人分辨出初始的“A”字符,按下切換按鈕開關(guān),顯示變換為“電”字,依次按下切換開關(guān)可分別辨認(rèn)出國際奧委會五環(huán)圖形,英文單詞“Welcome” ,漢字詞組“

26、 美亞”和北京奧運(yùn)會會徽圖形;當(dāng)30秒內(nèi)未擺動和按下中斷開關(guān),系統(tǒng)自動進(jìn)入休眠省電模式。</p><p>  4.2.2 測試結(jié)果分析</p><p><b>  5 設(shè)計(jì)總結(jié) </b></p><p>  本LED顯示棒可以實(shí)現(xiàn)以下要求或功能:</p><p>  1.該顯示棒依靠LED顯示字符或圖形,且24只LED燈

27、呈線狀排列,LED數(shù)量超過至少使用16只的要求 。</p><p>  2.顯示棒搖動時形成的亮燈區(qū)域能讓人分辨出字符“A” 漢字“ 電”和國際奧委會五環(huán)圖形。 </p><p>  3. 顯示棒搖動時形成的亮燈區(qū)域能讓人分辨出漢字詞組“ 美亞”和北京奧運(yùn)會會徽圖形;英文單詞“Welcome”稍有些模糊。</p><p>  4.顯示棒具有自動斷電功能,三十秒內(nèi)不使

28、用則將進(jìn)入休眠省電狀態(tài),以降低能耗。</p><p>  本設(shè)計(jì)制作完成了題目要求的基本部分的全部要求和發(fā)揮部分的大部分要求,而且具有一定的特色功能。 </p><p>  隨著科技進(jìn)步和生活水平的提高,越來越多的高科技的電子產(chǎn)品逐漸融入日常生活中,該種顯示棒操作簡易、效果新奇,深具吸引力,市場潛力巨大。</p><p>  當(dāng)然,我們的設(shè)計(jì)還存在著一些缺陷,由于設(shè)

29、計(jì)時間緊迫,字符或圖形編碼設(shè)計(jì)時,水平分格較少,導(dǎo)致顯示的水平幅度較低;由于掃描時間間隔設(shè)定的偏差,顯示時出現(xiàn)少量的疊影,同時顯示的穩(wěn)定還有待進(jìn)一步的提高,在此懇請各位老師批評指正。 </p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 趙建領(lǐng). 51系列單片機(jī)開發(fā)寶典[M]. 北京: 電子工業(yè)出版社, 2007.</p><

30、p>  [2] 邊春元等. C51單片機(jī)典型模塊設(shè)計(jì)及應(yīng)用[M]. 北京: 機(jī)械工業(yè)出版社,2008.</p><p>  [3] 彭 為等. 單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講[M]. 北京: 電子工業(yè)出版社, 2006.</p><p>  [4] 徐愛鈞等. Keil C51 V7.0單片機(jī)高級語言編程與μVision2應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2008.</p>

31、;<p>  [5] 李朝青. 單片機(jī)&DSP外圍數(shù)字IC技術(shù)手冊(第2版)[M]. 北京:北京航空航天大學(xué)出版社,2005.</p><p>  [9] 周志敏等. 集成穩(wěn)壓電源電路圖集[M]. 北京: 中國電力出版社, 2008.</p><p>  附錄A:系統(tǒng)操作說明 </p><p>  該系統(tǒng)實(shí)現(xiàn)了一個基于LED的顯示棒,24只LE

32、D燈呈線狀排列,搖動時形成的亮扇形區(qū)域能夠讓人分辨出字符,漢字,英文單詞,漢字詞組以及多種圖形。 </p><p>  (1) 搖動時或搖動前將握柄處按鈕開關(guān)按下,此時電源被接通,電路被觸發(fā)而啟動;</p><p>  (2)供電部分是 4 節(jié) 1.5V 5號電池,供電電壓為6V;</p><p> ?。?)按下顯示切換按鈕開關(guān),可切換顯示的內(nèi)容;</p>

33、;<p> ?。?)長期不使用時,請取出電池,另行保管。 </p><p>  附錄B:系統(tǒng)總電路原理圖</p><p>  附錄C:系統(tǒng)程序清單</p><p>  #ifndef __PS2__</p><p>  #define __PS2__</p><p>  //#define d

34、ebugprint1</p><p>  #include <reg51.h></p><p>  #include <stdio.h></p><p>  #include <absacc.h></p><p>  #include <string.h></p>&

35、lt;p>  #include <intrins.h></p><p>  typedef unsigned char byte;</p><p>  typedef unsigned int word;</p><p>  ////////////////////////////////////////////////////////

36、////////////////////////////////////////////////</p><p>  #define setbit(B,b)((B)|=(0x01<<(b)))</p><p>  #define clrbit(B,b)((B)&=~(0x01<<(b)))</p><p>  #def

37、ine tstbit(B,b)((B)&(0x01<<(b)))</p><p>  #define ASWORD(x,ofs) (*((word *)&x+ofs))</p><p>  #define ASBYTE(x,ofs) (*((byte *)&x+ofs))</p><p>  #

38、define XTALL11059200L</p><p>  #define BAUD9600</p><p>  #define BAUDRATE(x)(256-(byte)((XTALL)/(32L*12L*(x))))</p><p>  #define DELAY_US(x)(256-(word)(x*((XTALL)/

39、(12*1000*1000L))))</p><p>  #define DELAY_MS(x)(256-(word)(x*((XTALL)/(12L*1000L))))</p><p>  #define DLY_15MS (word)33333L</p><p>  #define TIMEOUT 0x

40、8000</p><p>  //#define PS2MAX14</p><p>  //#define KEYMAX 10</p><p>  sbit KEY=P1^4;</p><p>  sbit LED_POWER=P1^7;</p><

41、p>  sbit LS164_DATA=P3^0;</p><p>  sbit LS164_CLK=P3^1;</p><p>  sbit POWER =P1^5;</p><p>  sbit GND =P3^7;</p><p>  sbit TEST

42、=P3^5;</p><p>  #include "qs3kb.h"</p><p>  byte code A0[60]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0

43、xff,0xf8,0xc0,0x80,0x87,0x8f,0x81,0xc0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code A1[60]=

44、 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xe0,0x00,0x00,0x38,0x78,0xf8,0xf8,0xf8,0x38,0x00,0x00,0xc0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf

45、f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code A2[60]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

46、0xfd,0xe1,0x01,0x03,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x07,0x01,0xc1,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p>&l

47、t;p>  //byte code A0[24]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xc0,0x80,0x87,0x8f,0x81,0xc0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  //byte code A1[24]= {0xff,0xff,0xff,0xff,0xff,

48、0xf8,0xe0,0x00,0x00,0x38,0x78,0xf8,0xf8,0xf8,0x38,0x00,0x00,0xc0,0xf8,0xff,0xff,0xff,0xff,0xff};</p><p>  //byte code A2[24]= {0xff,0xff,0xfd,0xe1,0x01,0x03,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

49、0xff,0x3f,0x07,0x01,0xc1,0xf1,0xff,0xff};</p><p>  byte code dian0[60]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xf8,0xf9,0xf9,0xf9,0xf9,0xf9,

50、0x30,0x30,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code dian1[60]= {0xff,0xff

51、,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x10,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff

52、,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code dian2[60]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0

53、f,0x0f,0xcf,0xcf,0xcf,0xcf,0xcf,0x03,0x00,0xc8,0xcc,0xcc,0xcc,0xcc,0xcc,0x0c,0x8c,0xf8,0x71,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p> 

54、 byte code wuhuan0[60]= {0xff,0xff,0xff,0xff,0xff,0xfc,0xf0,0x73,0x3f,0x9f,0x9f,0xcf,0xcf,0xcf,0xcf,0x8f,0x9f,0x1f,0x37,0x73,0xf0,0xfc,0xf8,0x70,0x37,0x1f,0x9f,0x8f,0xcf,0xcf,0xcf,0xcf,0xcf,0x9f,0x1f,0x37,0x70,0xf0,0x0e,

55、0xf8,0x70,0x37,0x1f,0x9f,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0x9f,0x3f,0x37,0x70,0xf8,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code wuhuan1[60]= {0xff,0xff,0xff,0xff,0xff,0x8f,0x07,0x71,0xf9,0xfc,0xfc,0xfe,0xfe,0x

56、fc,0x70,0x32,0x1c,0xc8,0xc1,0x41,0x07,0x8f,0x0f,0x01,0xc0,0xc8,0x9c,0x34,0x70,0xf0,0x70,0x36,0x9e,0x9c,0xcc,0xc1,0x03,0x0f,0xcf,0x0f,0x03,0x91,0x19,0xf0,0xfc,0xfe,0xfe,0xfe,0xfe,0xfc,0xfc,0xf9,0xf3,0x07,0x0f,0xff,0xff,0x

57、ff,0xff,0xff};</p><p>  byte code wuhuan2[60]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xef,0xcf,0x0f,0x07,0x73,0xf1,0xf9,0xf9,0xfc,0xfc,0xfc,0xfc,0xf9,0xf9,0xf3,0x37,0x0f,0x8f,0x07,0x63

58、,0xf1,0xf9,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xf9,0xf9,0x73,0x17,0x0f,0xcf,0xef,0xef,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff} ;</p><p>  byte code welcome0[60]={0xff, 0xff,0x10,0x10,0xff,0xff

59、,0x10,0x10,0xff,0xff,0x10,0x10,0xff,0x10,0x10,0x1f,0x1f,0x11,0x11,0xff,0x1f,0x10,0x10,0x1f,0xff,0xff,0xff,0xff,0xf0,0x30,0x1f,0x1f,0x10,0x10,0xff,0xf1,0x30,0x1f,0x1f,0x30,0xf8,0xff,0x10,0x10,0x10,0xf8,0xff,0xf8,0x10,0x10

60、,0x10,0xff,0xff,0x10,0x10,0x1f,0x11,0x11,0xff,0xff };</p><p>  byte code welcome1[60]={0xff, 0xff,0xef,0x00,0xf0,0x70,0x03,0x01,0x70,0xf0,0x00,0xef,0xff,0x00,0x00,0x37,0x37,0x37,0xff,0xff,0xff,0x00,0x00,0xff

61、,0xff,0xf8,0xf8,0xff,0x00,0x00,0xff,0xff,0xee,0xee,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0xef,0x01,0x10,0x01,0xef,0x00,0x00,0xff,0xff,0x00,0x00,0x37,0x37,0xff,0xff,0xff};</p><p>  byte code welco

62、me2[60]={0xff, 0xff,0xff,0xcf,0x01,0x01,0xff,0xff,0x01,0x01,0xcf,0xff,0xff,0x01,0x01,0xf1,0xf1,0x01,0x01,0xff,0xf1,0x01,0x01,0xf1,0xf1,0x01,0x01,0xff,0x8f,0x03,0xf1,0xf1,0x01,0x07,0xff,0x8f,0x0c3,0xf1,0xf1,0x03,0x8f,0xff

63、,0x01,0x01,0xf1,0xff,0x0f,0xff,0xf1,0x01,0x01,0xf1,0xff,0x01,0x01,0xf1,0x01,0x01,0xff,0xff};</p><p>  byte code meiya0[60]={0xff,0xff,0xff,0xff,0xff,0xf3,0xf3,0xf3,0xf3,0xd3,0x93,0x33,0x73,0xf0,0xf0,0xf0,0x7

64、3,0x13,0x93,0xf3,0xf3,0xf3,0xf3,0xf3,0xff,0xff,0xff,0xff,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x30,0x30,0x3f,0x3f,0x3f,0x30,0x30,0x3f,0x3f,0x3f,0x3e,0x3f,0x3f,0xff,0xff,0xff,0xf3,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff};&l

65、t;/p><p>  byte code meiya1[60]={0xff,0xff,0xff,0xff,0xfe,0x76,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x00,0x00,0x00,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x76,0xfe,0xff,0xff,0xff,0xef,0x0f,0x10,0xf0,0xf0,0xff,0xff,0x

66、00,0x00,0xff,0xff,0xff,0x00,0x00,0xfe,0xf8,0x31,0x07,0xcf,0xff,0xff,0xff,0xfe,0x76,0x46,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code meiya2[60]={0xff,0xff,0xff,0xff,0xeb,0xe9,0xe9,0xe9,0xe3,0xe3,0

67、x67,0x2f,0x8f,0xcf,0xef,0x8f,0x2f,0x67,0x67,0xe3,0xe3,0xe9,0xe9,0xe9,0xeb,0xff,0xff,0xff,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x01,0x01,0xf9,0xf9,0xf9,0x01,0x01,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xeb,0xe9,0xe9,0xff,0

68、xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code huihui0[60]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x0c,0x04,0x06,0x06,0x07,0x7

69、7,0x76,0x77,0x07,0x06,0x0c,0x0c,0x88,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  byte code huihui1[60]= {0xff,0xff,0xff,

70、0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x80,0xc0,0xce,0xcf,0x03,0x33,0xff,0xce,0xf8,0x3c,0x0e,0x07,0x01,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

71、0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff} ;</p><p>  byte code huihui2[60]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0

72、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0f,0x8f,0xc8,0xf0,0x70,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p>  by

73、te timecount=0;</p><p>  byte dispstate=0;</p><p>  byte savehtime=0;</p><p>  byte saveltime=0;</p><p>  byte pretime=0;</p><p>  bit intflag=0;</p>

74、;<p>  bit backflag=0;</p><p>  //byte Display_data[4]={3,5,6,0};</p><p>  //byte dotflag=0;</p><p>  //byte pushflag=1;</p><p>  void Timer_Init(void);</p&

75、gt;<p>  void Int_Init(void);</p><p>  void keyproc(void);</p><p>  void setvalue(void);</p><p>  void Timer1_Delay(void);</p><p>  void uart_init(void);</p&g

76、t;<p>  void uart_putc(byte c);</p><p>  void delay(word w);</p><p>  void PS2_Receive () interrupt 0 using 0 {</p><p>  //pushflag=0;</p><p>  //byte usetime=0

77、;</p><p>  byte temp;</p><p>  EX0 = 0; //disable int0</p><p>  //diaable timer0</p><p>  //temp = TH0;</p><p>  //if(temp>=0x10){</

78、p><p>  TR0 = 0;</p><p>  savehtime = timecount;</p><p>  saveltime = TH0;</p><p>  timecount = 0;</p><p>  TH0 = 0x00;</p>

79、<p>  TL0 = 0x00;</p><p>  intflag = 1;</p><p>  TR0 = 1;</p><p><b>  //}</b></p><p>  //pretime = timecount;</p>

80、<p>  EX0 = 1; //enable int0</p><p>  return ; </p><p><b>  }</b></p><p>  void Timer0_Proc () interrupt 1 using 1 {</p>&

81、lt;p>  timecount++; </p><p>  TH0 = 0x00;</p><p>  TL0 = 0x00;</p><p>  TR0 = 1;</p><p>  return ; </p><p><b>  }&

82、lt;/b></p><p>  void main(void) {</p><p><b>  byte i;</b></p><p>  POWER = 0;</p><p>  GND = 0;</p><p>  TEST = 0;</p>&l

83、t;p>  uart_init();</p><p>  /*while(1){</p><p>  for(i=0;i<60;i++){</p><p>  LED_POWER=1; //led power off</p><p>  LS_164(meiya0[i]);</p><p>  LS

84、_164(meiya1[i]);</p><p>  LS_164(meiya2[i]);</p><p>  //uart_putc(meiya0[i]);</p><p>  //uart_putc(meiya1[i]);</p><p>  //uart_putc(meiya2[i]);</p><p> 

85、 LED_POWER=0; // led power on</p><p>  delay(20000);</p><p>  delay(20000);</p><p><b>  }</b></p><p><b>  }*/</b></p><p><b

86、>  while(1){</b></p><p>  Timer_Init();</p><p>  Int_Init(); </p><p>  while(KEY) {</p><p>  if(timecount>0xf0){</p><p>  POWER = 1; //po

87、wer off</p><p><b>  }</b></p><p>  else setvalue();</p><p><b>  //TEST=1;</b></p><p><b>  }</b></p><p>  keyproc();<

88、/p><p><b>  } </b></p><p><b>  }/*</b></p><p>  void Display(void){</p><p><b>  byte i;</b></p><p><b>  byte j;</

89、b></p><p>  for(i=0;i<4;i++){</p><p>  j=Display_data[i];</p><p>  LS_164(TAB_LED[j]);</p><p><b>  }</b></p><p><b>  } */</b>

90、;</p><p>  void Timer_Init(void){</p><p>  TMOD = 0x11;</p><p>  TH0 = 0x00;</p><p>  TL0 = 0x00;</p><p>  TR0 = 1;</p><p><

91、b>  }</b></p><p>  void Timer1_Init(void){</p><p><b>  }</b></p><p>  void Int_Init(void){</p><p>  IT0 = 1;</p><p>  PT0 = 1;

92、 //timer0 prioty is higher </p><p>  IE = 0x83;</p><p><b>  }</b></p><p>  void keyproc(void){</p><p>  if(KEY==0){</p><p>  while(KEY==

93、0) ;</p><p>  dispstate++;</p><p>  if(dispstate>=6) dispstate=0;</p><p><b>  }</b></p><p>  uart_putc((0xff>>(dispstate+1)));</p><p>

94、<b>  }</b></p><p>  void setvalue(void){</p><p>  byte i,j,loop_num,delay_num;</p><p>  byte *p0,*p1,*p2;</p><p>  if(intflag){</p><p>  intfla

95、g = 0;</p><p>  switch(dispstate){</p><p><b>  case 0:{</b></p><p><b>  p0=A0;</b></p><p><b>  p1=A1;</b></p><p>&l

96、t;b>  p2=A2;</b></p><p>  loop_num=60;</p><p>  delay_num=2;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  ca

97、se 1:{</b></p><p><b>  p0=dian0;</b></p><p><b>  p1=dian1;</b></p><p><b>  p2=dian2;</b></p><p>  loop_num=60;</p><

98、p>  delay_num=2;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 2:{</b></p><p>  p0=wuhuan0;</p><p>  p1=

99、wuhuan1;</p><p>  p2=wuhuan2;</p><p>  loop_num=60;</p><p>  delay_num=2;</p><p><b>  break;</b></p><p><b>  }</b></p><p

100、><b>  case 3:{</b></p><p>  p0=welcome0;</p><p>  p1=welcome1;</p><p>  p2=welcome2;</p><p>  loop_num=60;</p><p>  delay_num=2;</p>

101、<p><b>  break;</b></p><p><b>  }</b></p><p>  case 4:{p0=meiya0;p1=meiya1;p2=meiya2;</p><p>  loop_num=60;delay_num=2;break;}</p><p>

102、  case 5:{p0=huihui0;p1=huihui1;p2=huihui2;</p><p>  loop_num=60;delay_num=2;break;}</p><p>  default:{p0=A0;p1=A1;p2=A2;</p><p>  loop_num=24;delay_num=5;break;}</p>

103、;<p><b>  }</b></p><p>  for(i=0;i<loop_num;i++){</p><p>  LED_POWER=1; //led power off</p><p>  //LS_164(meiya0[i]);</p><p>  //LS_164(meiya

104、1[i]);</p><p>  //LS_164(meiya2[i]);</p><p>  uart_putc(*(p0+i));</p><p>  uart_putc(*(p1+i));</p><p>  uart_putc(*(p2+i));</p><p>  LED_POWER=0; // le

105、d power on</p><p>  for(j=0;j<delay_num;j++) Timer1_Delay();</p><p>  //if(backflag) {//backflag=0;//break;</p><p><b>  //}</b></p><p><b>  }&l

106、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Timer1_Delay(void){</p><p>  if(savehtime>0xc0){</p><p>  savehtime =

107、 0x08;</p><p><b>  }</b></p><p>  TH1 = 0xff-savehtime;</p><p>  TL1 = 0xff-saveltime;</p><p><b>  TR1 = 1;</b></p><p>  while(T

108、F1==0){</p><p>  if(intflag){//backflag =1;TR1= 0;return ;}</p><p>  } TF1= 0; TR1= 0;</p><p><b>  }</b></p><p>  void uart_init(void){ SCON=0x00; }&

109、lt;/p><p>  void uart_putc(byte c ) {TI=0;SBUF=c;while (!TI) ;}</p><p>  void delay(word w) {word i; for (i=0;i<w;i++);</p><p>  附錄D:系統(tǒng)主要元器件清單 </p><p>  表2 系統(tǒng)元器件清單<

溫馨提示

  • 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

提交評論