單片機(jī)課程設(shè)計(jì)五彩燈控制器_第1頁(yè)
單片機(jī)課程設(shè)計(jì)五彩燈控制器_第2頁(yè)
單片機(jī)課程設(shè)計(jì)五彩燈控制器_第3頁(yè)
單片機(jī)課程設(shè)計(jì)五彩燈控制器_第4頁(yè)
單片機(jī)課程設(shè)計(jì)五彩燈控制器_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 湖南文理學(xué)院課程設(shè)計(jì)報(bào)告 課程名稱: 單片機(jī)技術(shù)課程設(shè)計(jì) 課題名稱: 五彩燈控制器 系 部: 電氣與信息工程學(xué)院 專業(yè)班級(jí): 自動(dòng)化09103 學(xué)生姓名: 周聲平 指導(dǎo)教師: 梅英 完成時(shí)間: 2012年6月15日 報(bào)告成績(jī): 評(píng)閱意見(jiàn): 評(píng)閱教師 日期 目 錄 一 設(shè)計(jì)題目3二 設(shè)計(jì)要求3三 設(shè)計(jì)作用及軟件3四 所用設(shè)備與目的3五 系統(tǒng)設(shè)計(jì)方案3 1 系統(tǒng)總體設(shè)計(jì)3 2 系統(tǒng)工作原理4六 系統(tǒng)硬件設(shè)計(jì)7 1 單片機(jī)最小系統(tǒng)7 2 單元電路設(shè)計(jì)8七 系統(tǒng)軟件設(shè)計(jì)10 1 主程序流程設(shè)計(jì)10 2 子程序設(shè)計(jì).13八 實(shí)驗(yàn)調(diào)試結(jié)果.14九 設(shè)計(jì)中的問(wèn)題及解決方法.19十 設(shè)計(jì)心得.19十一 參考

2、文獻(xiàn).20十二 程序清單.20 一 設(shè)計(jì)題目 五彩燈控制器 二 設(shè)計(jì)要求8個(gè)彩燈的控制電路的任務(wù)為:用at89c51單片機(jī)設(shè)計(jì)設(shè)計(jì)5個(gè)按鍵實(shí)現(xiàn)對(duì)8個(gè)led的控制,并利用數(shù)碼管顯示按下的按鍵號(hào),5個(gè)按鍵對(duì)應(yīng)的功能為:1號(hào)鍵:此鍵按下,對(duì)應(yīng)所有的燈都熄滅;2號(hào)鍵:此鍵按下,led1-led8流動(dòng)點(diǎn)亮;3號(hào)鍵:此鍵按下,led1-led8依次點(diǎn)亮;4號(hào)鍵:此鍵按下,led1、led3、led5、led7和led2、led4、led6、led8輪流點(diǎn)亮。5號(hào)鍵:此鍵按下,led1led8閃爍。 三 設(shè)計(jì)作用與目的1)了解單片機(jī)的基本原理及相關(guān)的簡(jiǎn)單應(yīng)用。2)掌握用單片機(jī)設(shè)計(jì)系統(tǒng)的一般步驟。3)了解le

3、d數(shù)碼管的基本知識(shí)和驅(qū)動(dòng)方法。4)掌握單片機(jī)系統(tǒng)各個(gè)組成部分的作用以及分布位置。5)學(xué)會(huì)運(yùn)用單片機(jī)的硬件資源。 四 所用設(shè)備及軟件 at89c51及其他小工具 proteus 五 系統(tǒng)設(shè)計(jì)方案 1 系統(tǒng)總體設(shè)計(jì) 軟件方面:通過(guò)匯編語(yǔ)言編程實(shí)現(xiàn)不同要求的狀態(tài),由延時(shí)程序?qū)崿F(xiàn)1秒的延時(shí)時(shí)間。 硬件方面:彩燈啟動(dòng)與停止由p1.6和p1.7口進(jìn)行控制,彩燈的顯示狀態(tài)由at89c51的p2口輸出顯示。芯片的控制由at89c51的外接晶振和復(fù)位電路進(jìn)行控制。 所謂接口是cpu與外界的連接部件,以實(shí)現(xiàn)cpu與外部設(shè)備的耦合和匹配。本課題只要求外接晶振電路、復(fù)位電路、控制電路、顯示接口電路。根據(jù)總體設(shè)計(jì)要求,

