2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(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>  畢業(yè)設(shè)計(jì)說明書</b></p><p>  設(shè)計(jì)題目: 基于單片機(jī)的彩燈控制設(shè)計(jì) </p><p>  專 業(yè): 應(yīng)用電子技術(shù) </p><p>  班 級(jí): 應(yīng)電08-3 </p><p> 

2、 學(xué) 號(hào): </p><p>  姓 名: </p><p>  指導(dǎo)教師: </p><p><b>  二0一0年七月五日</b></p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書

3、</p><p>  備注:任務(wù)書由指導(dǎo)教師填寫,一式二份。其中學(xué)生一份,指導(dǎo)教師一份。</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p><b>  緒 論2</b></p><p>  

4、第1章 彩燈控制器方案設(shè)計(jì)和選擇3</p><p>  1.1 設(shè)計(jì)要求3</p><p>  1.2 系統(tǒng)功能3</p><p>  1.3 方案選擇3</p><p>  第2章 硬件設(shè)計(jì)5</p><p>  2.1 系統(tǒng)整體硬件電路和各部分介紹5</p><p>  2.1.

5、1 單片機(jī)AT89C525</p><p>  2.1.2 復(fù)位電路7</p><p>  2.1.3 時(shí)鐘電路8</p><p>  2.2 74HC595的引腳及功能8</p><p>  2.3 驅(qū)動(dòng)模塊9</p><p>  2.4 顯示模塊簡(jiǎn)介11</p><p>  2.

6、5 彩燈控制器總圖12</p><p>  第3章 軟件設(shè)計(jì)14</p><p>  3.1 語言選擇新型14</p><p>  3.2 程序功能說明14</p><p>  3.3 主程序流程圖15</p><p>  3.4 程序簡(jiǎn)介15</p><p>  第4章 彩燈控制器

7、的調(diào)試與仿真16</p><p><b>  結(jié) 論22</b></p><p><b>  參考文獻(xiàn)24</b></p><p>  附錄1 源程序清單25</p><p>  附錄2 整機(jī)電路圖28</p><p>  附錄3 元器件明細(xì)表29</p&

8、gt;<p><b>  摘 要</b></p><p>  單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。單片機(jī)比專用處理器更適

9、合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)?,F(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。</p><p>  手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他

10、計(jì)算的總和,甚至比人類的數(shù)量還要多。本設(shè)計(jì)是一種基于AT89C52單片機(jī)的彩燈控制方案,實(shí)現(xiàn)對(duì)LED彩燈的控制。</p><p>  本方案以AT89C52單片機(jī)作為主控核心,用32個(gè)LED構(gòu)成顯示模塊、用74HC595作為驅(qū)動(dòng)模塊,由編程實(shí)現(xiàn)亮燈循環(huán)模式。由在顯示模塊上有32個(gè)LED彩燈,根據(jù)用戶需要可以編寫若干種亮燈模式. 本系統(tǒng)具有體積小、硬件少、電路結(jié)構(gòu)簡(jiǎn)單及容易操作和閱讀等優(yōu)點(diǎn)。該LED彩燈控制器實(shí)際應(yīng)

11、用效果較好,亮燈模式多。與其他LED彩燈相比,具有體積小、價(jià)格低、低能耗等優(yōu)點(diǎn)。在能源比較匱乏的今天,彩燈的循環(huán)控制在顯示方面更表現(xiàn)出一種節(jié)約能源的魅力.這將使彩燈具有更廣闊的發(fā)展天地。</p><p>  關(guān)鍵詞 AT89C52;74HC595;循環(huán)LED彩燈</p><p><b>  緒 論</b></p><p>  隨著人們生活環(huán)境的

12、不斷改善和美化,在許多場(chǎng)合可以看到彩色霓虹燈。LED彩燈由于其豐富的燈光色彩,低廉的造價(jià)以及控制簡(jiǎn)單等特點(diǎn)而得到了廣泛的應(yīng)用。彩燈的運(yùn)用已經(jīng)遍布于人們的生活中,從歌舞廳到卡拉OK包房,從節(jié)的祝賀到常生活中的點(diǎn)綴。這些不緊說明了我們對(duì)生活的要求有了質(zhì)的飛躍,也說明科技在現(xiàn)實(shí)運(yùn)用中有了較大的發(fā)展,用彩燈來裝飾街道和城市建筑物已經(jīng)成為一種時(shí)尚。但目前市場(chǎng)上各式樣的LED彩燈控制器大多數(shù)用全硬件電路實(shí)現(xiàn),電路結(jié)構(gòu)復(fù)雜、功能單一,這樣一旦制作成品

13、只能按照固定的模式閃亮,不能根據(jù)不同場(chǎng)合、不同時(shí)間段的需要來調(diào)節(jié)亮燈時(shí)間、模式、閃爍頻率等動(dòng)態(tài)參數(shù)。這種彩燈控制器結(jié)構(gòu)往往有芯片過多、電路復(fù)雜、功率損耗大等缺點(diǎn)。此外從功能效果上看,亮燈模式少而且樣式單調(diào),缺乏用戶可操作性,影響亮燈效果。因此有必要對(duì)現(xiàn)有的彩燈控制器進(jìn)行改進(jìn)。本文提出了一種基于AT89C52單片機(jī)的彩燈控制方案,實(shí)現(xiàn)對(duì)LED彩燈的控制。</p><p>  第1章 彩燈控制器方案設(shè)計(jì)和選擇<

14、/p><p><b>  1.1 設(shè)計(jì)要求</b></p><p>  本次畢業(yè)設(shè)計(jì)要求設(shè)計(jì)一個(gè)可編程彩燈控制器,其設(shè)計(jì)要求如下:</p><p>  1、用32個(gè)發(fā)光二極管作為顯示電路。</p><p>  2、實(shí)現(xiàn)LED動(dòng)態(tài)顯示。</p><p>  3、能連續(xù)循環(huán)顯示。</p>&

15、lt;p><b>  1.2 系統(tǒng)功能 </b></p><p>  彩燈控制器可直接與220 V交流市電相連接,經(jīng)過開關(guān)電源變換,輸出直流工作電壓,一方面為管內(nèi)LED模塊提供12 V工作電源,另一方面為主控模塊單片機(jī)系統(tǒng)提供5 V工作電源。整個(gè)系統(tǒng)工作由軟件程序控制運(yùn)行。上電后,彩燈控制器按程序設(shè)計(jì)好的模式進(jìn)行顯示,由全滅→按程序顯示→全都熄滅為一個(gè)周期。然后循環(huán)繼續(xù)工作。</

16、p><p><b>  1.3 方案選擇</b></p><p><b>  方案1:</b></p><p>  可采用AT89C52作為主控制芯片,用74LS164作為驅(qū)動(dòng),用4個(gè)164分別接8個(gè)LED,32個(gè)LED構(gòu)成顯示模塊??捎肅或者匯編編程實(shí)現(xiàn)。方案框圖如圖1-1:</p><p>  方案

17、1用了164作為驅(qū)動(dòng),編程有些復(fù)雜,實(shí)現(xiàn)功能比較多,但164不具有數(shù)據(jù)鎖存功能,顯示不穩(wěn)定,容易受干擾。</p><p><b>  方案2:</b></p><p>  可用AT89C52作為主控芯片,用74HC595作為驅(qū)動(dòng),用4個(gè)595分別接8個(gè)LED,32個(gè)LED構(gòu)成顯示模塊。可用C或者匯編編程實(shí)現(xiàn)。方案框圖如圖1-2:</p><p>

18、;  方案2采用595作為驅(qū)動(dòng),由于595有數(shù)據(jù)鎖存功能,顯示穩(wěn)定,不易受干擾,顯示方案也比方案1多。</p><p>  綜合考慮:本設(shè)計(jì)采AT89C52作為主控芯片,595作為驅(qū)動(dòng),實(shí)現(xiàn)彩燈循環(huán)顯示。</p><p><b>  第2章 硬件設(shè)計(jì)</b></p><p>  2.1 系統(tǒng)整體硬件電路和各部分介紹</p><

19、;p>  2.1.1 單片機(jī)AT89C52</p><p>  圖2-1 AT89C52引腳圖</p><p><b>  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0口:P0口是一組8 位漏極開路型雙向I/O口, 也即地址/數(shù)據(jù)總線

20、復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8gTTL邏輯門電路,對(duì)端口P0寫“1”時(shí),可作為高阻抗輸入端用。在訪問個(gè)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。</p><p>  P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O口, P1 的輸出

21、緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL 邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),參表2-1。Flash編程和程序校驗(yàn)期間,P1接收低8 位地址。表.P1.0和P1.1的第二功

