单片机键盘输入编程(C语言)

上传人:宝路 文档编号:23339821 上传时间:2017-11-30 格式:DOC 页数:8 大小:137.01KB
返回 下载 相关 举报
单片机键盘输入编程(C语言)_第1页
第1页 / 共8页
单片机键盘输入编程(C语言)_第2页
第2页 / 共8页
单片机键盘输入编程(C语言)_第3页
第3页 / 共8页
单片机键盘输入编程(C语言)_第4页
第4页 / 共8页
单片机键盘输入编程(C语言)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《单片机键盘输入编程(C语言)》由会员分享,可在线阅读,更多相关《单片机键盘输入编程(C语言)(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=0)up+;21:

2、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: case 3:zleft=

3、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:定时 1中断函数开始。序号3

4、:定义 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 ,进入 i

5、f(n=1)语句,同时进行下面的具体判断按键语句。作用效果为:开始时 m、n 均赋 0,一旦有键按下,第一次中断产生时 m 赋1;第二次中断产生时 n 递增。当 n 等于1 时(第二次中断产生)进入下面的具体判断按键语句。若持续按下键,则第三次中断产生第三十一次中断产生时,程序不进入具体的判断按键语句过程(因这时 n 不等于 1) 。由于中断每10mS 产生一次,这样可实现每0.31秒(31x10=0.31秒)进行一次加法或移位的操作,与人眼的视觉特性相吻合。序号14 :进入具体判断按键语句范围。序号15 :如果 P1.0等于0(即电路中的 set 键按下) ,变量 set 递增,变量 lef

6、t 清0。说明:set、left 是为了判断模式设定及左移而在整个程序开始时定义的无符号字符型全局变量。序号16 :如果 set 大于等于4,则 set 清0。说明:set 值只能在03 间变化,只有4种工作模式(走时及输出控制模式、走时调整模式、定时1调整模式、定时2调整模式) 。序号17 :在 set 等于1时,向 RAM 区标志变量 flag 写入 55H。说明:flag 是在整个程序开始时定义的无符号字符型全局变量,用作判断 RAM 区是否受干扰的依据。 序号18 :如果 P1.1等于0(即电路中的 left 键按下) ,变量 left 递增。序号19 :如果 left 大于等于 4,

7、则 left 清0 。说明:left 值只能在03间变化,LED 数码管只有4 位显示。序号20 :如果 P1.2等于0(即电路中的 up 键按下) ,进入 if(P1_2=0)语句,变量 up递增。说明:up 是为了判断数值增量而在整个程序开始时定义的无符号字符型全局变量。序号21 :随即进入 switch(left)开关语句。序号22 :switch(left )开关语句开始。序号23 :left 值为0 时,如果 up 大于等于10,则 up 清0。随即退出。说明:电子钟的个位可在09之间调整。序号24 :left 值为1 时,如果 up 大于等于6 ,则 up 清0。随即退出。说明:电

8、子钟的十位可在05之间调整。序号25 :left 值为2 时,如果 up 大于等于10,则 up 清0。随即退出。说明:电子钟的百位可在09之间调整。序号26 :left 值为3 时,如果 up 大于等于3 ,则 up 清0。随即退出。说明:电子钟的千位可在02之间调整。序号27 :若 left 为其它值,也退出。序号28 :switch(left )开关语句结束。序号29 :if(P1_2=0 )语句结束。序号30 :如果 P1.2等于0(即电路中的 up 键按下时) ,进入 if(P1_2=0)语句,同时进入 switch(set)开关语句。序号31 :switch(set)开关语句开始。

9、序号32 :set 值为0时,退出。 序号33 :set 值为1时,将此时 up 值送入 X 数组的第 left 位。随即退出。说明:X 数组是显示走时缓存区。序号34 :set 值为2时,将此时 up 值送入 Y 数组的第 left 位。若此时 P1.3等于0(即电路中的 on/off 键按下) ,则定时1启停标志位 o_f1取反(启动/关闭) 。随即退出。说明:Y 数组是定时1记忆缓存区。 o_f1是为了判断定时1 启动/关闭而在整个程序开始时定义的位标志。序号35 :set 值为3时,将此时 up 值送入 Z 数组的第 left 位。若此时 P1.3等于0 (即电路中的 on/off 键

10、按下) ,则定时2启停标志位 o_f2取反(启动/关闭) 。随即退出。说明:Z 数组是定时2记忆缓存区。 o_f2是为了判断定时2 启动/关闭而在整个程序开始时定义的位标志。序号36 :若 set 为其它值,也退出。序号37 :switch(set)开关语句结束。if(P1_2=0 )语句结束。序号38 :else 语句开始。序号39 :又进入 switch(set)开关语句。说明:上一个 switch(set)开关语句是将按键产生的 up 值送入 X、Y、Z 数组存放,现在这个 switch(set )开关语句是调出 X、Y、Z数组内容至变量 up,以便在原来的基础上递增。例如:原来的 X0

11、值为5,则在调整时个位 LED 数码管显示就从5开始往上调,而不会产生从0 或其它值开始上调的情况,适合人的一般直觉。序号40 :set 值为0时,退出。序号41 :set 值为1时,将此时 X 数组的第 left 位值送入变量 up。随即退出。序号42 :set 值为2时,将此时 Y 数组的第 left 位值送入变量 up。若此时 P1.3等于0(即电路中的 on/off 键按下) ,则定时1 启停标志位 o_f1取反(启动/关闭) 。随即退出。序号43 :set 值为3时,将此时 Z 数组的第 left 位值送入变量 up。若此时 P1.3等于0(即电路中的 on/off 键按下) ,则定

12、时2 启停标志位 o_f2取反(启动/关闭) 。随即退出。序号44 :若 set 为其它值,也退出。序号45 :switch(set)开关语句结束。else 语句结束。序号46 :if(n=0 )语句结束。 if(P1!=0xff)语句结束。序号47 :本次定时中断快结束时,将暂存于 i,j 的当时 P1口、P3口状态还原。序号48 :定时 1中断函数结束。上面为按键输入程序设计的详细解释,按键输入时需将当时状态实时显示出来,我们将显示走时、显示调整走时、显示调整定时1、显示调整定时2做成四个子程序,分别由 set为0、 1、 2、3时散转后的 “显示走时并判断定时1、2到否程序”、 “显示调整走时程序”、 “显示调整定时1程序 ”、 “显示调整定时2程序”进行调用。为达到需输入的某位显示最亮(稳定显示) ,而其它三位显示较暗(有闪烁感)的视觉效显,让三位需显示较暗的数码管每位点亮3mS,而显示最亮的那位数码管点亮36mS 即可。限于篇幅,具体程序就不进行详解了,读者朋友可自行编写。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号