4、確定系統(tǒng)功能接口,設(shè)計(jì)出系統(tǒng)的電路原理圖(如圖3-1所示)。顯示設(shè)備為8個(gè)led燈,采用共陽(yáng)極接法。利用89c51的p2口進(jìn)行顯示輸出和p1.6和p1.7進(jìn)行啟動(dòng)和停止控制。五彩燈分為 2部分,即彩燈控制器(主控模塊)和顯示模塊(受控模塊)。整個(gè)系統(tǒng)工作由軟件程序控制運(yùn)行,根據(jù)需要,用戶可以在 led 彩燈工作時(shí)通過(guò)主控模塊上的按鍵來(lái)控制led彩燈的不同的點(diǎn)亮模式。上電后系統(tǒng)經(jīng)過(guò)初始化,直接進(jìn)入一號(hào)功能鍵模式。再等待按鍵輸入控制信號(hào)控制中斷的來(lái)臨并掃描按鍵進(jìn)入中斷子服務(wù)程序?qū)崿F(xiàn)1鍵、2鍵、3鍵、4鍵和5鍵的各種功能。led 彩燈控制器按照程序設(shè)定好的按下不同按鍵實(shí)現(xiàn)不同的5個(gè)亮燈花樣模式并顯示

5、按下的是幾號(hào)功能鍵。七段碼 led 顯示器用來(lái)顯示當(dāng)前是幾號(hào)鍵已經(jīng)按下,這兩個(gè)功能都是通過(guò)查詢而進(jìn)入不同的中斷子程序。 圖1 系統(tǒng)電路原理圖 2 系統(tǒng)工作原理 此次使設(shè)計(jì)一個(gè)能控制八路彩燈的控制器,其中彩燈用發(fā)光二極管模擬。由p1.6和p1.7口控制電路啟動(dòng)與停止,根據(jù)彩燈的亮滅要求,利用數(shù)據(jù)指針查表,將查到的內(nèi)容送給p2口進(jìn)行顯示。若查到的內(nèi)容為跳出代碼就重新開(kāi)始循環(huán) at89c51外形及引腳排列如圖所示: 圖2 at89c51引腳圖管腳說(shuō)明: vcc:+5v電源輸入端。vss:電源接地端。xtal1:片內(nèi)放大器輸入端。xtal2:片內(nèi)放大器輸出端。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保

6、持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 p0口:p0口為一個(gè)8位漏級(jí)開(kāi)路雙向i/o口,每腳可吸收8ttl門(mén)電流。當(dāng)p1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門(mén)電流。p1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p

7、2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門(mén)電流,當(dāng)p2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門(mén)電流。當(dāng)p3口寫(xiě)入“1”后,它們被內(nèi)部上

8、拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 ale/prog:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無(wú)效

9、。 psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次psen有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的psen信號(hào)將不出現(xiàn)。 ea/vpp:當(dāng)ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),ea將內(nèi)部鎖定為reset;當(dāng)ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。 xtal1和xtal2:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。六 系統(tǒng)硬件設(shè)計(jì) 1 單片機(jī)最小系統(tǒng) 1.1 外接晶振電路及延時(shí)電路 每個(gè)單片機(jī)系統(tǒng)里都有晶振,他結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)

10、行都是建立在這個(gè)基礎(chǔ)上的,晶振的提供的時(shí)鐘頻率越高,那單片機(jī)的運(yùn)行速度也就越快。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。外接晶振電路是向at89c51芯片提供基準(zhǔn)頻率。外接晶振及延時(shí)電路圖如下: 圖3 外接晶振電路 圖4 延時(shí)電路2 單元電路設(shè)計(jì) 2.1 控制電路 利用單片機(jī)芯片at89c51的p1.6和p1.7口進(jìn)行彩燈的啟動(dòng)和停止這兩個(gè)狀態(tài)的控制,如果按下p1.6的開(kāi)關(guān)按鈕彩燈就啟動(dòng),當(dāng)按下p1.7的按鈕時(shí)彩燈就立即停止(全部熄滅)。控制電路圖如下: 圖5 控制電路圖 2.2 顯示電路八個(gè)彩燈的顯示依靠p2口來(lái)控制進(jìn)行亮或滅顯示,采用共陽(yáng)極接