22、能</p><p>  表 2-1 P1.0和P1.1的第二功能</p><p>  P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O 口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL 邏輯門電路。對(duì)端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或1

23、6位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。Flash 編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。</p><p>  P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)4 個(gè)TTL 邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(II

24、L)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能P3口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩

25、器的輸出。</p><p>  振蕩器特性:AT89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容C1、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。使用石英晶體,我們推薦電容使用30pF±10pF,使用陶瓷諧振器建議選擇40pF

26、7;10F。用戶也可以采用外部時(shí)鐘。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。</p><p>  AT89C52主要特性:</p><p>  兼容MCS51指令系統(tǒng) , 8k可反復(fù)擦寫(>1000次)Flash ROM </p><p>  32個(gè)雙向I/O口,256x8bit內(nèi)部RAM </p>

27、<p>  3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 ,時(shí)鐘頻率0-24MHz </p><p>  2個(gè)串行中斷 ,可編程UART串行通道 </p><p>  2個(gè)外部中斷源,共6個(gè)中斷源 </p><p>  2個(gè)讀寫中斷口線,3級(jí)加密位 </p><p>  低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功。</p><

28、;p>  2.1.2 復(fù)位電路</p><p>  為確保兩點(diǎn)間溫度控制系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一般電路正常工作需要供電電源為5V±5%,即4.75~5.25V。</p><p>  復(fù)位是單片機(jī)的初始化操作,其目的是使CPU及各專用寄存器處于一個(gè)確定的初始狀態(tài)。如:把PC的內(nèi)容初始化為0000H,使單片機(jī)從0000

