鍵盤中斷實(shí)驗(yàn)_第1頁
鍵盤中斷實(shí)驗(yàn)_第2頁
鍵盤中斷實(shí)驗(yàn)_第3頁
鍵盤中斷實(shí)驗(yàn)_第4頁
鍵盤中斷實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 南通大學(xué)實(shí)驗(yàn)報(bào)告院系:計(jì)算機(jī)科學(xué)與技術(shù) 姓名:課程名稱:接口技術(shù) 成績:學(xué)號(hào):1213022013指導(dǎo)教師:李躍華 同組實(shí)驗(yàn)者: 實(shí)驗(yàn)日期:2014-5-7實(shí)驗(yàn)名稱:鍵盤中斷實(shí)驗(yàn)1. 實(shí)驗(yàn)?zāi)康?熟練運(yùn)用 CodeWarrior 嵌入式開發(fā)系統(tǒng)環(huán)境、C 語言、調(diào)試方式。2復(fù)習(xí)串行通信接口(SCI)的內(nèi)容。3加強(qiáng)鍵盤中斷基本原理及編程原理的理解。4理解“行掃描”法的原理并能進(jìn)行鍵值識(shí)別和鍵值編碼2. 實(shí)驗(yàn)內(nèi)容鍵盤的 c 語言編程:1)初始化,先按 IO 口方式初始化,即定義列線為輸入且上拉,行線為輸出,然后依輸入口的鍵盤功能初始化相應(yīng)的寄存器。2)定義鍵值表3)掃描一次,讀取鍵值4)獲得鍵盤定義

2、值行掃描法是使鍵盤的某一行輸出為低電平,其余行為高電平,然后讀取列值,如果列值中有某位為低電平,則表明該行和列交點(diǎn)處的鍵被按下;若為全高則再掃描下一行,直至掃描完全部的行線為止。這樣就可以確定是哪一行哪一列交點(diǎn)的鍵被按下。 2. 軟件設(shè)計(jì) 主程序中構(gòu)件初始化三 程序流程圖 在主函數(shù)里添加波特率 在中斷中加接受函數(shù) Tool測試按鍵值在pc上顯示四 編程 1.內(nèi)核定時(shí)器中斷void tpm0_isr(void) static uint_32 TPMCounter = 0; /計(jì)時(shí)器 uint_8 value; /鍵盤變量 static uint_8 LEDindex=0; /位選口聲明 uint

3、_8 LEDDataBuffer4; /LED顯示緩沖區(qū)uint_8 i;/LED緩沖區(qū)賦值 LEDDataBuffer0='0' LEDDataBuffer1='2' LEDDataBuffer2='3' LEDDataBuffer3='5' /LCD顯示緩沖區(qū),其中.表示按下的數(shù)字 uint_8 kbv32="The keyboard you just input is ." if(TPM_SC_REG(TPM0_BASE_PTR) & TPM_SC_TOF_MASK) = TPM_SC_TOF_M

4、ASK) TPMCounter+; BSET(TPM_SC_TOF_SHIFT,TPM_SC_REG(TPM0_BASE_PTR); /中斷置標(biāo)志位寫1清0 /處理LED部分 LEDindex+; /位選位+1if (LEDindex>=4) LEDindex=0; /大于4位選口置0i=LEDchangeCode(LEDDataBufferLEDindex-'0'); /轉(zhuǎn)碼 LEDshow1(LEDindex,i); /顯示LEDif(TPMCounter>100) TPMCounter = 0; /鍵盤得到掃描值 value = KBScanN(2); /掃描

5、鍵值,存于value中 if(KBDef(value) != 0xff) /發(fā)送鍵值 /修改.成為按鍵值 kbv31 = KBDef(value); /通過LCD顯示出來 LCDShow(kbv); uart_send_string(UART_2,kbv);/鍵盤發(fā)送信息 2.程序的入口int main(void) /1.聲明主函數(shù)使用的局部變量uint_8 * g_DispalyInit; /2.關(guān)總中斷 enter_critical(); /3.初始化底層模塊 uart_init (UART_1,BUSCLK, 9600); /串口1初始化, 總線時(shí)鐘24000Khz,波特率9600 LE

6、DInit(); /LED初始化 LCDInit(); /LCD初始化 KBInit(); /鍵盤初始化 tpm_init(TPM0,TPM_CLKSRC_PLL,1000); /初始化TPM模塊,1ms中斷一次 /4.緩沖區(qū)賦值 g_DispalyInit = (uint_8 *)"Wait Receiving.Soochow 2013.01." /5.開中斷 tpm_enable_int(0); init_critical(); /6.lcd顯示初始字符 LCDShow(g_DispalyInit); /= for(;) /=return 0;四.實(shí)驗(yàn)小結(jié) 在這次實(shí)驗(yàn)中主要讓我們熟悉掌握gpio口通信的知識(shí),在熟悉代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論