微機(jī)原理鍵盤控制與顯示實(shí)驗(yàn)報(bào)告_第1頁(yè)
微機(jī)原理鍵盤控制與顯示實(shí)驗(yàn)報(bào)告_第2頁(yè)
微機(jī)原理鍵盤控制與顯示實(shí)驗(yàn)報(bào)告_第3頁(yè)
微機(jī)原理鍵盤控制與顯示實(shí)驗(yàn)報(bào)告_第4頁(yè)
微機(jī)原理鍵盤控制與顯示實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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、專業(yè):電氣工程及其自動(dòng)化姓名: _實(shí)驗(yàn)報(bào)告學(xué)號(hào): _日期: _ _地點(diǎn): _ _課程名稱: _微機(jī)原理(實(shí)驗(yàn))_指導(dǎo)老師: _徐習(xí)東 _成績(jī):_實(shí)驗(yàn)名稱: _ 鍵盤控制與顯示_實(shí)驗(yàn)類型: _軟件實(shí)驗(yàn) _同組學(xué)生姓名:_一、實(shí)驗(yàn)?zāi)康暮鸵螅ū靥睿┒?shí)驗(yàn)內(nèi)容和原理(必填)三、主要儀器設(shè)備(必填)四、操作方法和實(shí)驗(yàn)步驟五、實(shí)驗(yàn)數(shù)據(jù)記錄和處理六、實(shí)驗(yàn)結(jié)果與分析(必填)七、討論、心得【實(shí)驗(yàn)?zāi)康摹?. 通過(guò)實(shí)驗(yàn)掌握 TMS320F2812 通用輸入 / 輸出管腳直接控制外圍設(shè)備的方法2. 了解發(fā)光二極管的控制編程方法。3. 了解 SPI 的使用。4. 了解如何使用 GpioA 口進(jìn)行數(shù)據(jù)的鎖存5. 通過(guò)

2、實(shí)驗(yàn)掌握 TMS320F2812 的擴(kuò)展端口接收外圍設(shè)備信息的方法6. 了解鍵盤的使用原理及編程方法【實(shí)驗(yàn)內(nèi)容】1.按鍵顯示程序,對(duì)按鍵記錄次數(shù),以二進(jìn)制顯示在16 個(gè) LED 上。2. 定時(shí)器編程,并用按鍵控制各位時(shí)分秒,使其能完成加減操作【實(shí)驗(yàn)儀器】TMS320F2812數(shù)字信號(hào)處理器與學(xué)生用集成板?!緦?shí)驗(yàn)步驟】1. 撰寫代碼2. 調(diào)試代碼3. 實(shí)現(xiàn)功能【實(shí)驗(yàn)代碼】一、定時(shí)器宏定義和全局變量定義分析: 這段代碼是初始宏定義, 用于定義按鍵對(duì)應(yīng)的編碼與地址,秒,按鍵編碼, LED 編碼和控制位。然后同時(shí)定義了全局變量,包括時(shí)、 分、共陽(yáng)字形碼分析:由于這次實(shí)驗(yàn)要用到數(shù)碼管,所以我們要定義一個(gè)

3、數(shù)碼管共陽(yáng)端字形碼,使每一個(gè)代碼對(duì)應(yīng)一種顯示狀態(tài)。 SPI 初始化子程序分析:這一段是本次實(shí)驗(yàn)的重點(diǎn),就是SPI 初始化。1 )SPICCR :用于控制SPI 的狀態(tài),上下降沿發(fā)送,還有幾位的數(shù)據(jù)。其中第7 位,即 SPICCR.6 是控制SPI 在上下沿發(fā)送,1 代表下降沿, 2 代表上升沿;第8 位,即 SPICCR.7 是控制復(fù)位的,0 代表為復(fù)位狀態(tài);低 4 位控制數(shù)據(jù)長(zhǎng)度,長(zhǎng)度等于n+1 。2 ) SPICTL : SPICTL.3用來(lái)設(shè)定時(shí)鐘是否延遲半個(gè)周期,此程序中此位為0 ,即不延遲半個(gè)周期,其中SPICTL.2 是控制主從模式的,然后1 為主設(shè)備, 0 為從設(shè)備, SPICT

4、L.1 是設(shè)置 Talk 功能, 1 為使能。3 ) SPIBRR:配置波特率,即控制串行外設(shè)發(fā)送和接受的速度。然后,將 GPIO 的 F 口低四位設(shè)置為專門外設(shè)引腳,即為 SPI 引腳。設(shè)置 MUX 控制是否為專門外設(shè)。 GPIO 初始化分析:此部分為為GPIO 初始化,即設(shè)置GPIO 的功能,此部分里A11 設(shè)置為通用I/O ,在實(shí)際電路中是為了連接鎖存口。另外GPIOE 與 B 的設(shè)置見(jiàn)注釋,分別作為片選和紅燈的控制。鍵掃描程序分析:鍵掃描程序?yàn)閕nt 類型,所以必須返回整形數(shù)據(jù),此程序中返回1 或者 0 表示是否檢測(cè)到鍵被按下。首先通過(guò)E 口控制選通的是低8 位還是高8 為。然后后面的