29、H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需要復(fù)位以使其恢復(fù)正常工作狀態(tài)。</p><p>  RST端的外部復(fù)位電路有兩種操作方式:上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種,本系統(tǒng)設(shè)計(jì)采用按鍵電平復(fù)位,如圖2-2所示。按鍵電平復(fù)位是相當(dāng)于RST端通過電阻接高電平來實(shí)現(xiàn)單片機(jī)的復(fù)位。</p><

30、p><b>  圖2-2 復(fù)位電路</b></p><p>  2.1.3 時(shí)鐘電路</p><p>  單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)。</p><p>  單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。本系統(tǒng)

31、設(shè)計(jì)采用內(nèi)部振蕩方式,如圖2-3所示。MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)際使用中常采用這種方式。</p><p><b>  圖2-3 時(shí)鐘電路</b></p><p><b>  主控模塊:</b>&l

32、t;/p><p>  本設(shè)計(jì)用AT89C52作為主控模塊,用P10口作為信號(hào)口與驅(qū)動(dòng)模塊相連。AT89C52單片機(jī)作為主控模塊,由C1, C2 和X1構(gòu)成振蕩器,引腳XTAL1 和XTAL2 分別是輸入端和輸出端。P1口的P10作為信號(hào)輸出,將控制程序燒入單片機(jī)上電后開始工作。</p><p>  2.2 74HC595的引腳及功能</p><p>  圖2-4 74H

33、C595引腳圖</p><p>  Q0 Q1 Q7 15, 1, 7 并行數(shù)據(jù)輸出</p><p><b>  GND 8 地</b></p><p>  Q7 9 串行數(shù)據(jù)輸出</p><p>  MR 10 主復(fù)位(低電平)</p><p>  SHCP 11 移位寄存器時(shí)鐘輸入</p

34、><p>  STCP 12 存儲(chǔ)寄存器時(shí)鐘輸入</p><p>  OE 13 輸出有效(低電平)</p><p>  DS 14 串行數(shù)據(jù)輸入</p><p><b>  VCC 16 電源</b></p><p>  74HC595主要特性:</p><p>  8位串行

35、輸入 /8位串行或并行輸出 存儲(chǔ)狀態(tài)寄存器,三種狀態(tài)輸出寄存器可以直接清除100MHz的移位頻率。并行輸出,總線驅(qū)動(dòng)。595移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。</p><p><b>  2.3 驅(qū)動(dòng)模塊</b></p>&

