馬然江嵌入式_第1頁
馬然江嵌入式_第2頁
馬然江嵌入式_第3頁
馬然江嵌入式_第4頁
馬然江嵌入式_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1和匕樣?xùn)|北大學(xué)信息學(xué)院2010級(jí)嵌入式課程設(shè)計(jì)東北大學(xué)信息學(xué)院2010級(jí)電子信息工程專業(yè)嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告姓名:馬然江艾合買提學(xué)號(hào):20113079班級(jí):電子1101電話mail: 3947250782013年7月8日摘要嵌入式系統(tǒng)應(yīng)用廣泛,涉及通信、網(wǎng)絡(luò)消費(fèi)電子產(chǎn)品、醫(yī)療儀器、汽車電子、 工業(yè)控制、儀器儀表、航天軍事等各個(gè)行業(yè)和領(lǐng)域。目前全球嵌入式芯片的年出 貨量達(dá)到了 60億。嵌入式系統(tǒng)在應(yīng)用數(shù)量上已經(jīng)遠(yuǎn)遠(yuǎn)超過了各種通用計(jì)算機(jī)。 可以說嵌入式產(chǎn)品“無處不在”。本次課程設(shè)計(jì),使用基于ARM7TDMI核的華邦 W90P71處理器,它提供了 4K的指令緩存和4K的

2、數(shù)據(jù)緩存,并具有強(qiáng)大的外 設(shè)資源,同時(shí)具有一個(gè) AC97E制器,一個(gè)雙向通道GDMA一個(gè)LCD空制器,兩 個(gè)24位定時(shí)器,它的外部總線接口控制器支持 SDRAMROM/SRAMFLASH#儲(chǔ)器 和I/O設(shè)備的方便接入,還具有串行通信和以太網(wǎng)接口,以適應(yīng)通信網(wǎng)關(guān)和其他 的應(yīng)用場(chǎng)合。在人們對(duì)個(gè)人隱私等權(quán)益愈發(fā)注重的今天,個(gè)人信息及所有物的安全性不容 忽視。題本次課程設(shè)計(jì)的題目一一基于華邦 W90P71處理器的電子密碼鎖設(shè)計(jì) 就是基于這一現(xiàn)狀給出的具有使用性的設(shè)計(jì)。實(shí)現(xiàn)了密碼設(shè)定、三次密碼輸入、 顯示電子相冊(cè)及播放音樂的功能。關(guān)鍵字:華邦 W90P71微處理器、電子密碼鎖、嵌入式系統(tǒng)東北大學(xué)信息學(xué)院

3、2010級(jí)嵌入式課程設(shè)計(jì)目錄一、題目設(shè)計(jì)意義及特點(diǎn)1.1 設(shè)計(jì)意義及特點(diǎn)1.2 系統(tǒng)的主要功能二、系統(tǒng)功能設(shè)計(jì).3.4.4.4.5.2.1 硬件設(shè)計(jì)及描述 5.2.1.1 系統(tǒng)功能模塊整體5.2.1.2 各模塊作用及硬件連接圖 52.2 軟件設(shè)計(jì)及描述8.2.2.1 程序流程框圖8.2.2.2 源程序代碼 9.卻匕樣?xùn)|北大學(xué)信息學(xué)院2010級(jí)嵌入式課程設(shè)計(jì)一、題目設(shè)計(jì)意義及特點(diǎn)1.1 設(shè)計(jì)意義及特點(diǎn)(1)設(shè)計(jì)意義如今個(gè)人物品等問題開始暴露,傳統(tǒng)的密碼鎖容易損壞、丟失,實(shí)用性、安 全性很低,而電子密碼鎖因其絕對(duì)的精度使信息及物品的保密稱為可能。此次題目具有很強(qiáng)的實(shí)際意義。另外,在老師對(duì)程序例子的

4、講解及自己的理解之后, 通過查閱資料在原有程 序上進(jìn)行改寫、融合和添加,設(shè)計(jì)出了電子密碼鎖,提高了自己的程序閱讀能力, 并了解了嵌入式系統(tǒng)的開發(fā)流程,應(yīng)用軟件的使用方法。增強(qiáng)了自主學(xué)習(xí)能力, 能與課本知識(shí)相融合,更加靈活的使用 AR般成語言。(2)特點(diǎn)電子密碼鎖與電子相冊(cè)、音樂播放相結(jié)合,在登錄成功后播放相冊(cè)及音樂; 具有密碼設(shè)定及三次輸入機(jī)會(huì)。1.2 系統(tǒng)的主要功能(1)設(shè)置密碼:LCD 顯示“請(qǐng)輸入密碼”,從鍵盤輸入任意6位數(shù)字作為密碼存入寄存 器,設(shè)置成功。(2)通過密碼登陸系統(tǒng):LCD顯示“請(qǐng)輸入密碼”從鍵盤輸入密碼,比較鍵盤輸入的密碼與Flash 中是否相,每次按鍵則相應(yīng)LED燈點(diǎn)亮

