资源描述:
《嵌入式键盘控制实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、键盘控制实验日期:报告分:—、实验目的1.学>』键盘及LED驱动原理。2.掌握ZLG7289芯八的使川方法。二、实验内容通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出來。三、实验步骤1.新建工程2.定义ZLG7289寄存器(ZLG7289.h)#dcfincZLG7289_CS(0x20)//GPB5#defineZLG7289_KEY(0x10)//GPG43.编写ZLG7289驱动阑数图2-2ZLG7289S位开启zlg7289罔2-3读取键值4.定义键盘
2、映射表unsignedcharKeyBoard_Map[]={4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//64键位映射表,通过杏找键盘映射表来确定键盘扫描码对成的按键值5.定义键值渎取阐数,流程图如图2-4所示开始阁2-4键值读取函数1.编写主函数,将按键值在数码管上
3、显示,流程图如图2-5所示。图2-5主蛾数四、实验主要过程截图:“FileEditVie*SearchProjectDebugWirtdovHelp+Qinit-QstartupgQUbh®UBIHITSBITOPS.MISde£.h曲EXIO.c®EXIO.K函ISR.cBisr.h■Keyboardc曲keyboardh曲Nftroh圈n«r»c£g.s曲ByU*rt.c圈HyUart.k添加LCD320.H和lc4、.hHzlg7289c■zlc7289h§DLCD320H9LCIG2Oc实验结果拍照:五、实验关键代码{有注释,最好有流程#include"uhal.h"#inckideHkeyboard.hH#includenzlg7289.hn#includeH44b.hH#includcHLCD320.HH#pragmaimport(_use_no_semihosting_swi)//ensurenofunctionsthatusesemihostingexternintZlg7289SIOBand:e
5、xternintZlg7289S10Ctrl;intmain(void){U32key;ARMTargetlnitO;//开发版初始化LCDJnitO;LCD_ChangeMode(DspTxtMode);//转换LCDffi示模式为文本®示模式Uart—PrintffArmTargetInitOK.n);Zlg7289.Reset();//zlg7289复位while(l){key=GetKey();//得到按键值if(kcy==l)LCD_printf(7");if(key==2)L
6、CD.printf(n*");if(key==3)LCD—printf(n-");if(key==4)LCD_printf("7,r);if(key==5)LCD-printf("8");if(key==6)LCD一printf(n9,r);if(key==7)LCD—printf(M+");if(kCy==8)LCD一printf("4H);if(key==9)LCD一printf(n5M);if(key==10)LC6一printfC.6n);if(key
7、==ll)LCD一printfn");if(key==12)LCD—printf("2H);if(key==13)LCD—printf("3");if(key==14)LCD一printff’Enter");if(key==15)LCD—printf("OM);if(key==O)LCD—prinlf(”NumLock");Delay(l);ZLG7289_ENABLE();//使zlg7289占打同步串IIDelay(lO);//延时WriteSDIO(ZLG7289_
8、CMD_DATAO
9、());//数码管以方式0译码,第一个数码笹亮WriteSDIO(key%10);//显示个位Delay(3OOO);//延吋if(key>9){//键位大于9显示十位WriteSDIO(ZLG7289_CMD_DATAO
10、1);//发送十位数据WriteSDIO((unsignedchar)(key/10));Delay(l);WriteSDIO(ZLG7289_CMDJ4IDE);//使一、二两位数码管®示WriteSDIO(3);}else{//键位小于10不显示十位W