36、lt;p>  本設(shè)計(jì)用74HC595作為驅(qū)動(dòng),有4個(gè)74HC595構(gòu)成驅(qū)動(dòng)模塊,將單片機(jī)的P10,P11,P13,P12口分別與595的SH_CP,DS,ST_CP,MR相連,并注上相應(yīng)標(biāo)號(hào)。DS作為數(shù)據(jù)口,SH_CP和ST_CP作為時(shí)鐘,第一個(gè)595的輸入端DS與P11口相連,第一個(gè)595輸出端與第二個(gè)595輸入端相連,直到連到最后一個(gè)。將輸出端與LED相連構(gòu)成驅(qū)動(dòng)模塊。驅(qū)動(dòng)模塊圖如圖2-5:</p><p&

37、gt;<b>  驅(qū)動(dòng)模塊工作原理:</b></p><p>  本設(shè)計(jì)采用AT89C52的P10口輸出信號(hào),P11和P12作為時(shí)鐘輸入,用了4個(gè)74HC595。上電后P10口輸出信號(hào)給595,74HC595是含8位串入、串/并出移位寄存器和8位三態(tài)輸出鎖存器。寄存器和鎖存器都有自己的時(shí)鐘輸入,都是上升沿有效。當(dāng)SH_CP從低到高電平跳變時(shí),串行輸入數(shù)據(jù)移入寄存器;當(dāng)ST_CP從低到高電平跳

38、變時(shí),寄存器的數(shù)據(jù)置入鎖存器;清除端MR的低電平只對(duì)寄存器復(fù)位(Q7為低電平),而對(duì)鎖存器無影響。當(dāng)輸出允許控制E為高電平時(shí),并行輸出(O0-O7)為高阻態(tài),而串行輸出(Q7)不受影響。74HC595最多只需要5根控制線,即SH_CP、DS、ST_CP、MR和E。其中MR可以直接接到高電平,用軟件來實(shí)現(xiàn)寄存器清零;把SH_CP、ST_CP、MR三根線和單片機(jī)的P10、P13、P12口相接,數(shù)據(jù)從DS口送入74HC595,在每個(gè)SH_CP

39、的上升沿,DS口上的數(shù)據(jù)移入寄存器,在SH_CPMR的第9個(gè)上升沿,數(shù)據(jù)開始從Q7移出。把第一個(gè)74HC595的Q7和第二個(gè)74HC595的DS相連,數(shù)據(jù)即移入第二個(gè)74HC595中,照此一個(gè)一個(gè)接下去,直到接到第4個(gè)。數(shù)據(jù)全部送完</p><p>  2.4 顯示模塊簡(jiǎn)介</p><p>  顯示模塊有32個(gè)LED構(gòu)成,分成4行8列,每行8個(gè),每列4個(gè)。每個(gè)LED分別與0.25k的電阻相

40、連,在接上電源。當(dāng)程序燒入單片機(jī),上電后在595的驅(qū)動(dòng)下按程序循環(huán)顯示。如圖2-6:</p><p>  2.5 彩燈控制器總圖</p><p>  將主控模塊,驅(qū)動(dòng)模塊,顯示模塊連接起來構(gòu)成控制器總圖。將程序燒入單片機(jī),上電后,信號(hào)由P1口輸出送入595,在由595驅(qū)動(dòng)顯示模塊按程序設(shè)定的模式循環(huán)顯示。如圖2-7:</p><p><b>  第3章 軟

41、件設(shè)計(jì)</b></p><p>  3.1 語言選擇新型</p><p>  LED彩燈控制器最大特點(diǎn)在于所有亮燈模式均由軟件控制完成。本設(shè)計(jì)采用AT89C51單片機(jī)為主控芯片,所以程序?qū)崿F(xiàn)可以用匯編語言或C語言,也可以匯編和C混合使用。匯編語言有其一定的優(yōu)點(diǎn),比如:能夠直接訪問與硬件相關(guān)的存儲(chǔ)器或I/O端口;能夠不受編譯器的限制,對(duì)生成的二進(jìn)制代碼進(jìn)行完全的控制;能夠根據(jù)特定