5、;如果密碼正確,則LEW全亮,LCD顯示“密碼正確”,并且開始切換 圖片,播放電子相冊(cè),最后播放音頻文件;如果第一次密碼不正確,則 LED燈閃爍,LCD顯示“密碼不正確,請(qǐng) 重新輸入”;如果第二次密碼不正確,則 LED燈閃爍,LCD顯示“密碼不正 確,您還有一次機(jī)會(huì),請(qǐng)重新輸入”;如果第三次密碼不正確,則LED燈閃 爍,LCD顯示“對(duì)不起,您已經(jīng)連續(xù)三次輸入密碼錯(cuò)誤,系統(tǒng)鎖定”,鎖定 系統(tǒng),無法進(jìn)行任何操作。(3)電子相冊(cè)顯示“密碼正確”后,自動(dòng)播放電子相冊(cè),多張圖片順序播放。并在播放完成后播放音樂二、系統(tǒng)功能設(shè)計(jì)2.1 硬件設(shè)計(jì)及描述2.1.1 系統(tǒng)功能模塊整體2.1.2 各模塊作用及硬件連

6、接圖(1)華邦嵌入式處理器芯片 W90P710W90P710為此次課程設(shè)計(jì)的中心和運(yùn)行平臺(tái)。它是基于ARM7TDMI內(nèi)核的處理器,提供了 4K的指令緩存和4K的數(shù) 據(jù)緩存,并具有強(qiáng)大的外設(shè)資源,包括一個(gè)USB1.1主控制器,一個(gè)SD/SDIO主 控制器,4個(gè)獨(dú)立的UART接口,一個(gè)看門狗定時(shí)器,71個(gè)可編程I/O 口,PS/2 鍵盤控制器和高級(jí)中斷控制器 AIC,同時(shí)具有一個(gè)AC97控制器,一個(gè)雙向通道 GDMA, 一個(gè)LCD控制器,兩個(gè)24位定時(shí)器,它的外部總線接口控制器支持 SDRAM、ROM/SRAM、FLASH存儲(chǔ)器和I/O設(shè)備的方便接入,還具有串行通 信和以太網(wǎng)接口,以適應(yīng)通信網(wǎng)關(guān)和

7、其他的應(yīng)用場(chǎng)合。東北大學(xué)信息學(xué)院2010級(jí)嵌入式課程設(shè)計(jì)ECSOW90P710Gpio30:41Core Module(2) LCD顯示模塊90P710試驗(yàn)板,使用的是 AUO 3.0 TFT A030DL01 (960x240, 8 位數(shù)據(jù)總線)數(shù)字式TFT液晶屏,可以將video/OSD的原始圖像數(shù)據(jù)顯示到外部顯示 設(shè)備。TFT液晶屏的顯示是對(duì)屏上每個(gè)像素點(diǎn)進(jìn)行操作,通過向這些像素點(diǎn)配置 不同的值,以顯示不同的顏色,由于其內(nèi)部沒有緩存,所要顯示的數(shù)據(jù)要隨著時(shí) 鐘脈沖一點(diǎn)一點(diǎn)的傳送過來。因此,它需要在中開辟出一片緩沖區(qū),將要顯示的 數(shù)據(jù)先存放到的緩沖區(qū)中,即存在 SDRAMfr, 一般按照一

8、維數(shù)組的形式進(jìn)行存 儲(chǔ),然后把存儲(chǔ)數(shù)據(jù)的SDRAM勺地址送給FIFO,然后送給顏色生成器,進(jìn)而實(shí) 現(xiàn)在屏幕上的顯示;如果在屏上的定位顯示,算出所要顯示的內(nèi)容在屏幕上的位 置,然后在相應(yīng)的SDRAMfi地址內(nèi)存入要顯示的數(shù)據(jù)即可。,匕六-P1QMsmur -: i:*二口一二二- -11It:*一二:1: CT.4LO 1 CT TTA3U3J: I+3.3V 1A-TClS上LCD BACKLIGHTK=:L- “ 1k 7: .T-4C 1:1 .:二Vfosi一:三二:三 一-,:CWItf ICV(3)4-.P|MEftLICMIH CimG二 c-IDMC5N 二HQFICCFK!Z3

