还剩3页未读,继续阅读
文本内容:
嵌入式系统键盘控制实验日期报告分
1、实验目的1.学习键盘及LED驱动原理
2.掌握ZLG72__芯片的使用方法
二、实验内容通过ZLG72__芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来
三、实验步骤1.新建工程2.定义ZLG72__寄存器(ZLG72__.h)#defineZLG72___CS0x20//GPB5#defineZLG72___KEY0x10//GPG43.编写ZLG72__驱动函数图2-2ZLG72__复位图2-3读取键值4.定义键盘映射表unsignedcharKeyBoard___p[]={48110000059121510006101316230070140000000000000000000000000000000000000};//64键值映射表,通过查找键盘映射表来确定键盘扫描码对应的按键值5.定义键值读取函数,流程图如图2-4所示图2-4键值读取函数6.编写主函数,将按键值在数码管上显示,流程图如图2-5所示图2-5主函数
4、实验主要过程截图实验结果拍照
五、实验关键代码(有注释,最好有流程图)#includeuhal.h#includekeyboard.h#includezlg72__.h#include44b.h#includeLCD
320.H#prag__import__use_no_semihosting_swi//ensurenofunctionsthatusesemihostingexternintZlg72__SIOBand;externintZlg72__SIOCtrl;int__invoid{U32key;ARMTargetInit;//__版初始化LCD_Init;LCD_ChangeModeDsp___Mode;//转换LCD显示模式为文本显示模式Uart_Printf\nArmTargetInitOK.;Zlg72___Reset;//zlg72__复位while1{key=GetKey;//得到按键值ifkey==1LCD_printf/\n;ifkey==2LCD_printf*\n;ifkey==3LCD_printf-\n;ifkey==4LCD_printf7\n;ifkey==5LCD_printf8\n;ifkey==6LCD_printf9\n;ifkey==7LCD_printf+\n;ifkey==8LCD_printf4\n;ifkey==9LCD_printf5\n;ifkey==10LCD_printf6\n;ifkey==11LCD_printf1\n;ifkey==12LCD_printf2\n;ifkey==13LCD_printf3\n;ifkey==14LCD_printfEnter\n;ifkey==15LCD_printf0\n;ifkey==0LCD_printfNumLock\n;Delay1;ZLG72___ENABLE;//使zlg72__占有同步串口Delay10;//延时WriteSDIOZLG72___CMD_DATA0|0;//数码管以方式0译码,第一个数码管亮WriteSDIOkey%10;//显示个位Delay3000;//延时ifkey9{//键值大于9显示十位WriteSDIOZLG72___CMD_DATA0|1;//发送十位数据WriteSDIOunsignedcharkey/10;Delay1;WriteSDIOZLG72___CMD_HIDE;//使
一、二两位数码管显示WriteSDIO3;}else{//键值小于10不显示十位WriteSDIOZLG72___CMD_HIDE;//使个位数码管显示WriteSDIO1;}ZLG72___DISABLE;//zlg72__放弃同步串口控制权}return0;}
六、遇到的问题及解决方法添加LCD
320.H和lcd
320.c文件。