42、的應(yīng)用對(duì)代碼做最佳的優(yōu)化,提高運(yùn)行速度;能夠最大限度地發(fā)揮硬件的功能;用匯編語言編寫的程序比用高級(jí)語言編寫的程序所要求的存儲(chǔ)空間與執(zhí)行時(shí)間將顯著減少等。但是匯編語言是一種層次非常低的語言,它僅僅高于直接手工編寫二進(jìn)制的機(jī)器指令碼,因此不可避免地存在一些缺點(diǎn)。比如:編寫的代碼非常難懂,不好維護(hù);很容易產(chǎn)生Bug,難于調(diào)試;只能針對(duì)特定的體系結(jié)構(gòu)和處理器進(jìn)行優(yōu)化;開發(fā)效率很低,時(shí)間長(zhǎng)且單調(diào)。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種

43、程序?qū)R編語言翻譯成機(jī)器語言等。而C語言也有其缺點(diǎn),主要是表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上做的有很大缺陷;C語言的語法限制不太嚴(yán)格,對(duì)變量的類型約束不嚴(yán)格,影響程序的安全性,對(duì)數(shù)組下標(biāo)越界不作檢查等。但是C語言簡(jiǎn)潔緊湊、靈活方便 、運(yùn)算符豐</p><p>  3.2 程序功能說明</p><p>  LED彩燈控制器所有亮燈模式均由軟件控制完成??梢愿鶕?jù)需要來確定各種模

44、式工作時(shí)間Ti,以及確定在各種亮燈模式Mode l_i內(nèi)點(diǎn)亮和熄滅各種顏色LED燈的時(shí)刻。整個(gè)系統(tǒng)軟件由主程序(Main)、各個(gè)模式子程序(Model_i)、顯示子程序(Display)等程序組成。根據(jù)模式需要計(jì)算好各控制信號(hào)的發(fā)生時(shí)刻,根據(jù)不同的模式Mo del_i可以設(shè)定不同的工作時(shí)間Ti通過P1口輸出,使LED彩燈按照設(shè)計(jì)的模式工作。亮燈模式子程序Model_i可以編寫若干(n種),只要控制好各色燈觸發(fā)和熄滅時(shí)刻就可以組合成各種亮

45、燈效果。本設(shè)計(jì)的功能是通過改變LED亮滅方式使彩燈輪流顯示,上電后在缺省狀態(tài)順序調(diào)用Model_i花樣亮燈模式,由從右到左同步依次點(diǎn)亮→兩列一組從右到左同步依次點(diǎn)亮→6,7,8列點(diǎn)亮→2,3,4列點(diǎn)亮→右4列亮左4列滅→右四列滅左4列亮→3,4,7,8列亮→2,3,4,6,7,8列亮→全亮→奇數(shù)列亮→偶數(shù)列亮→從兩邊到中間依次點(diǎn)亮→從中間到兩邊依次熄滅→前兩行亮后兩行滅→前兩行滅后兩行亮→左4列亮右4列滅→左4列滅右四列亮→對(duì)角亮→OK

46、圖形構(gòu)成亮燈模式的循環(huán)。</p><p>  3.3 主程序流程圖</p><p>  圖 3-1 主程序流程圖</p><p><b>  3.4 程序簡(jiǎn)介</b></p><p>  本設(shè)計(jì)用了P1口的P10,P11,P12和P13。程序有主程序,子程序,延時(shí)程序。 定義LED低電平亮高電平滅。由于顯示方式比較多,需

47、要定義一個(gè)數(shù)組來存放顯示數(shù)據(jù)。當(dāng)顯示方式比較簡(jiǎn)單逐個(gè)點(diǎn)亮?xí)r還可以調(diào)用流水燈程序段。延時(shí)一定時(shí)間后按顯示數(shù)據(jù)依次顯示下去直到最后一種顯示方式。延時(shí)一定時(shí)間后循環(huán)繼續(xù)顯示。</p><p>  第4章 彩燈控制器的調(diào)試與仿真</p><p>  本設(shè)計(jì)采用Proteus.Professional(單片機(jī)仿真軟件)進(jìn)行仿真,由于電路圖是用Protel 99 SE所繪制,Proteus不能識(shí)別,所

