2022年嵌入式键盘控制实验.pdf

上传人:Che****ry 文档编号:14803394 上传时间:2022-05-07 格式:PDF 页数:5 大小:304.41KB
返回 下载 相关 举报
2022年嵌入式键盘控制实验.pdf_第1页
第1页 / 共5页
2022年嵌入式键盘控制实验.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年嵌入式键盘控制实验.pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式键盘控制实验.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式键盘控制实验嵌入式系统键盘控制实验日期: 报告分 : 一、实验目的1. 学习键盘及LED 驱动原理。2、掌握 ZLG7289 芯片的使用方法。二、实验内容通过 ZLG7289 芯片驱动 17 键的键盘与8 个共阴极 LED , 将按键值在LED 上显示出来。三、实验步骤1. 新建工程2. 定义 ZLG7289 寄存器 (ZLG7289 、h) #define ZLG7289_CS (0 x20) /GPB5 #define ZLG7289_KEY (0 x10) /GPG4 3编写 ZLG7289 驱动函数图 2-2 ZLG7289 复位图 2-3 读取键值4. 定义键盘映射表unsig

2、ned char KeyBoard_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 所示精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 5 页 - - -

3、 - - - - - - - 嵌入式键盘控制实验图 2-4 键值读取函数6编写主函数 , 将按键值在数码管上显示, 流程图如图2-5 所示。图 2-5 主函数四、实验主要过程截图 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 5 页 - - - - - - - - - - 嵌入式键盘控制实验实验结果拍照 : 添加 LCD320 、 H与 lcd320 、 c 文件精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - -

4、 - -第 3 页,共 5 页 - - - - - - - - - - 嵌入式键盘控制实验五、实验关键代码 (有注释 ,最好有流程图 ) #includeuhal、h #includekeyboard、h #includezlg7289 、h #include44b、h #includeLCD320 、H #pragma import(_use_no_semihosting_swi) / ensure no functions that use semihosting extern int Zlg7289SIOBand; extern int Zlg7289SIOCtrl; int main(

5、void) U32 key; ARMTargetInit(); /开发版初始化LCD_Init(); LCD_ChangeMode(DspTxtMode);/ 转换 LCD 显示模式为文本显示模式Uart_Printf(nArm Target Init OK、); Zlg7289_Reset();/zlg7289 复位while(1) key=GetKey();/ 得到按键值if(key=1) LCD_printf(/ n); if(key=2) LCD_printf(* n); if(key=3) LCD_printf(- n); if(key=4) LCD_printf(7 n); if(

6、key=5) LCD_printf(8 n); if(key=6) LCD_printf(9 n); if(key=7) LCD_printf(+ n); if(key=8) LCD_printf(4 n); if(key=9) LCD_printf(5 n); if(key=10) LCD_printf(6 n); if(key=11) LCD_printf(1 n); if(key=12) LCD_printf(2 n); if(key=13) LCD_printf(3 n); if(key=14) LCD_printf(Enter n); if(key=15) LCD_printf(0

7、n); if(key=0) LCD_printf(NumLock n); Delay(1); ZLG7289_ENABLE();/使 zlg7289 占有同步串口Delay(10);/ 延时WriteSDIO(ZLG7289_CMD_DATA0|0);/数码管以方式0 译码 ,第一个数码管亮WriteSDIO(key%10);/ 显示个位Delay(3000);/ 延时if(key9) / 键值大于 9 显示十位精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 5 页 - - - - - - -

8、 - - - 嵌入式键盘控制实验WriteSDIO(ZLG7289_CMD_DATA0|1);/发送十位数据WriteSDIO(unsigned char)(key/10); Delay(1); WriteSDIO(ZLG7289_CMD_HIDE);/使一、二两位数码管显示WriteSDIO(3); else / 键值小于 10 不显示十位WriteSDIO(ZLG7289_CMD_HIDE);/使个位数码管显示WriteSDIO(1); ZLG7289_DISABLE();/zlg7289放弃同步串口控制权 return 0; 六、遇到的问题及解决方法每次做实验都就是要改代码。 首先在没有

9、改代码之前 ,在按键的时候 ,我按 1,出现的不就是对应的数字 ,并且在显示屏上也没有出现数字。 所以需要联系实验1 中的代码 ,让按键出来的数字显示在显示屏上。所以一开始就需要把实验1 中的 LCD320、H 与 lcd320、c 文件加入到本实验里。最后修改完代码后 ,我去做了试验。我按了一个 1 数字键 ,发现屏幕上出现了有7 个 1,难道就是我按的太慢了?我很快地又按了一遍,还就是出现了 4 个。 后来发现就是因为延时的原因,所以又在代码里加入了延时代码。再试一遍 ,果然,我按得慢 ,屏幕上也只出现一个相对应的数字。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 5 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