PIC单片机人机接口模块独立式按键的程序设计

时间:2008-11-26

  下面是查询方式下的键盘程序,程序中没有使用散转指令,也没有软件防抖动措施,只包括按键查询、键功能程序转移。FP0~FP7为功能程序入口地址标号,PROM0~PROM7分别为每个按键的功能程序。

  程序清单(设I/O口为P1口)如下:

  由此程序可以看出,各按键由软件设置了优先级,优先级顺序依次为0~7。

  本节所讲的模块中,在按键按下或弹起时经常会出现一些毛刺,所以在首次检测到输入的值后应添加一个延时程序DELAY。

  这个延时程序延时100ms左右,延时后再检测输入的值,如果改变了,则证明此时按键按下或弹起时读出的值是不准确的,再调用延时程序DELAY,延时100ms之后,再继续查看。

  本例采用4MHz的品振,时钟周期是250ms,由于PIC单片机的指令周期是4倍时钟周期,即1μs,要延时100ms,可以设置两层循环,另外,跳转指令GOTO需要两个指令周期,自减1并且判断指令DECFSZ需要一个指令月期,所以要进行100000/(2+1)约为33333个指令周期。

  现设内部循环为256次,则外部循环约为130次,因为本例对延时的要求并不很高,所以本例中的设计只进行了近似的计算,程序流程如图所示。

  图  程序流程

  (1)主程序。

  首先设置端口C为输入口,端口D为输出口,然后循环检测端口C的状态,若有键按下,则延时去抖动,再由端口D显示。

  (2)延时子程序

  入口参数:COUNT1存放外部循环次数,COUNT2存放内部循环次数。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com


  
上一篇:PIC单片机人机接口模块独立式按键的电路设计
下一篇:PIC单片机人机接口模块4×4行列式键盘的电路设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料