11、法,其中在線路中加限流電阻對(duì)芯片的保護(hù)。其顯示電路圖如下: 圖6 顯示電路 2.3 系統(tǒng)硬件原理電路圖 將at89c51芯片、外接晶振電路、復(fù)位電路、控制電路和顯示電路等資料匯集起來(lái),熟悉芯片個(gè)引腳的功能及連接方法,繪制如下系統(tǒng)硬件原理電路圖: 圖7 系統(tǒng)硬件原理圖七 系統(tǒng)軟件設(shè)計(jì) 開(kāi)始堆棧初始化給p1初始化復(fù)位程序中所有的標(biāo)志位updown、startend、yuan、quan、zuoyi、給流動(dòng)燈復(fù)初值調(diào)用鍵盤(pán)檢測(cè)程序f0為1?調(diào)用鍵盤(pán)處理程序調(diào)用顯示程序yn 表一 主程序流程圖void main() p0=0xc0; if(k1=0) p0= 0xf9;p2=0x00; if(k2=0)

12、 p0= 0xa4; p2=0x01; delay(500); p2=0x02; delay(500); p2=0x04; delay(500); p2=0x08; delay(500); p2=0x10; delay(500); p2=0x20; delay(500); p2=0x40; delay(500); p2=0x80; delay(500); if(k3=0) p0=0xb0; p2=0x01; delay(500); p2=0x03;delay(500); p2=0x07;delay(500); p2=0x0f;delay(500); p2=0x1f;delay(500); p2

13、=0x3f;delay(500); p2=0x7f; delay(500); p2=0xff;delay(1000); if(k4=0) p0=0x99; p2=0x55; delay(500); p2=0xaa; delay(500); if(k5=0) p0=0x92; p2=0xff; delay(500); p2=0x00; delay(500); 功能說(shuō)明:圖1主程序流程圖,編寫(xiě)匯編主程序,開(kāi)始給堆棧初始化,把p1復(fù)位也就讓彩燈一開(kāi)始處于滅的狀態(tài),把所有標(biāo)志位復(fù)位,否則下次運(yùn)行時(shí)容易出錯(cuò),。給流動(dòng)代碼復(fù)初值,然后調(diào)用鍵盤(pán)程序看是否有鍵按下沒(méi)有就跳轉(zhuǎn)顯示程序返回,f0為則調(diào)用功能鍵處理

14、程序然后在調(diào)用顯示程序返回循環(huán)。 24 2 子程序設(shè)計(jì)開(kāi)始給r7復(fù)值d1: 給r6復(fù)值r6j減1到0?r7減1到0?返回nyyn 表2 延時(shí)子程序流程圖 void delay(unsigned int i)/延時(shí)子程序unsigned int j;while(i-) for(j=0;j115;j+); 八 實(shí)驗(yàn)調(diào)試結(jié)果 圖8 未按鍵之前的仿真圖 剛開(kāi)始時(shí)所有l(wèi)ed燈全部亮,數(shù)碼管顯示0. 圖9 按1號(hào)鍵仿真圖 1號(hào)鍵按下后,產(chǎn)生中斷,硬件自身識(shí)別外部中斷0或1,并掃描鍵盤(pán)進(jìn)入相應(yīng)的中斷子程序。此時(shí)產(chǎn)生外部中斷并掃描鍵盤(pán)進(jìn)入子程序?qū)崿F(xiàn)1號(hào)鍵功能,led彩燈為全滅,led數(shù)碼管顯示1,此后一直循環(huán)

15、此功能直到下一個(gè)中斷產(chǎn)生才結(jié)束。 圖10 按2號(hào)鍵仿真圖 關(guān)閉1號(hào)鍵,2號(hào)鍵按下后,產(chǎn)生中斷,硬件自身識(shí)別intt0或intt1并掃描鍵盤(pán)進(jìn)入相應(yīng)的中斷子程序。此時(shí)產(chǎn)生intt0中斷并掃描鍵盤(pán)進(jìn)入子程序?qū)崿F(xiàn)2號(hào)鍵功能,led1-led8流動(dòng)點(diǎn)亮,led數(shù)碼管顯示2,此后一直循環(huán)此功能直到下一個(gè)中斷產(chǎn)生才結(jié)束。 圖11 按3號(hào)鍵仿真圖關(guān)閉2號(hào)鍵,3號(hào)鍵按下后,產(chǎn)生中斷,硬件自身識(shí)別intt0或intt1并掃描鍵盤(pán)進(jìn)入相應(yīng)的中斷子程序。此時(shí)產(chǎn)生intt0中斷并掃描鍵盤(pán)進(jìn)入子程序?qū)崿F(xiàn)3號(hào)鍵功能,led1-led8依次點(diǎn)亮,led數(shù)碼管顯示3,此后一直循環(huán)此功能直到下一個(gè)中斷產(chǎn)生才結(jié)束。 圖12 按4

