




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)(2013/2014 學(xué)年 第 2 學(xué)期)題目:基于單片 CPU 的 8LED 顯示存儲示波器設(shè)計(jì)專業(yè)通信工程學(xué)生姓名倪鑫班級學(xué)號B指導(dǎo)教師林建中日期2014.06.01.精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)目錄目錄第一章第一章 任務(wù)要求任務(wù)要求.2 21.1 實(shí)驗(yàn)?zāi)康?21.2 實(shí)驗(yàn)環(huán)境.21.3 課題要求.4第二章第二章 整體方案設(shè)計(jì)整體方案設(shè)計(jì).6 62.1 整體方案.6第三章第三章 功能模塊原理功能模塊原理.7 73.1 AT89C51 單片機(jī).73.2 動態(tài)顯示模塊.93.3 鍵盤模塊.10第四章第四章 程序代碼設(shè)計(jì)程序代碼設(shè)計(jì).111
2、1第五章第五章 仿真測試仿真測試.1515第六章第六章 設(shè)計(jì)小結(jié)設(shè)計(jì)小結(jié).1818精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第一章第一章 任務(wù)要求任務(wù)要求1.11.1 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康脑诶碚撜n程的基礎(chǔ)上,重點(diǎn)培養(yǎng)動手能力,通過電路設(shè)計(jì),理論計(jì)算,實(shí)際編程,調(diào)試,測試, 分析查找故障, 解決在實(shí)際設(shè)計(jì)中的問題, 使設(shè)計(jì)好的電路能正常工作。 通過 proteus軟件的使用,能夠較全面的了解單片機(jī)的原理和結(jié)構(gòu)組成,單片機(jī)系統(tǒng)的擴(kuò)展應(yīng)用,較好的掌握單片機(jī)的匯編語言程序設(shè)計(jì)和硬件結(jié)構(gòu)設(shè)計(jì),通過實(shí)驗(yàn)了解單片機(jī)系統(tǒng)研制中的軟件,硬件設(shè)計(jì)和系統(tǒng)程序調(diào)試等的全過程,掌握應(yīng)用單片機(jī)系統(tǒng)設(shè)計(jì)解決實(shí)際問題的方式和方法
3、。鞏固單片機(jī)的課堂所學(xué)。1.21.2 實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)環(huán)境1.586 微型計(jì)算機(jī)系統(tǒng)2.Proteus7.4sp3 軟件3.Keil C51 軟件1 1.3 .3 實(shí)驗(yàn)實(shí)驗(yàn)步驟步驟1.點(diǎn)擊“Project-New Project ”菜單,出現(xiàn)一個(gè)對話框,要求給將要建立的工程命名, 我們選擇 Atmel 公司的 89C51 芯片如圖 1.1。 點(diǎn)擊 ATMEL 前面的 “+”號,展開該層,點(diǎn)擊其中的 89C51。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)圖圖 1.12.點(diǎn)擊“File-New File ”菜單,建立一個(gè)新文件,編寫程序并保存,文件名后綴為“.c” 。此時(shí),在工程窗口的文件頁中,出現(xiàn)了
4、“Target1” ,點(diǎn)擊“+”號展開,可以看到下一層的“ Source Group1” ,這時(shí)的工程還是一個(gè)空的工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點(diǎn)擊“Source Group1”使其反白顯示,然后,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)一個(gè)下拉菜單,選中其中的“Add filetoGroup Source Group1” 如圖 1.2 所示,出現(xiàn)一個(gè)對話框,要求尋找源文件,注意,該對話框下面的“文件類型”默認(rèn)為 C source file(*.c),也就是以 C 為擴(kuò)展名的文件。點(diǎn)擊“Flash-Configure Flash Tools” 菜單,設(shè)置對話框中的OutPut 頁面,如
5、圖 1.3 所示,這里面也有多個(gè)選擇項(xiàng),其中 Creat Hex file 用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機(jī)芯片的 hex 格式文件,文件的擴(kuò)展名為.hex) ,默認(rèn)情況下該項(xiàng)未被選中,根據(jù)實(shí)驗(yàn)要求,選中該項(xiàng),并保存。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)圖圖 1.2圖圖 1.33.在設(shè)置好工程后,即可進(jìn)行編譯、連接如圖 1.4。選擇菜單 “Project-Buildtarget” ,對當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改,軟件會先對該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇 Rebuild All target files 將會對當(dāng)前工程中的所有文件重新進(jìn)行編譯然后
6、再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而 Translate .項(xiàng)則僅對該文件進(jìn)行編譯,不進(jìn)行連接。若編譯連接通過則顯示如圖 1.5。圖圖 1.4圖圖 課題要求課題要求基本要求:1用數(shù)碼管或LCD正常顯示數(shù)字“”。2通過按鍵可改變顯示方式。3設(shè)計(jì)顯示屏的動態(tài)效果,用10個(gè)按鍵,每鍵對應(yīng)一種滾動技術(shù)。發(fā)揮部分:1設(shè)計(jì)所有動作的聯(lián)合效果。2設(shè)計(jì)二個(gè)變速按鍵,可多級改變滾動速度。3設(shè)計(jì)一臺魔術(shù)電子種,采用自動變換,隨機(jī)組合,數(shù)據(jù)每10秒變換一次。動態(tài)顯示格式:1靜止2整體閃爍3單字閃爍精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)4整體向前、向后滾動5單字移動6兩邊向中間壓縮7中間
7、向兩邊擴(kuò)張8上下壓縮9上下滾動10組合動作(每一字符執(zhí)行上述一個(gè)動作,并同時(shí)運(yùn)動)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第二章第二章 整體方案設(shè)計(jì)整體方案設(shè)計(jì)2.12.1 整體方案整體方案根據(jù)課題要求,使用 7SEG-MPX8-CA,通過按鍵切換,來達(dá)到不同的動態(tài)顯示效果。課題中的要求是用十種動態(tài)效果,對應(yīng)的分別為“1” :禁止顯示, “2” :整體閃爍顯示,“3:單字閃爍顯示, “4” :整體向前、向后滾動顯示, “5” :單字移動顯示, “6” :兩邊向中間壓縮顯示, “7” :中間向兩邊擴(kuò)張顯示, “8” :上下壓縮顯示, “9” :文字上下滾動顯示,“10” : 組合動作顯示。圖圖
8、 2.1精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第三章第三章 功能模塊原理功能模塊原理3.13.1 AT89C51AT89C51 單片機(jī)(圖單片機(jī)(圖 3.13.1)P0 口:P0 口為一個(gè) 8 位漏級開路雙向 I/O 口,每腳可吸收 8TTL 門電流。當(dāng) P0 口的管腳第一次寫 1 時(shí),被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(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
9、門電流。P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH 編程和校驗(yàn)時(shí),P1 口作為第八位地址接收。P2 口: P2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收,輸出 4個(gè) TTL 門電流,當(dāng) P2 口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2 口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)
10、據(jù)存儲器進(jìn)行讀寫時(shí),P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在 FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。P3 口:P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL 門電流。當(dāng) P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平, P3 口將輸出電流 (ILL) 這是由于上拉的緣故。 P3 口也可作為 AT89C51的一些特殊功能口,如下表所示。P3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)VCC:供電電壓。GND:接地。RST:復(fù)位輸入。ALE/PROG: 當(dāng)
11、訪問外部存儲器時(shí), 地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。/PSEN:外部程序存儲器的選通信號。/EA/VPP:當(dāng)/EA 保持低電平時(shí),此間外部程序存儲器,不管是否有內(nèi)部程序存儲器。當(dāng)/EA 端保持高電平時(shí),此間內(nèi)部程序存儲器。在 FLASH 編程期間,此引腳也用于施加 12V 編程電源(VPP) 。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。圖圖 3.1精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3.23.2
12、動態(tài)顯示模塊動態(tài)顯示模塊圖圖 3.2引腳功能1數(shù)碼管 1 片選信號2數(shù)碼管 2 片選信號3數(shù)碼管 3 片選信號4數(shù)碼管 4 片選信號5數(shù)碼管 5 片選信號6數(shù)碼管 6 片選信號7數(shù)碼管 7 片選信號8數(shù)碼管 8 片選信號A數(shù)碼管段選信號 AB數(shù)碼管段選信號 BC數(shù)碼管段選信號 CD數(shù)碼管段選信號 DE數(shù)碼管段選信號 EF數(shù)碼管段選信號 FG數(shù)碼管段選信號 GDP數(shù)碼管段選信號小數(shù)點(diǎn)表表 1 7SEG-MPX8-CA 管腳功能管腳功能精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)3.33.3 鍵盤模塊鍵盤模塊4 位二進(jìn)制輸入方式,從左向右四個(gè)按鍵,位權(quán)分別為 0124,接入 89C51 I/O 口
13、P1。當(dāng)輸入二進(jìn)制數(shù)為 N 時(shí),顯示 N 狀態(tài)。圖圖 3.3精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第四章第四章 程序代碼設(shè)計(jì)程序代碼設(shè)計(jì)#include #include #include #define uchar unsigned char#define ulong unsigned long#define uint unsigned int/ Delay period#define Timer 50char* number;uchar chooseNumber = 0 xc0, 0 xf9, 0 xa4, 0 xb0, 0 x99, 0 x92, 0 x82, 0 xf8, 0 x8
14、0, 0 x90;uchar flickOne = 0 x02, 0 x61, 0 x43, 0 x03, 0 x43, 0 x63, 0 x02, 0 x63;uchar flickTwo = 0 x04, 0 x4c, 0 x4c, 0 x1c, 0 x58, 0 x58, 0 x44, 0 x5c;uchar flickThree = 0 x00, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40, 0 x40;uchar chooseDigits = 0 x00, 0 x01, 0 x02, 0 x04, 0 x08, 0 x10, 0 x20, 0 x
15、40, 0 x80;void delay(int i) i *= Timer;while(i-);uchar getInput() if(P1 != 0 xff) delay(2);if(P1 != 0 xff) return P1;return 0;/* Constant number display function.*/void showDigits(char* number) uchar i;for(i = 1; i = 8; i+) P3 = chooseDigitsi;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)if(numberi - 1 = 0) P2 = chooseNumbe
16、rnumberi - 1 - 0;else if(numberi - 1 = ) P2 = 0 xff;delay(2);/* Flicking number display function.*/void showFlick(char* number) uchar i;for(i = 1; i = 8; i+) P3 = chooseDigitsi;P2 = numberi - 1;delay(2);void main() int count = 0;uchar key = 0, temp;while(1) temp = getInput();if(temp != 0) key = temp
17、;switch(key) case 1:showDigits();break;case 2:(count / Timer) % 2 = 0 ? showDigits() : showDigits();break;case 3:switch(count / Timer % 8) case 0: showDigits( ); break;case 1: showDigits(1 ); break;case 2: showDigits(12 45678); break;case 3: showDigits(123 5678); break;case 4: showDigits(1234 678);
18、break;case 5: showDigits(12345 78); break;case 6: showDigits( 8); break;case 7: showDigits( ); break;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)break;case 4:switch(count / Timer % 8) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showDigits(); break;case 3: showDigits(); break;case 4: showDigits(); break
19、;case 5: showDigits(); break;case 6: showDigits(); break;case 7: showDigits(); break;break;case 5:switch(count / Timer % 8) case 0: showDigits(2); break;case 1: showDigits( 2); break;case 2: showDigits(2); break;case 3: showDigits(2); break;case 4: showDigits(2); break;case 5: showDigits(2); break;c
20、ase 6: showDigits(2 ); break;case 7: showDigits(2); break;break;case 6:switch(count / Timer % 5) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showDigits(1278); break;case 3: showDigits(18); break;case 4: showDigits(); break;break;case 7:switch(count / Timer % 5) case 0: showDigits
21、(); break;case 1: showDigits(234567); break;case 2: showDigits(3456); break;case 3: showDigits(45); break;case 4: showDigits(); break;break;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)case 8:switch(count / Timer % 5) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showFlick(flickThree); break;case 3: showD
22、igits(); break;break;case 9:switch(count / Timer % 6) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showFlick(flickOne); break;case 3: showDigits(); break;case 4: showFlick(flickTwo); break;case 5: showDigits(); break;break;case 10:switch(count / Timer % 8) case 0: showDigits(); break;case 1: showDigits(); break;case 2: showDigits(1 43 58 ); break;case 3: showDigits(); break;case 4: show
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同續(xù)單協(xié)議格式
- 工程設(shè)計(jì)用工合同協(xié)議
- 廢棄摩托轉(zhuǎn)讓合同協(xié)議
- 上海塔吊租賃合同協(xié)議
- 專利授權(quán)協(xié)議書格式
- 店鋪轉(zhuǎn)賣分紅合同協(xié)議
- 廢舊拆除清運(yùn)合同協(xié)議
- 專利無償轉(zhuǎn)讓合同協(xié)議
- 廢舊拆遷板出售合同協(xié)議
- led屏購銷合同協(xié)議
- 美育第四版美即生活課件《形式美的欣賞》
- 專題08 七年級下冊《賣油翁》課內(nèi)外閱讀分層練(含答案)-2024年中考語文復(fù)習(xí)之教考銜接文言文專題練習(xí)
- 2024智慧城市大數(shù)據(jù)信息資源標(biāo)識編碼規(guī)范
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- 2024多級AO工藝污水處理技術(shù)規(guī)程
- DB5301-T 71-2022 地理標(biāo)志產(chǎn)品 湯池老醬
- 配電工程項(xiàng)目規(guī)范
- 地鐵典型事故案例分析
- 浙江省幼兒園教育裝備要求規(guī)范(試行)
- GB/T 43934-2024煤礦土地復(fù)墾與生態(tài)修復(fù)技術(shù)規(guī)范
- 方案光伏發(fā)電項(xiàng)目吊裝方案
評論
0/150
提交評論