微機原理鍵盤控制及顯示實驗報告_第1頁
微機原理鍵盤控制及顯示實驗報告_第2頁
微機原理鍵盤控制及顯示實驗報告_第3頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、-. z.專業(yè):電氣工程及其自動化*:_*:_日期:_ _地點:_ _實驗報告課程名稱:_微機原理實驗_指導教師:_徐習東_成績:_實驗名稱:_鍵盤控制與顯示_實驗類型:_軟件實驗_同組學生*:_一、實驗目的和要求必填二、實驗內(nèi)容和原理必填三、主要儀器設備必填四、操作方法和實驗步驟五、實驗數(shù)據(jù)記錄和處理六、實驗結(jié)果與分析必填七、討論、心得【實驗目的】通過實驗掌握TMS320F2812通用輸入/輸出管腳直接控制外圍設備的方法了解發(fā)光二極管的控制編程方法。了解SPI的使用。了解如何使用GpioA口進展數(shù)據(jù)的鎖存通過實驗掌握TMS320F2812的擴展端口接收外圍設備信息的方法了解鍵盤的使用原理及編

2、程方法【實驗內(nèi)容】按鍵顯示程序,對按鍵記錄次數(shù),以二進制顯示在16個LED上。定時器編程,并用按鍵控制各位時分秒,使其能完成加減操作【實驗儀器】TMS320F2812數(shù)字信號處理器與學生用集成板?!緦嶒灢襟E】撰寫代碼調(diào)試代碼實現(xiàn)功能【實驗代碼】一、定時器宏定義和全局變量定義分析:這段代碼是初始宏定義,用于定義按鍵對應的編碼與地址,然后同時定義了全局變量,包括時、分、秒,按鍵編碼,LED編碼和控制位。共陽字形碼分析:由于這次實驗要用到數(shù)碼管,所以我們要定義一個數(shù)碼管共陽端字形碼,使每一個代碼對應一種顯示狀態(tài)。SPI初始化子程序分析:這一段是本次實驗的重點,就是SPI初始化。1SPICCR:用于控

3、制SPI的狀態(tài),上下降沿發(fā)送,還有幾位的數(shù)據(jù)。其中第7位,即SPICCR.6是控制SPI在上下沿發(fā)送,1代表下降沿,2代表上升沿;第8位,即SPICCR.7是控制復位的,0代表為復位狀態(tài);低4位控制數(shù)據(jù)長度,長度等于n+1。2SPICTL:SPICTL.3用來設定時鐘是否延遲半個周期,此程序中此位為0,即不延遲半個周期,其中SPICTL.2是控制主從模式的,然后1為主設備,0為從設備,SPICTL.1是設置Talk功能,1為使能。3SPIBRR:配置波特率,即控制串行外設發(fā)送和承受的速度。然后,將GPIO的F口低四位設置為專門外設引腳,即為SPI引腳。設置MU*控制是否為專門外設。GPIO初始

4、化分析:此局部為為GPIO初始化,即設置GPIO的功能,此局部里A11設置為通用I/O,在實際電路中是為了連接鎖存口。另外GPIOE與B的設置見注釋,分別作為片選和紅燈的控制。鍵掃描程序分析:鍵掃描程序為int類型,所以必須返回整形數(shù)據(jù),此程序中返回1或者0表示是否檢測到鍵被按下。首先通過E口控制選通的是低8位還是高8為。然后后面的If 和for語句為延時消抖,這是檢測程序中的關(guān)鍵,就是檢測B口是否有低電平出現(xiàn),如果有說明有鍵被按下,但是我們無法判斷,這個鍵是否被誤按下,所以要進展一個空循環(huán),如果再檢測到,說明這個鍵按下不是因為按鍵自身的抖動。另外,這段代碼里還有一個細節(jié),就是D口的出現(xiàn),這句