9、”皿一HDP 皿13尸1J3OF ICC3-5*1 Efl0E2OIE J-MHma131二IM 二1G,口H1B|E M一F6W|E5|iR口MD鍵盤輸入模塊ROJC:FIO.二 Di.FIO1Z中-VW 域貝_CWii E:FIC3上 4sIBYihCiRICHn91 -c、.PIC :K;PI3J. w-1*S=-i 1 J不GPKil11r11r1r ,上 二八jB.- LO4 口i加 pkhi,1 J、IgTRF4 WVIF4H 21roa*.h ci J 4-.W1hZWVXwon J51 口 4.MXhia ca 4.W1W-feF-WUEX通過外部鍵盤輸入及軟件編程實(shí)現(xiàn)鍵盤對(duì)系

10、統(tǒng)的控制wmehWW.swu M.S.VEQ3R 0宣口PU 罵H.KFTRCIW1PUSH-KEYCOL3門口 LTPtJSHKE/PUSH-KEY-KF Ycol#ICIHVDD31BP10rnBPI 21 2ROW口PUU2KEY即ISi la HowlCPULULbmi niTUTT(4) LED模塊U13GND1soon34SUD3 ?jUZDUGSTT7K17而IUM青巾如留mSD縊空露叩用gE百口口o2D RP1B省T12151號(hào)19TIRPI8D0-D7 LED DISPLAYVDD6P4R-221J6P4R-22*74F3732.2軟件設(shè)計(jì)及描述2.2.1 程序流程框圖主函數(shù)

11、中,函數(shù)調(diào)用了 KPI、第一次輸入為設(shè)定密碼,之后USI、LCD、AC-97、LED 初始化程序。13次為密碼匹配,成功則播放相冊(cè)及音樂,否則三次后鎖定密碼鎖程序框圖如下:2.2.2源程序代碼一、主程序部分int main(void) int cnt,i;U8 wchar1=請(qǐng)輸入密碼;U8 wchar3=密碼不正確,請(qǐng)重新輸入;U8 wchar4=密碼不正確,您還有一次機(jī)會(huì),請(qǐng)重新輸入II.U8 wchar5尸對(duì)不起,您已經(jīng)連續(xù)三次輸入密碼錯(cuò)誤,系統(tǒng)鎖定/* U32 j;*/U8 LBuffer512=0;U32 ClearLoop;LCD_IMAGE_T LCD_Size;LCD_LOCA

