ARM控制SPI顯示及LED閃爍實(shí)驗(yàn)_第1頁
ARM控制SPI顯示及LED閃爍實(shí)驗(yàn)_第2頁
ARM控制SPI顯示及LED閃爍實(shí)驗(yàn)_第3頁
ARM控制SPI顯示及LED閃爍實(shí)驗(yàn)_第4頁
ARM控制SPI顯示及LED閃爍實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微機(jī)原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:控制spi顯示及l(fā)ed閃爍實(shí)驗(yàn) 院 系:物理與機(jī)電工程學(xué)院 專業(yè)班級(jí): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 完成時(shí)間: 2011.04.20 報(bào)告成績(jī): 評(píng)閱意見: 評(píng)閱教師 日期 控制spi顯示與led閃爍實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康模?、 掌握spi主機(jī)實(shí)驗(yàn)7段數(shù)碼管顯示的使用和程序的應(yīng)用;2、 將gpio與spi組合成倒計(jì)時(shí)顯示,同時(shí)led也在開始工作;3、 掌握相關(guān)程序的書寫和更改;二、 實(shí)驗(yàn)器材:pc機(jī),easyarm2138開發(fā)板,axd仿真軟件。三、 實(shí)驗(yàn)原理:lpc2138具有一個(gè)spi(spi,serial periphl interface)接口,它是一個(gè)同步

2、、全雙工串行接口,最大數(shù)據(jù)位速率為時(shí)鐘速率的1/8,可以配置為主機(jī)或者從機(jī)。在同一總線上可以有多個(gè)主機(jī)或者從機(jī),但同一時(shí)刻只能有一個(gè)主機(jī)和一個(gè)從機(jī)能夠進(jìn)行通信,在一次數(shù)據(jù)傳輸過程中,主機(jī)向從機(jī)發(fā)送一字節(jié)數(shù)據(jù),從機(jī)也向主機(jī)返回一字節(jié)數(shù)據(jù)。spi主機(jī)操作流程圖1.spi主機(jī)實(shí)驗(yàn)-7段數(shù)碼管顯示 實(shí)驗(yàn)使用lpc2138的spi接口作為主機(jī)向74hc595發(fā)送數(shù)據(jù),數(shù)據(jù)內(nèi)容由7段數(shù)碼顯示,同時(shí)spi主機(jī)接收74hc595的移位輸出數(shù)據(jù),即接收回前一個(gè)顯示數(shù)據(jù)。實(shí)驗(yàn)硬件連接如圖4.61所示 圖4.61 spi接口控制74hc595硬件連接圖 圖中已經(jīng)將最高位輸出(sqh)連接到lpc2131的spi接口

3、的miso0,可用來讀回74hc595移位輸出的數(shù)據(jù)。 該實(shí)驗(yàn)演示在7段數(shù)碼管上顯示一些字符,字符的字模表存于一數(shù)組中,流程圖如圖4.62所示,程序代碼如程序清單4.17所示。7段共陽數(shù)碼管真值表lpc2138具有2個(gè)32位可編程定時(shí)/計(jì)數(shù)器,均具有4路捕獲、4路比較匹配并輸出電路。定時(shí)器對(duì)外時(shí)鐘(pclk)周期進(jìn)行計(jì)數(shù),可選擇產(chǎn)生中斷或根據(jù)4個(gè)匹配寄存器的設(shè)定,在到達(dá)指定的定時(shí)值時(shí)執(zhí)行其它動(dòng)作(輸出高/低點(diǎn)平、翻轉(zhuǎn)或者無動(dòng)作)。它還包括4個(gè)捕獲輸入,用于在輸入信號(hào)發(fā)生跳變時(shí)捕獲定時(shí)器值,并可選擇產(chǎn)生中斷??捎糜趯?duì)內(nèi)部事件進(jìn)行計(jì)數(shù)的實(shí)踐間隔時(shí)器,或者通過捕獲輸入實(shí)現(xiàn)脈寬調(diào)制,亦可作為自由運(yùn)行的