5、話只是為了進展一個空操作,進展檢測按鍵是否松開??刂普{(diào)時子程序分析:KEYFUNCTION程序是為了做一個控制時鐘的功能,按下一個鍵對應一個功能選項。由于選擇項比擬多,所以用switch比擬好。然后CTRL代表選定的位,是時,還是分,還是秒。然后通過三位的數(shù)值到LEDCODE中查表獲得數(shù)碼管顯示的值。其中上調(diào)或者下降哪一位要根據(jù)CTRL的值判斷。LIGHT代表數(shù)碼管的代號。顯示模塊分析:顯示程序中就要用到SPI的串行功能了,需要先對數(shù)據(jù)進展鎖存,然后是上升沿有效,即上升沿時將數(shù)據(jù)送到數(shù)碼管的引腳上。如何發(fā)送數(shù)據(jù)即通過SPI,先將數(shù)據(jù)寫入SPIT*BUF,即發(fā)送緩存器中,然后發(fā)送緩存器會將數(shù)據(jù)傳

6、送過去。SPISTS.bit.INT_FLAG代表中斷標志位,如果數(shù)據(jù)從SPIDAT移出后,這個中斷標志位會置1。此時while語句的功能就是說如果數(shù)據(jù)沒有被發(fā)送出去,則一直會進展空操作,直到數(shù)據(jù)被發(fā)送出去為止。中斷分析:此時的中斷是進展定時器的自增過程,即實現(xiàn)時鐘功能。二、鍵盤顯示定義編碼分析:此向量表與第一個程序一樣,即作為索引用,編入數(shù)碼管可顯示內(nèi)容的編碼。 main函數(shù)分析:首先初始化程序,然后就不斷得執(zhí)行一個while循環(huán),就是檢測有沒有按鍵被按下,如果被按下就繼續(xù)執(zhí)行顯示程序。然后LEDOUT函數(shù)與前幾次程序一樣,作為點燈模塊,作為計數(shù)的顯示。三、總結(jié)編程要點可刪語句SpiaReg

7、s.SPIR*BUF = SpiaRegs.SPIR*BUF;2if(GpioDataRegs.GPBDAT.all|0*00FF) != 0*FFFF) for(i=0;i3000;i+); /依據(jù)你需要防抖延時的時間根據(jù),此語句的多少。A,E,F(xiàn),B對應端口A11的通用接口用于連接鎖存器E口的低三位為74LVC138的控制信號,進展片選F的第四位專用外設對應于SPIB口的通用IO輸出對應于紅燈SPI的使用初始化SPI,確定SPI的上升/下降沿,是否延遲半個周期,主從控制器,是否處于復位狀態(tài),數(shù)據(jù)的位數(shù)等等。將GPIOF的第四位設為1,即專用外設引腳。寫入數(shù)據(jù)發(fā)送,用SPIT*BUF,讀用S

8、PIR*BUF,判斷是否已經(jīng)發(fā)送可以檢測中斷使能標記防抖延時防抖延時的作用就是在檢測到低電平時加一個空循環(huán)進展排除。很多時候,一個動作,不管是人為還是程序內(nèi)部,處理都需要時間,所以空循環(huán)的應用十分重要?!締栴}的提出與解決】為什么每次按下鍵盤,輸出有延遲一次?因為一句語句SPIT*BUF=SPIT*BUF。由于這句話代表SPIT*BUF中又被寫入一樣的內(nèi)容,所以又被傳輸了一次,又因為有鎖存,所以輸出呈現(xiàn)延遲一次的情況。為什么要用GpioA口?用GpioA口是因為其11位對應于鎖存器,要用到鎖存信號,所以要用GpioA口。為什么要用?進展一個空循環(huán),本身沒有什么意義。【實驗心得】本次實驗微機原理實驗,我們組準備比擬充分,因此也比擬早的完成。然而我們在完畢后對每句代碼進展注釋和解讀。這個過程讓我們收

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論