12、TION_T LCD_Location;LCDShowParameter LSP;LCD_Size.width = 480;LCD_Size.height = 240;LCD_Location.StartX = 0;LCD_Location.StartY = 0;LCD_Location.EndX = 960;LCD_Location.EndY = 240;LCDInit();LCDShow(LCD_Size, LCD_Location);LCDFIFOBufferSet(shurumima);LCDDisplayOn();printf(printf(* USI* Flash測(cè)試程序 *n);

13、型號(hào) W25P10*n);USIInit();讀器件IDprintf(讀器件 ID:);USIRead_ID();擦除扇區(qū)0printf(寫使能:n);USIWriteEnable();while(USICheckBusy();USISectorErease(0x0);for(cnt=0;cnt5;cnt+)acnt =cnt;/發(fā)送數(shù)據(jù)初始化LSP.StartX = 12;LSP.StartY = 7;LSP.LibPlace = 0x400000;LSP.Color = 0x07ff;LSP.LetterChar = wchar1;/顯示漢字請(qǐng)輸入密碼LSP.LCDBuffer = shu

14、rumima;/ 顯示圖片和5堂東北大學(xué)信息學(xué)院2010級(jí)嵌入式課程設(shè)計(jì)LCDOutputShow(LSP,5);Delay(10000000);KPIInit(); 鍵盤初始化EBILedInit(0x00);printf(Please press keys.n);while(1)if(p=1)/輸入密碼正確EBILedInit(0xFF);輸入密碼正確,燈全亮LCDFIFOBufferSet(sky);LSP.LCDBuffer = sky;LCDDisplayOn();LetterConvert(mi, LBuffer);LetterShow(224, 52, LBuffer, sky)

15、;/X 、Y,shurumima=LBufferDelay(3000000);LetterConvert(ma, LBuffer);LetterShow(352, 52, LBuffer, sky);Delay(3000000);LetterConvert(zheng, LBuffer);LetterShow(480, 52, LBuffer, sky);Delay(3000000);LetterConvert(que, LBuffer);LetterShow(608, 52, LBuffer, sky);Delay(6000000);LCDFIFOBufferSet(yuansu);temp

16、 = (U32)yuansu;Delay(6000000);LCDFIFOBufferSet(yuanyuan);temp = (U32)yuanyuan;Delay(6000000);LCDFIFOBufferSet(shici);temp = (U32)shici;Delay(6000000);LCDFIFOBufferSet(xinshang);temp = (U32)xinshang;Delay(6000000);music();if(p=2)/第一次輸入密碼不正確,顯示密碼不正確,請(qǐng)重新輸入LSP.StartX = 12;LSP.StartY = 7;LSP.LibPlace = 0

17、x400000;LSP.Color = 0x07ff;LSP.LetterChar = wchar3;LSP.LCDBuffer = shurumima;LCDOutputShow(LSP,11);EBILedInit(0xFF);/ 燈閃爍Delay(0x7270E0);EBILedInit(0x00);Delay(0x7270E0);if(p=3)/第二次輸入密碼不正確,顯示密碼不正確,您還有一次機(jī)會(huì),請(qǐng)重新輸入LSP.StartX = 6;LSP.StartY = 7;LSP.LibPlace = 0x400000;LSP.Color = 0x07ff;LSP.LetterChar =

18、wchar4;LSP.LCDBuffer = shurumima;LCDOutputShow(LSP,19);EBILedInit(0xFF);/ 燈閃爍Delay(0x7270E0);EBILedInit(0x00);Delay(0x7270E0);if(p=4)/第三次輸入密碼不正確,顯示對(duì)不起,您已經(jīng)連續(xù)三次輸入密碼錯(cuò)誤,系統(tǒng)鎖7ELSP.StartX = 5;LSP.StartY = 7;LSP.LibPlace = 0x400000;LSP.Color = 0x07ff;LSP.LetterChar = wchar5;LSP.LCDBuffer =shurumima;LCDOutpu

19、tShow(LSP,22);EBILedlnit(OxFF);Delay(0x7270E0);EBILedInit(0x00);Delay(0x7270E0);return 0;二、音樂播放程序部分/*延時(shí)函數(shù)*/static void Delay(int nCnt)volatile int loop;for (loop=0; loop= uDataLen)memcpy(pucBuff, &PlayData_uPcmQHead, uDataLen);_uPcmQHead = (_uPcmQHead + uDataLen) % PCM_QUEUE_LEN;elsememcpy(pucBuff,

20、&PlayData_uPcmQHead, nLen);memcpy(&pucBuffnLen, PlayData, uDataLen - nLen);_uPcmQHead = uDataLen - nLen;return 0;/*讀AC97寄存器*/static UINT16 ac97_read_register(INT nIdx)UINT volatile nWait;/*置起R_WB位并寫入寄存器地址*/REG_ACTL_ACOS1 = (0x80 | nIdx);/*設(shè)置幀是否有效和有效的時(shí)隙*/REG_ACTL_ACOS0 = 0x11;Delay(100);/*檢查AC_ACTL_A

21、CCON 的AC_R_FINISH 位是否被置高,若被置高,說明讀數(shù)據(jù) 緩存區(qū)已經(jīng)準(zhǔn)備好給 CPU讀取*/for (nWait = 0; nWait 0x10000; nWait+)if (REG_ACTL_ACCON & AC_R_FINISH) break;REG_ACTL_ACOS0 = 0;Delay(100);return (REG_ACTL_ACIS2 & 0xFFFF);/*寫AC97寄存器*/static INT ac97_write_register(INT nIdx, UINT16 sValue) volatile UINT nWait;/*清R_WB位并寫入寄存器地址*/

22、REG_ACTL_ACOS1 = nIdx;/*寫入AC97寄存器的值*/REG_ACTL_ACOS2 = sValue;/*設(shè)置幀的有效位和有效的時(shí)隙*/REG_ACTL_ACOS0 = 0x13;Delay(100);/*檢查AC_ACTL_ACCON 的AC_W_FINISH 位,若被清零,說明AC-LINK控制數(shù)據(jù) 輸出緩存已經(jīng)被CPU移到編解碼器*/for (nWait = 0; nWait 0x10000; nWait+)if (!(REG_ACTL_ACCON & AC_W_FINISH)break;/*若讀回的值和寫入的值相同,則說明寫入成功*/if (ac97_read_re

23、gister(nIdx) != sValue) while(1)REG_ACTL_ACOS0 = 0; return 0;卻匕樣?xùn)|北大學(xué)信息學(xué)院2010級(jí)嵌入式課程設(shè)計(jì)/*初始化AC97*/UINT8 Initac97()/*使能音頻控制器和 AC-LINK接口*/REG_ACTL_CON = REG_ACTL_CON | IIS_AC_PIN_SEL | AUDIO_EN | ACLINK_EN | PFIFO_EN | RFIFO_EN | T_DMA_IRQ | R_DMA_IRQ | DMA_EN;Delay(IOOO);/*stereo 模式 */REG_ACTL_RESET = R

24、EG_ACTL_RESET | 0x3000;/*重啟音頻控制器 */REG_ACTL_RESET = REG_ACTL_RESET | ACTL_RESET_BIT;Delay(1000);REG_ACTL_RESET = REG_ACTL_RESET & ACTL_RESET_BIT;Delay(1000);/*重啟AC97接口 */REG_ACTL_RESET = REG_ACTL_RESET | AC_RESET;Delay(1000);REG_ACTL_RESET = REG_ACTL_RESET & AC_RESET;Delay(1000);/*冷啟動(dòng)AC97 */REG_ACTL

25、_ACCON = REG_ACTL_ACCON | AC_C_RES;Delay(1000);REG_ACTL_ACCON = REG_ACTL_ACCON & AC_C_RES;Delay(1000);/*檢查AC97的ACTL_ACIS0的CODEC_READY 位,若置起則說明 AC97準(zhǔn)備好了 */if (!(REG_ACTL_ACIS0 & 0x10)while(1);Delay(100);/*選擇麥克 1; 3D控制 關(guān);looback關(guān)*/ac97_write_register(AC97_GENERAL_PURPOSE, 0);return 0;UINT8 StartPlay(I

26、NT nSamplingRate) /*使能VRA Vvariable rate audio)并設(shè)置播放采樣率 */ac97_write_register(AC97_EXT_AUDIO_CTRL, ac97_read_register(AC97_EXT_AUDIO_CTRL)|0x1);ac97_write_register(AC97_FRONT_DAC_RATE, nSamplingRate);/*設(shè)置DMA基地址和目的地址長度 */REG_ACTL_PDSTB = base_addres; REG_ACTL_PDST_LENGTH = 0x1000;PlayLastBlock = 0;/*

27、開始播放*/REG_ACTL_ACOS0 = 0x1c; /設(shè)置數(shù)據(jù)傳輸時(shí)隙有效 REG_ACTL_PSR = 0x3;REG_ACTL_RESET = REG_ACTL_RESET | AC_PLAY;return 0;/*設(shè)置音量*/INT SetPlayVolume(UINT8 ucLeftV ol, UINT8 ucRightV ol) INT nLData, nRData;if (ucLeftVol = 0) nLData = 0x80;elsenLData = 31 - (ucLeftV ol & 0x1f);if (ucRightVol = 0) nRData = 0x80;el

28、senRData = 31 - (ucRightV ol & 0x1f);sPlayVolume = (nLData 8) | nRData;if (ucLeftVol = 0) nLData = 0x80;elsenLData = 62 - ucLeftV ol*2;if (ucRightVol = 0)卻匕樣?xùn)|北大學(xué)信息學(xué)院2010級(jí)嵌入式課程設(shè)計(jì)nRData = 0x80;elsenRData = 62 - ucRightV ol*2;_uPlayVol = (nLData = (PCM_QUEUE_LEN-4096) break;StopPlay();、鍵盤及驗(yàn)證密碼部分void KPI_Handler(void)/int i;U8 KeyValue, tmp;int cnt,sum=0;tmp = REG_KPISTA TUS; / 取按鍵值tmp &= 0x0000000f; 因?yàn)橛布B接關(guān)系,需要對(duì)按鍵進(jìn)行處理 if(tmp 0x7) & (tmp

溫馨提示

  • 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. 人人文庫網(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)論