单片机键盘输入编程电路设计.doc
《单片机键盘输入编程电路设计.doc》由会员分享,可在线阅读,更多相关《单片机键盘输入编程电路设计.doc(8页珍藏版)》请在沃文网上搜索。
1、单片机键盘输入编程电路设计 学习过单片机技术的人都知道,单片机的按键输入一般可分为简单的独立式按键输入及行列式键盘输入两种。图1为简单的独立式键盘输入示意图,独立式键盘输入适合于按键输入不多的情况(=30)n=0;m=0; 8:P3_7=0; 9:P1=0xff; 10:if(P1!=0xff) 11: 12:if(n=0)m=1; 13:if(n=1) 14: 15:if(P1_0=0)set+;left=0; 16:if(set=4)set=0; 17:if(set=1)flag=0x55; 18:if(P1_1=0)left+; 19:if(left=4)left=0; 20:if(P1
2、_2=0)up+; 21:switch(left) 22: 23:case 0:if(up=10)up=0;break; 24:case 1:if(up=6)up=0;break; 25:case 2:if(up=10)up=0;break; 26:case 3:if(up=3)up=0;break; 27:default:break; 28: 29: 30:if(P1_2=0) 31:switch(set) 32:case 0:break; 33:case 1:xleft=up;break; 34:case 2:yleft=up;if(P1_3=0)o_f1=!o_f1;break; 35:
3、case 3:zleft=up;if(P1_3=0)o_f2=!o_f2;break; 36:default:break; 37: 38:else 39:switch(set) 40:case 0:break; 41:case 1:up=xleft;break; 42:case 2:up=yleft;if(P1_3=0)o_f1=!o_f1;break; 43:case 3:up=zleft;if(P1_3=0)o_f2=!o_f2;break; 44:default:break;45 : 46: 47:P1=i;P3=j; 48: 序号1(程序解释,以下同):声明定时1中断函数。 序号2:定
4、时1中断函数开始。 序号3:定义i、j为无符号字符型局部变量。将当时的P1口、P3口状态送i、j暂存。 序号4、5:定时器T1重新载入10mS初值。 序号6:如变量m等于1,则变量n递增。说明:m、n为整个程序开始时定义的无符号字符型全局变量。 序号7:如变量n大于等于30,则m、n清零。 序号8:P3.7置0,准备读取按键输入。 序号9:P1口置全1,准备读取按键输入。 序号10:如果P1口不等于全1,说明4个按键中有键按下。 序号11:进入if(P1!=0xff)语句范围。 序号12:如果n等于0,进入if(n=0)语句,m置1。 序号13:如果n等于1,进入if(n=1)语句,同时进行下
5、面的具体判断按键语句。作用效果为:开始时m、n均赋0,一旦有键按下,第一次中断产生时m赋1;第二次中断产生时n递增。当n等于1时(第二次中断产生)进入下面的具体判断按键语句。若持续按下键,则第三次中断产生第三十一次中断产生时,程序不进入具体的判断按键语句过程(因这时n不等于1)。由于中断每10mS产生一次,这样可实现每0.31秒(31x10=0.31秒)进行一次加法或移位的操作,与人眼的视觉特性相吻合。 序号14:进入具体判断按键语句范围。 序号15:如果P1.0等于0(即电路中的set键按下),变量set递增,变量left清0。说明:set、left是为了判断模式设定及左移而在整个程序开始时
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 键盘输入 编程 电路设计