48、以進(jìn)行仿真前打開Proteus新建文件→添加元件→在新建文件界面放置元件→布局→連線→修改。確定無誤后保存。程序則由KEIL編譯,編譯成功后保存。在打開Proteus→打開電路圖→雙擊單片機(jī)→添加程序→點(diǎn)擊開始→進(jìn)行仿真。若不能實(shí)現(xiàn)預(yù)期效果,則檢查電路圖和程序進(jìn)行修改程序中數(shù)組顯示的結(jié)果。部分仿真圖如下:</p><p><b>  圖4-1 彩燈顯示</b></p><

49、p>  此圖為左4列亮右4列滅顯示方式,對(duì)應(yīng)程序數(shù)組中的0x0f0f0f0f顯示方式。</p><p><b>  圖4-2 彩燈顯示</b></p><p>  此圖是1,2列和5,6列同時(shí)亮顯示方式,對(duì)應(yīng)程序數(shù)組中的0xcccccccc顯示方式。</p><p><b>  圖4-3 彩燈顯示</b></p

50、><p>  此圖是奇數(shù)列亮顯示方式,對(duì)應(yīng)程序數(shù)組中的0x55555555顯示方式。</p><p><b>  圖4-4 彩燈顯示</b></p><p>  此圖是偶數(shù)列顯示方式,對(duì)應(yīng)程序數(shù)組中的0xaaaaaaaa顯示方式。</p><p><b>  圖4-5 彩燈顯示</b></p>

51、;<p>  此圖是對(duì)角亮顯示方式,對(duì)應(yīng)程序數(shù)組中的0x0f0ff0f0顯示方式。</p><p><b>  圖4-6 彩燈顯示</b></p><p>  此圖是最后一種顯示方式“OK”,對(duì)應(yīng)程序數(shù)組中的0xf61313f6顯示方式。</p><p><b>  結(jié) 論</b></p>&

52、lt;p>  在本設(shè)計(jì)過程中雖然遇到很多困難,但是從中收獲很多。本設(shè)計(jì)主要是用單片機(jī)設(shè)計(jì)彩燈控制器,用C語言編程實(shí)現(xiàn)對(duì)彩燈亮滅模式的控制,用AT89C52作為主控芯片,用74HC595作為驅(qū)動(dòng),其中硬件設(shè)計(jì)與軟件設(shè)計(jì)都離不開對(duì)單片機(jī)知識(shí)的再學(xué)習(xí)。這讓我對(duì)單片機(jī)知識(shí)的理解更加深刻。單片機(jī)由于去造價(jià)低廉控制簡(jiǎn)單等特點(diǎn)而得到廣泛應(yīng)用。在LED設(shè)計(jì)中選用單片機(jī)可以減少很多不必要的麻煩。本次設(shè)計(jì)需要根據(jù)要求運(yùn)用所學(xué)知識(shí)將其付諸實(shí)踐來完成。這

53、并不是在課堂上的單純聽懂,或者課后看書過程中的深入理解,這需要的是一種理論聯(lián)系實(shí)踐的能力。理論知識(shí)往往都是在一些理想狀態(tài)下的假設(shè)論,而實(shí)際的動(dòng)手操作則完全不同,需要考慮實(shí)際中的很多問題。有些知識(shí)在理論上可能完全沒錯(cuò)但到了實(shí)際中則不然。比如在動(dòng)筆做題時(shí)我們是不用考慮導(dǎo)線的電阻的,但在實(shí)際中,導(dǎo)線電阻有時(shí)是會(huì)造成花型變化的錯(cuò)亂,所以我們應(yīng)盡量在連接電路時(shí)選擇最短路徑。這次的設(shè)計(jì)中應(yīng)用了整塊板子,對(duì)電路板更加了解了。設(shè)計(jì)中通過對(duì)電路的連接也懂

54、得了如何通過設(shè)計(jì)的分析對(duì)所連電路的整體布局,如何更好的放置芯片在最合適的位置。在導(dǎo)線的連接上,如何選擇導(dǎo)線走向是關(guān)鍵,我們應(yīng)該盡量保證所連電</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 任為民. 電子技術(shù)基礎(chǔ)課程設(shè)計(jì). 1997年5月第一版. 北京:中央廣播大學(xué)出版社. 1997.5</p><p>  [2] 張