4、定時(shí)器。定時(shí)器0和定時(shí)器1除了外設(shè)基地址以外,其他都相同。2.定時(shí)器0定時(shí)實(shí)驗(yàn)-中斷方式 用定時(shí)器0實(shí)現(xiàn)0.5秒定時(shí),使用中斷方式實(shí)現(xiàn)定時(shí)控制,讓蜂鳴器每秒鐘響1次。程序需要在t0mcr中設(shè)置定時(shí)器0匹配復(fù)位tc并產(chǎn)生中斷,還需設(shè)置向量中斷控制器(vic),使能并設(shè)置timer0中斷,最后等待中斷。timer0中斷服務(wù)程序取反蜂鳴器控制口的電平,然后清除timer0中斷標(biāo)志,最后通知vic中斷處理結(jié)束并返回。主程序和中斷服務(wù)程序的流程圖見圖4.92,程序清單4.22所示。 圖4.92 定時(shí)器0定時(shí)實(shí)驗(yàn)主程序和中斷程序流程圖四、實(shí)驗(yàn)程序: 實(shí)驗(yàn)說明:本次實(shí)驗(yàn)的目的是實(shí)現(xiàn)數(shù)碼管現(xiàn)實(shí)倒計(jì)時(shí)9-0后l

5、ed1閃爍的效果,并且spi的顯示時(shí)間間隔、led1閃爍間隔與定時(shí)器0設(shè)置的一致,不斷循環(huán)。 注:修改過的程序均有下劃線。#include config.h#define leds8 0xff 18#define leds1 0x01 18#define hc595_cs (1 29) / p0.29口為74hc595的片選uint8 rcv_data; /觀察讀回的數(shù)據(jù)uint8 rcv_data; /觀察讀回的數(shù)據(jù) /* 此表為led09 */uint8 const disp_tab16 = / 0 1 2 3 4 5 6 7 8 9 0xc0,0xf9,0xa4,0xb0,0x99,0x

6、92,0x82,0xf8,0x80,0x90;/* 函數(shù)名稱:mspi_init()* 函數(shù)功能:初始化spi接口,設(shè)置為主機(jī)。* 入口參數(shù):無* 出口參數(shù):無*/void mspi_init(void) spi_spccr = 0x52; / 設(shè)置spi時(shí)鐘分頻 spi_spcr = (0 3) |/ cpha = 0, 數(shù)據(jù)在sck 的第一個(gè)時(shí)鐘沿采樣 (1 4) |/ cpol = 1, sck 為低有效 (1 5) |/ mstr = 1, spi 處于主模式 (0 6) |/ lsbf = 0, spi 數(shù)據(jù)傳輸msb (位7)在先 (0 7);/ spie = 0, spi 中斷被

7、禁止/* 函數(shù)名稱:mspi_senddata()* 函數(shù)功能:向spi總線發(fā)送數(shù)據(jù)。* 入口參數(shù):data 待發(fā)送的數(shù)據(jù)* 出口參數(shù):返回值為讀取的數(shù)據(jù)*/uint8 mspi_senddata(uint8 data) ioclr = hc595_cs; / 片選74hc595 spi_spdr = data; while( 0 = (spi_spsr & 0x80);/ 等待spif置位,即等待數(shù)據(jù)發(fā)送完畢 ioset = hc595_cs; return(spi_spdr);/* 函數(shù)名稱 :main()* 函數(shù)功能 :使用定時(shí)器實(shí)現(xiàn)1秒鐘定時(shí)。*/int main (void) uin

8、t8 tt=9;/*設(shè)置循環(huán)次數(shù)*/ pinsel0 = (pinsel0 & 0xffff00ff) | 0x00005500;/ 設(shè)置管腳連接spi pinsel2 = pinsel2&(0x08);/* 設(shè)置管腳連接gpio*/iodir = hc595_cs; mspi_init(); / 初始化spi接口io1dir = leds8;/* 設(shè)置led控制口輸出*/io1set=0xfe 18;/* 定時(shí)器0初始化 */t0tc = 0;/* 定時(shí)器設(shè)置為0*/t0pr = 0;/* 時(shí)鐘不分頻*/t0mcr = 0x03;/* 設(shè)置t0mr0匹配后復(fù)位t0tc,并產(chǎn)生中斷標(biāo)志*/t0

9、mr0 = fpclk; /* 1秒鐘定時(shí)*/t0tcr = 0x01;/* 啟動(dòng)定時(shí)器*/rcv_data = mspi_senddata(disp_tabtt);/ 發(fā)送顯示數(shù)據(jù)while (1)while (t0ir & 0x01) = 0);/* 等待定時(shí)時(shí)間到*/tt-;rcv_data = mspi_senddata(disp_tabtt);/ 發(fā)送顯示數(shù)據(jù)t0ir = 0x01;/* 清除中斷標(biāo)志*/while(tt=0)tt=9;t0ir = 0x01;/ 清除中斷標(biāo)志if (io1set & leds1) = 0)io1set = leds1;elseio1clr = led

溫馨提示

  • 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)論