版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)課程設(shè)計(jì)題 目: 簡(jiǎn)易流水燈系 別: 信息技術(shù)學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí): 專升本1班學(xué) 號(hào): 姓 名: 朱旭鶴 于晶晶 指導(dǎo)老師: 陳向奎目 錄摘要:3第一章 緒論41、流水燈的設(shè)計(jì)背景4第二章 系統(tǒng)設(shè)計(jì)41、系統(tǒng)設(shè)計(jì)要求42、流水燈設(shè)計(jì)的工作流程圖5第三章 系統(tǒng)主要工作原理61.時(shí)鐘設(shè)計(jì)部分62.復(fù)位設(shè)計(jì)部分73.開(kāi)關(guān)部分74.工作電路部分8第四章 軟件程序流程圖91.單片機(jī)詳細(xì)C51程序代碼92. 元器件說(shuō)明133. 仿真電路圖14第五章 工作總結(jié)和愿望15參考文獻(xiàn):16致謝17摘要:51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次設(shè)計(jì)是通過(guò)對(duì)它的學(xué)習(xí)、應(yīng)用,以A
2、T89c51芯片為核心,輔以必要的電路,設(shè)計(jì)了一個(gè)簡(jiǎn)易的流水燈,它由4.5V直流電源供電,按照不同的要求,通過(guò)按鈕控制點(diǎn)亮多個(gè)Led燈,并在順序和頻率上做出相應(yīng)的改變,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開(kāi)發(fā)軟、硬件的目的。關(guān)鍵詞:?jiǎn)纹瑱C(jī) at89c51 簡(jiǎn)易流水燈第一章 緒論1、流水燈的設(shè)計(jì)背景當(dāng)今時(shí)代是一個(gè)新技術(shù)層出不窮的時(shí)代,在電子領(lǐng)域尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未見(jiàn)的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說(shuō),智能控制與自動(dòng)控制的核心就是單片機(jī)。雖然功能簡(jiǎn)單,但是由于其操作簡(jiǎn)單得到了廣泛的應(yīng)用。第二章 系統(tǒng)
3、設(shè)計(jì)1、系統(tǒng)設(shè)計(jì)要求本設(shè)計(jì)要求采用AT89C51單片機(jī),實(shí)現(xiàn)8只LED燈從上到下點(diǎn)亮、從下到上、從中間到兩邊、從兩邊到中間的“流水”效果。使用兩個(gè)按鈕控制,其中一個(gè)控制流水燈亮的方式,另一個(gè)控制流水燈亮的頻率。當(dāng)按下開(kāi)關(guān)k0時(shí),單片機(jī)產(chǎn)生有效信號(hào)從P2端口輸出到led燈。Led燈根據(jù)相應(yīng)的信號(hào),燈亮的順序發(fā)生相應(yīng)變化。當(dāng)按下開(kāi)關(guān)k3時(shí),單片機(jī)產(chǎn)生有效信號(hào)從P2端口輸出到led燈。Led燈根據(jù)相應(yīng)的信號(hào),燈亮的頻率發(fā)生相應(yīng)變化。2、流水燈設(shè)計(jì)的工作流程圖晶振電路單片機(jī)AT89C51 燈亮按鈕 圖1總體設(shè)計(jì)框圖該系統(tǒng)的設(shè)計(jì)在總體上分為以下幾個(gè)部分:1單片機(jī)控制部分; 2 按鍵控制部分;3 led燈
4、輸出部分。具體設(shè)計(jì)步驟如下:(1)按以上要求制定設(shè)計(jì)方案,并繪制出系統(tǒng)工作框圖,繪制程序流程圖;(2)按要求設(shè)計(jì)單片機(jī)的外圍電路,給出電路原理圖;(3)單片機(jī)仿真器等元器件正確可靠地連接;(4)利用仿真器進(jìn)行程序設(shè)計(jì)與調(diào)試;第三章 系統(tǒng)主要工作原理1.時(shí)鐘設(shè)計(jì)部分單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作.在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。電路中兩個(gè)電容 C1,C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1、C2、晶振提供時(shí)鐘信號(hào)。2.復(fù)位設(shè)計(jì)部分濾波電容提供復(fù)位,一端與接口9相連,另一端與接
5、口31相連。電阻的作用是用于上電復(fù)位的,VCC以上電,由于電容兩端電壓不能突變,所以RST上為高電平,然后電容放電,RST就為低電平了3.開(kāi)關(guān)部分按鍵輸入的防抖設(shè)計(jì)按鍵的觸點(diǎn)在閉合和斷開(kāi)時(shí)均會(huì)產(chǎn)生抖動(dòng),這是觸點(diǎn)的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般采用軟件延時(shí)的方法來(lái)避開(kāi)抖動(dòng)階段。防抖使用了nop指令,Nop指令為單周期指令,有晶振頻率決定。K0控制燈亮的順序當(dāng)余數(shù)等于0時(shí),為原始狀態(tài)。當(dāng)余數(shù)等于1時(shí),燈亮順序從上到下。當(dāng)余數(shù)等于2時(shí),燈亮順序從下到上。當(dāng)余數(shù)等于3時(shí),燈亮順序從中間到兩邊。當(dāng)余數(shù)等于4時(shí),燈亮順序從兩邊到中間。K3控制燈亮的頻率時(shí)間
6、初值設(shè)為250us,開(kāi)關(guān)每按下時(shí)間減少50us,當(dāng)減小到0時(shí),再設(shè)置為300us。4.工作電路部分1) 工作電路就是根據(jù)總的電路的指令,來(lái)反應(yīng)工作情況。本電路的流水燈電路具體的如下:2)根據(jù)各個(gè)模塊的功能及他們的信號(hào)傳輸,連接電路如下:第四章 軟件程序流程圖1.單片機(jī)詳細(xì)C51程序代碼#include /此文件中定義了51的一些特殊功能寄存器#include sbit K0=P00; / 閃爍方式把K0定義為P00口sbit K3=P03; /閃爍頻率把K3定義為P03口unsigned int key_num();/計(jì)算按鍵按下子程序 “unsigned int 為無(wú)符號(hào)整型void del
7、ayms(unsigned char ms) / 延時(shí)子程序 ms決定延時(shí)時(shí)間的長(zhǎng)短,ms值越大,延時(shí)時(shí)間越長(zhǎng)unsigned char i;while(ms-)for(i = 0; i 120; i+); /延時(shí)程序,當(dāng)執(zhí)行時(shí),每個(gè)周期i從零增加到120,所用的時(shí)間乘以ms的值,就是要延時(shí)的時(shí)間void main()unsigned char LED;/定義無(wú)符號(hào)字符型LEDunsigned int key_m;/定義無(wú)符號(hào)整型”key_munsigned int a=250;/給符號(hào)a賦初值250P2=0x00; /啟動(dòng)把P2口設(shè)為低電平while(1) /while循環(huán)if(key_m=
8、0) /當(dāng)key_m等于0時(shí),執(zhí)行if語(yǔ)句. key -m用來(lái)存儲(chǔ)key_num()這個(gè)子程序 返回的值 P2=0x00; /P2口的輸出控制燈的亮滅,單片機(jī)上電時(shí)P2口都是高電平輸出,這句話就是把P2口改成低電平0X00代表八位數(shù),0000.0000分別對(duì)應(yīng)P2口的八個(gè)輸出口 key_m=key_num(); /key_num子程序的返回值賦給key_m. if(K3=1) /K3按鈕控制閃爍頻率,K3按下一次,a時(shí)間間隔減少50 a=a-50; while(K3); if(key_m=1) /當(dāng)key_m等于1時(shí),執(zhí)行if語(yǔ)句 LED = 0x01; /0x幾幾代表十六進(jìn)制數(shù),把它變成二進(jìn)
9、制就是0000 0001 分別對(duì)應(yīng)P2的八個(gè)輸出口 后面LED的值還是給了P2 0x01 把它變成二進(jìn)制就是0000 0001,說(shuō)明P2口的第一個(gè)燈亮如果是Ox02, 0000 00010,對(duì)應(yīng)P2口的第二個(gè)燈亮 while(1) P2 = LED; /賦初值 delayms(a); /延時(shí) LED = LED 1|0x01; /循環(huán)左移1位,點(diǎn)亮下一個(gè)LED 1|0x80; /循環(huán)右移1位,點(diǎn)亮下一個(gè)LED 為右移位 if(P2 = 0xff ) P2=0x00;delayms(a);LED = 0x80; / key_m=key_num(); if(key_m=1)break; if(ke
10、y_m=3)break; if(key_m=0)break; if(key_m=4)break; if(K3=1) a=a-50; while(K3); if(a=0) a=300; if(key_m=3) /中間往兩邊移動(dòng) unsigned int temp1,temp2; temp1=0x10; /賦初值 temp2=0x08; while(1) P2=temp1|temp2; /P2等于temp1和temp2的或值delayms(a); /調(diào)用延時(shí)子函數(shù),a越大延時(shí)時(shí)間越長(zhǎng)temp1=temp11|0x08; / temp2右移一位或0x08if(P2=0xff) /如果P2=0xff,
11、重新賦初值 P2=0x00; delayms(a); temp1=0x10; temp2=0x08; key_m=key_num(); if(key_m=0)break; if(key_m=1)break; if(key_m=2)break; if(key_m=4)break; if(K3=1) a=a-50; while(K3); if(a=0) a=300; if(key_m=4)/兩邊往中間移動(dòng) unsigned int temp1,temp2; temp1=0x80; temp2=0x01; while(1) P2=temp1|temp2;delayms(a);temp1=temp11
12、|0x80; temp2=temp21|0x01;if(P2=0xff) P2=0x00; delayms(a); temp1=0x80; temp2=0x01; key_m=key_num(); if(key_m=0)break; if(key_m=1)break; if(key_m=2)break; if(key_m=3)break; if(K3=1) a=a-50; while(K3); if(a=0) a=300; unsigned int key_num() unsigned int key_a,key_b; if(K0=1) _nop_(); /_nop_為延時(shí)命令,三個(gè)周期延時(shí)
13、,防抖_nop_();_nop_();if(K0=1) key_a+; /自加1 key_b=key_a%5;/key_b等于key_a除以5的余數(shù) while(K0=1); return key_b; /子程序返回值 2. 元器件說(shuō)明元件名稱類型屬性數(shù)量AT89C51U1單片機(jī)1個(gè)3WATT10KR1電阻10k1個(gè)AX47U16vC3濾波電容47U 1個(gè)Avx0402np022pC1、C2電容22p2個(gè)CRYSTALX1晶振1Mhz1個(gè)LED-GREEND1-D8Led綠燈8個(gè)BottonK0、K3按鍵2個(gè)3. 仿真電路圖第五章 工作總結(jié)和愿望首先是原理問(wèn)題。由于首次接觸單片機(jī),所以很多東西
14、都不懂,因此,找來(lái)視頻教程來(lái)看,并學(xué)習(xí)如何進(jìn)行流水燈的編程。其次就是我們沒(méi)有c語(yǔ)言基礎(chǔ),所以邊編程邊進(jìn)行語(yǔ)言的學(xué)習(xí)。設(shè)計(jì)的初期,沒(méi)有明確的目的和想法,雖然流水燈是單片機(jī)中相對(duì)簡(jiǎn)單的基礎(chǔ)設(shè)計(jì),可是卻舉步維艱。由于對(duì)軟件運(yùn)用的不熟練,連線時(shí)出現(xiàn)錯(cuò)誤,多次發(fā)生上電后led燈沒(méi)有反應(yīng)的現(xiàn)象。由于對(duì)c語(yǔ)言的一些不熟練和錯(cuò)誤理解,在編寫程序的過(guò)程中出現(xiàn)了一些錯(cuò)誤,比如沒(méi)有循環(huán)重新賦值,d1-d8亮了一遍后不再重新循環(huán)變亮。賦值變量方面經(jīng)?;靵y,編譯文件的時(shí)候錯(cuò)誤連連。還有就是電路元件選擇方面,參照諸多的實(shí)例和文獻(xiàn),經(jīng)過(guò)多次選擇才能確定下來(lái)。雖然每一步設(shè)計(jì)都覺(jué)得異常艱辛,經(jīng)過(guò)不斷的嘗試,終究還是完成了此次設(shè)計(jì),雖然此次設(shè)計(jì)還有諸多缺點(diǎn),但是過(guò)程卻讓我們收獲波多。參考文獻(xiàn):1 單片機(jī)原理實(shí)驗(yàn)指導(dǎo)書(shū);2 單片機(jī)原理與接口技術(shù)牛昱光、李
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年甲乙雙方關(guān)于門面租房的合同協(xié)議書(shū)
- 2024年環(huán)保型農(nóng)藥研發(fā)與技術(shù)轉(zhuǎn)讓合同
- 2024版政府吸引外資項(xiàng)目協(xié)議范本版B版
- 2024廣告代理發(fā)布協(xié)議
- 2025年度出差人員交通與住宿統(tǒng)一管理服務(wù)合同3篇
- 2025年度ISO 13485醫(yī)療器械質(zhì)量管理體系認(rèn)證服務(wù)合同3篇
- 2024年項(xiàng)目停工責(zé)任分配合同范本
- 2024年技術(shù)開(kāi)發(fā)合作協(xié)議(附專利權(quán)歸屬條款)
- 2024年環(huán)保污水處理設(shè)施工程承包協(xié)議版B版
- 2024年項(xiàng)目勞務(wù)分包簡(jiǎn)易合同
- 化工廠施工安全質(zhì)量冬季施工措施
- 亞洲杯足球比賽應(yīng)急預(yù)案
- 北京市人工智能產(chǎn)業(yè)發(fā)展建議
- 青少年自殺自傷行為預(yù)防與干預(yù)專家講座
- 【部編】小高考:2021年江蘇普通高中學(xué)業(yè)水平測(cè)試歷史試卷
- 職業(yè)技能大賽:電工(五級(jí))理論知識(shí)考核要素細(xì)目表(征求意見(jiàn)稿)
- 阿特拉斯擰緊工具維修培訓(xùn)
- 萊州市石材產(chǎn)業(yè)園控制性詳細(xì)規(guī)劃環(huán)境影響報(bào)告書(shū)
- 2020-2021學(xué)年江蘇省徐州市九年級(jí)(上)期末化學(xué)試卷
- 信息系統(tǒng)運(yùn)行維護(hù)服務(wù)與方案(IT運(yùn)維服務(wù)與方案)
評(píng)論
0/150
提交評(píng)論