55、毅坤、陳善久、裘雪紅. 單片微型計(jì)算機(jī)原理機(jī)及應(yīng)用. 1998年第一版.西安:西安電子科技大學(xué)出版社. 1998.8</p><p>  [3] 譚浩強(qiáng). C程序設(shè)計(jì). 第2版. 北京:清華大學(xué)出版社. 2005.6</p><p>  [4] 田立,田清,代方震. 51單片機(jī)C語言程序設(shè)計(jì)快速入門. 北京:電子工業(yè)出版社. 2007</p><p>  [5] A

56、T89C52中文資料. 電子譯站</p><p>  [6] 劉樂善,歐陽星明,劉學(xué)清. 微型計(jì)算機(jī)借口技術(shù)及應(yīng)用. 2000年4月第一版. 武昌:華中科技大學(xué)出版社. 2000.4</p><p><b>  附錄1 源程序清單</b></p><p>  #include <reg52.h></p><p&

57、gt;  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define ulong unsigned long</p><p>  #define BUF_LONG 42</p><p>  sbit ST_CP = P1^3;</p&

58、gt;<p>  sbit SH_CP = P1^0;</p><p>  sbit MR = P1^2;</p><p>  sbit DS = P1^1;</p><p>  void delay_ms(uint);</p><p>  void writ_data(ulong);</p><p> 

59、 ulong code data_buf[BUF_LONG] = {</p><p>  0xfefefefe,0xfdfdfdfd,0xfbfbfbfb,0xf7f7f7f7,0xefefefef,0xdfdfdfdf,0xbfbfbfbf,0x7f7f7f7f,0xfcfcfcfc,0xf3f3f3f3,0xcfcfcfcf,0x3f3f3f3f,0xf8f8f8f8,0x8f8f8f8f,0xf0f0f0f

60、0,0x0f0f0f0f,0xcccccccc,0x88888888,0x00000000,0x7f7f7f7f,0x5f5f5f5f,0x57575757,0x55555555,0xbfbfbfbf,0xafafafaf,0xabababab,0xaaaaaaaa,0x7e7e7e7e,0x3c3c3c3c,0x18181818,0x00000000,0x18181818,0x3c3c3c3c,0x7e7e7e7e,0xfffffff

61、f,0x0000ffff,0xffff0000,0x0f0f0f0f,0xf0f0f0f0,0x0f0ff0f0,0xf0f00f0f,0xf61313f6</p><p><b>  };</b></p><p>  void main()</p><p><b>  {</b></p><p>

62、  ulong txdata = 0x1;</p><p><b>  uchar i;</b></p><p>  ST_CP = 0;</p><p>  SH_CP = 0;</p><p><b>  MR = 0;</b></p><p>  ST_CP = 1;&

63、lt;/p><p>  ST_CP = 0;</p><p><b>  MR = 1;</b></p><p>  delay_ms(800);</p><p>  writ_data(0XFFFFFFFF);</p><p>  delay_ms(800);</p><p>

64、;<b>  while(1)</b></p><p><b>  {</b></p><p>  for (i=0;i<BUF_LONG;i++)</p><p><b>  {</b></p><p>  writ_data(data_buf[i]);</p&g

65、t;<p>  delay_ms(800);</p><p><b>  }</b></p><p><b>  } </b></p><p><b>  while(1)</b></p><p><b>  {</b></p&g

66、t;<p>  txdata = (0x01);</p><p>  for (i=32;i;i--)</p><p><b>  {</b></p><p>  writ_data(~txdata);</p><p>  txdata <<= 1;</p><p>  

67、delay_ms(400);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void writ_data(ulong txdata)</p><p><b

68、>  {</b></p><p><b>  uchar i;</b></p><p>  SH_CP = 0;</p><p>  ST_CP = 0;</p><p>  for (i=32;i;i--)</p><p><b>  {</b></

69、p><p>  txdata <<= 1;</p><p><b>  DS = CY;</b></p><p>  SH_CP = 1;</p><p>  SH_CP = 0;</p><p><b>  }</b></p><p>  S

70、T_CP = 1;</p><p>  ST_CP = 0;</p><p><b>  }</b></p><p>  void delay_ms(uint t)</p><p><b>  {</b></p><p><b>  uint t1;</b&g

71、t;</p><p>  for (;t;t--)</p><p><b>  {</b></p><p>  for (t1=110;t1;t1--);</p><p><b>  }</b></p><p><b>  }</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. 眾賞文庫僅提供信息存儲(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)論