資源描述:
《實(shí)驗(yàn)三鍵盤中斷實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告(2011—2012學(xué)年第2學(xué)期)課程名稱:嵌入式技術(shù)基礎(chǔ)與實(shí)驗(yàn)開課實(shí)驗(yàn)室:信自樓2342012年5月10日年級(jí)、專業(yè)、班自動(dòng)化092學(xué)號(hào)姓名成績(jī)實(shí)驗(yàn)項(xiàng)目名稱鍵盤中斷實(shí)驗(yàn)指導(dǎo)教師教師評(píng)語(yǔ)教師簽名:年月日注:報(bào)告內(nèi)容按實(shí)驗(yàn)須知中七點(diǎn)要求進(jìn)行。一、實(shí)驗(yàn)?zāi)康?、熟練運(yùn)用CodeWarrior嵌入式開發(fā)系統(tǒng)環(huán)境、匯編、C語(yǔ)言、調(diào)試方式;2、復(fù)習(xí)串行通信接口(SCI)的內(nèi)容;3、加強(qiáng)鍵盤中斷基本原理及編程原理的理解;4、理解行掃描法的原理并能進(jìn)行鍵值識(shí)別和鍵值編碼;5、理解鍵盤接線原理圖。(如圖5-1所示)二、實(shí)驗(yàn)原理及基本技術(shù)路線圖(方框原理圖)本實(shí)驗(yàn)采用
2、4x4矩陣式鍵盤。PTG4、PTD2、PTD3、PTD7分別接四根線,定義為輸入且上拉,PTG0-PTG3分別接四根行線,且定義為輸出行掃描法是使每一行輸出低電平,,其余行為高電平,然后讀取列值,如果列值中有低電平,則表明該行和列交點(diǎn)處的鍵被按下;若為全高則再掃描下一行,知道掃描完全部的行為止。這樣就可以知道哪一行哪一列交點(diǎn)鍵被按下。MCU與鍵盤接線原理如下-5-圖3-1I/O口引腳的連接圖三、所用儀器、材料(設(shè)備名稱、型號(hào)、規(guī)格等)飛思卡爾試驗(yàn)箱四、實(shí)驗(yàn)方法、步驟低電平1、資源使用鍵盤的-數(shù)據(jù)線分別接在MCUG口的0-4號(hào)引腳、D口的2、3、7號(hào)引腳。MCU的SCI發(fā)送引腳E口的0號(hào)引腳接
3、MAX232的TTL電平接收引腳(11號(hào)),MCU的SCI接收引腳E口的1號(hào)引腳接MAX232的TTL電平發(fā)送引腳(12號(hào))2、硬件設(shè)計(jì)先閱讀源程序,查看相應(yīng)的端口的宏定義,再根據(jù)端口號(hào)來接線。AW60鍵盤MAX232計(jì)算機(jī)3、軟件設(shè)計(jì)(主要的程序流程圖)-5-4、編程(關(guān)鍵性程序段)PC接收函數(shù)privatevoidSCIPort_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse){Stringstr=String.Empty;boolFlag;//標(biāo)記串口接收數(shù)據(jù)是否成功intlen;//標(biāo)記接收
4、的數(shù)據(jù)的長(zhǎng)度//調(diào)用串口接收函數(shù),并返回結(jié)果Flag=sci.SCIReceiveData(SCIPort,refPublicVar.g_ReceiveByteArray);if(Flag==true)//串口接收數(shù)據(jù)成功{len=PublicVar.g_ReceiveByteArray.Length;//對(duì)于字符串形式,考慮到可能有漢字,//直接調(diào)用系統(tǒng)定義的函數(shù),處理整個(gè)字符串str=Encoding.Default.GetString(PublicVar.g_ReceiveByteArray);SCIUpdateRevtxtbox(TbShowString,str);//十進(jìn)制和十六進(jìn)
5、制形式按字節(jié)進(jìn)行處理for(inti=0;i6、is.TSSLState.Text="過程提示:數(shù)據(jù)接收失敗!";}main函數(shù)#include"Includes.h"voidmain(void){//1關(guān)總中斷DisableInterrupt();//禁止總中斷//2芯片初始化MCUInit();//3模塊初始化//3.1SCI初始化SCIInit(SCI_NUM_1,SYSTEM_CLOCK,38400);//用SCI1,系統(tǒng)時(shí)鐘為時(shí)鐘源,波特率為9600//3.2鍵盤初始化KBInit();//4開中斷//4.1開鍵盤中斷EnableKBint();//4.2開總中斷EnableInterrupt();鍵盤中斷函數(shù)#include"
7、isr.h"http://-------------------------------------------------------------------------*//函數(shù)名:isrKeyBoard*//功能:掃描鍵盤,向串口發(fā)送鍵值和定義值*//參數(shù):無*//返回:無*//說明:調(diào)用了KBScanN、SCISend1、KBInit函數(shù)*//----------------------------------