5、If 和 for 語(yǔ)句為延時(shí)消抖,這是檢測(cè)程序中的關(guān)鍵,就是檢測(cè)B 口是否有低電平出現(xiàn),如果有說(shuō)明有鍵被按下,但是我們無(wú)法判斷,這個(gè)鍵是否被誤按下,所以要進(jìn)行一個(gè)空循環(huán),如果再檢測(cè)到,說(shuō)明這個(gè)鍵按下不是因?yàn)榘存I自身的抖動(dòng)。另外,這段代碼里還有一個(gè)細(xì)節(jié),就是D 口的出現(xiàn),這句話只是為了進(jìn)行一個(gè)空操作,進(jìn)行檢測(cè)按鍵是否松開(kāi)??刂普{(diào)時(shí)子程序分析: KEYFUNCTION程序是為了做一個(gè)控制時(shí)鐘的功能,按下一個(gè)鍵對(duì)應(yīng)一個(gè)功能選項(xiàng)。由于選擇項(xiàng)比較多,所以用switch比較好。然后CTRL 代表選定的位,是時(shí),還是分,還是秒。然后通過(guò)三位的數(shù)值到 LEDCODE 中查表獲得數(shù)碼管顯示的值。其中上調(diào)或者下降

6、哪一位要根據(jù)CTRL 的值判斷。 LIGHT表數(shù)碼管的代號(hào)。代顯示模塊分析:顯示程序中就要用到SPI 的串行功能了,需要先對(duì)數(shù)據(jù)進(jìn)行鎖存,然后是上升沿有效,即上升沿時(shí)將數(shù)據(jù)送到數(shù)碼管的引腳上。如何發(fā)送數(shù)據(jù)即通過(guò)SPI,先將數(shù)據(jù)寫入SPITXBUF ,即發(fā)送緩存器中,然后發(fā)送緩存器會(huì)將數(shù)據(jù)傳送過(guò)去。SPISTS.bit.INT_FLAG代表中斷標(biāo)志位,如果數(shù)據(jù)從SPIDAT 移出后,這個(gè)中斷標(biāo)志位會(huì)置1 。此時(shí) while語(yǔ)句的功能就是說(shuō)如果數(shù)據(jù)沒(méi)有被發(fā)送出去,則一直會(huì)進(jìn)行空操作,直到數(shù)據(jù)被發(fā)送出去為止。中斷分析:此時(shí)的中斷是進(jìn)行定時(shí)器的自增過(guò)程,即實(shí)現(xiàn)時(shí)鐘功能。二、鍵盤顯示定義編碼分析:此向量

7、表與第一個(gè)程序相同,即作為索引用,編入數(shù)碼管可顯示內(nèi)容的編碼。 main 函數(shù)分析:首先初始化程序,然后就不斷得執(zhí)行一個(gè)while循環(huán),就是檢測(cè)有沒(méi)有按鍵被按下,如果被按下就繼續(xù)執(zhí)行顯示程序。然后LEDOUT 函數(shù)與前幾次程序一樣,作為點(diǎn)燈模塊,作為計(jì)數(shù)的顯示。三、總結(jié)編程要點(diǎn)可刪語(yǔ)句1 )SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;2 )if(GpioDataRegs.GPBDAT.all|0x00FF) != 0xFFFF) for(i=0;i<3000;i+);/ 依據(jù)你需要防抖延時(shí)的時(shí)間根據(jù),此語(yǔ)句的多少。 A,E,F(xiàn), B 對(duì)應(yīng)端口1 )A11

8、的通用接口用于連接鎖存器2 )E 口的低三位為74LVC138的控制信號(hào),進(jìn)行片選3 )F 的第四位專用外設(shè)對(duì)應(yīng)于SPI4 )B 口的通用IO 輸出對(duì)應(yīng)于紅燈 SPI 的使用1 )初始化 SPI ,確定 SPI 的上升 / 下降沿,是否延遲半個(gè)周期,主從控制器,是否處于復(fù)位狀態(tài),數(shù)據(jù)的位數(shù)等等。2 )將 GPIOF 的第四位設(shè)為1 ,即專用外設(shè)引腳。3 )寫入數(shù)據(jù)發(fā)送,用SPITXBUF ,讀用 SPIRXBUF ,判斷是否已經(jīng)發(fā)送可以檢測(cè)中斷使能標(biāo)記防抖延時(shí)防抖延時(shí)的作用就是在檢測(cè)到低電平時(shí)加一個(gè)空循環(huán)進(jìn)行排除。很多時(shí)候,一個(gè)動(dòng)作,不論是人為還是程序內(nèi)部,處理都需要時(shí)間,所以空循環(huán)的應(yīng)用十分

9、重要?!締?wèn)題的提出與解決】為什么每次按下鍵盤,輸出有延遲一次?因?yàn)橐痪湔Z(yǔ)句SPITXBUF=SPITXBUF。由于這句話代表SPITXBUF 中又被寫入相同的內(nèi)容,所以又被傳輸了一次,又因?yàn)橛墟i存,所以輸出呈現(xiàn)延遲一次的情況。為什么要用GpioA口?用 GpioA口是因?yàn)槠?1 位對(duì)應(yīng)于鎖存器,要用到鎖存信號(hào),所以要用GpioA口。為什么要用GpioDataRegs.GPDDAT.bit.GPIOD1=!GpioDataRegs.GPDDAT.bit.GPIOD1?進(jìn)行一個(gè)空循環(huán),本身沒(méi)有什么意義?!緦?shí)驗(yàn)心得】本次實(shí)驗(yàn)微機(jī)原理實(shí)驗(yàn),我們組準(zhǔn)備比較充分,因此也比較早的完成。然而我們?cè)诮Y(jié)束后對(duì)每句代碼進(jìn)行注釋

溫馨提示

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