16、號(hào)鍵仿真圖 關(guān)閉2號(hào)鍵,4號(hào)鍵按下后,產(chǎn)生中斷,硬件自身識(shí)別intt0或intt1并掃描鍵盤(pán)進(jìn)入相應(yīng)的中斷子程序。此時(shí)產(chǎn)生intt0中斷并掃描鍵盤(pán)進(jìn)入子程序?qū)崿F(xiàn)4號(hào)鍵功能,led1、led3、led5、led7和led2、led4、led6、led8輪流點(diǎn)亮,led數(shù)碼管顯示4,此后一直循環(huán)此功能直到下一個(gè)中斷產(chǎn)生才結(jié)束。 圖13 按5號(hào)鍵仿真圖 5號(hào)鍵按下后,產(chǎn)生中斷,硬件自身識(shí)別intt0或intt1并掃描鍵盤(pán)進(jìn)入相應(yīng)的中斷子程序。此時(shí)產(chǎn)生intt0中斷并掃描鍵盤(pán)進(jìn)入子程序,led數(shù)碼管顯示鍵號(hào)5,等上一次顯示周期完畢后實(shí)現(xiàn)4號(hào)鍵功能,led1led8閃爍,此后一直循環(huán)此功能直到下一個(gè)中斷

17、產(chǎn)生才結(jié)束。 九 設(shè)計(jì)中的問(wèn)題及解決方法 接到老師發(fā)的課程設(shè)計(jì)后我按著書(shū)和自己的思路編寫(xiě)程序,編寫(xiě)后進(jìn)行軟件仿真調(diào)試發(fā)現(xiàn)當(dāng)我按下2號(hào)鍵時(shí)沒(méi)有出現(xiàn)后面的led燈依次點(diǎn)亮,出現(xiàn)了前面的燈點(diǎn)亮后面的燈就滅了,最后我在程序中添加了delay(500)后,在編譯運(yùn)行仿真不會(huì)出現(xiàn)剛剛的情況經(jīng)過(guò)調(diào)試我的仿真結(jié)果基本符合設(shè)計(jì)要求。 十 設(shè)計(jì)心得 回顧此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在接近四星期的日子里,可以說(shuō)得是苦多于甜,但是學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)

18、計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,比如說(shuō)不懂一些元器件的使用方法,對(duì)單片機(jī)結(jié)構(gòu)掌握得不好通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在梅英老師的指導(dǎo)下,終于迎刃而解。俗話說(shuō)“好的開(kāi)始是成功的一半”。說(shuō)起課程設(shè)計(jì),我認(rèn)為最重要的就是做好設(shè)計(jì)的預(yù)習(xí),認(rèn)真的研究老師給的題目,選一個(gè)自己有興趣的題目。其次,老師對(duì)實(shí)驗(yàn)的講解要一絲不茍的去聽(tīng)去想,因?yàn)橹挥卸济靼琢?,做起設(shè)計(jì)就會(huì)事半功倍,如果沒(méi)弄明白,就迷迷糊糊的去選題目做設(shè)計(jì),到頭來(lái)一點(diǎn)收獲也沒(méi)有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調(diào)試,掌握其方法。 在這次難得的課程設(shè)計(jì)過(guò)程中我鍛煉了自己的思考能力和動(dòng)手能力。通過(guò)題目選擇和設(shè)計(jì)電路的過(guò)程中,加強(qiáng)了我思考問(wèn)題的完整性.十一 參考文獻(xiàn) 何立民.單片機(jī)應(yīng)用技術(shù)選編,北京:北京航空大學(xué)出版社,1998 張毅剛.新編51單片機(jī)應(yīng)用設(shè)計(jì)(第三版),哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2008 陳堂敏.劉煥平主編.單片機(jī)原理與應(yīng)用,北京:北京理工大學(xué)出版社,2007 十二 程序清單 #includesbit k1=p10;sbit k2=p11;sbit k3=p12;sbit k4=p13;sbit

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論