欢迎来到天天文库
浏览记录
ID:57688766
大小:59.50 KB
页数:2页
时间:2020-09-01
《LED数码管显示矩阵键盘按键的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、任务九设计说明2一、电路原理及仿真图:二、程序设计:#include#defineucharunsignedcharuchardisplay[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};ucharkey;voidget(){uchara;P1=0x0f;//按下按钮//a=P1^0x0f;switch(a)//确定行//{case1:key=0;break;c
2、ase2:key=4;break;case4:key=8;break;case8:key=12;break;case0:key=16;}P1=0xf0;a=P1^0xf0;switch(a)//确定列//{case16:key=key+3;break;case32:key=key+2;break;case64:key=key+1;break;case128:key=key+0;}}voidmain(){P0=display[16];get();P0=display[key];}程序完成两个功能,首先扫描键盘,
3、检测是否有按键按下并计算键值。然后如果有按键按下则驱动数码管显示相应键值,否则显示”-“符号。三、设计说明如电路原理图所示,图中矩阵键盘和P3端口连接,共阳极数码管的段选端和单片机的P0口连接,位选直接接到高电平,使得数码管始终处于选通状态。系统启动后,单片机逐行扫描键盘,当没有按键按下时,驱动数码管显示“-”符号,当检测到有按键按下时,单片机将相应键值对应的数码编码送至P0端口,驱动数码管以十六进制方式显示被按下的按键的键值。一、遇到的问题首先遇到的问题是系统启动后数码管没有任何显示,仔细查看仿真现象后发现
4、P0口始终为高阻状态,于是怀疑是数码管极性错误。再检查数码管型号后发现果然使用了共阴极数码管,于是换成共阳极数码管后终于有了显示。其次是希望键值从键盘的左下角起始,即左下角键值为0。但由于对键盘的扫描方向理解的不是很透彻,导致调试了很多次,键值排列顺序都不尽人意。不过最终还是达到了设计要求。
此文档下载收益归作者所有