×
单片机 > 单片机程序设计 > 详情

51单片机学习之路 —— 1.7 独立键盘

发布时间:2020-06-19 发布时间:
|

1   作业回顾

    

 作业

  

  

  

    

 

2  独立键盘概念

 

   

  

  s2 s3 s4 s5 为独立键盘与P3^0 P3^1 P3^2 P3^3 相连接

  s2 = 0 就是s2被按下的意思

  

 

 

 

 

3 程序编写

  1 先写个简单的

    要求 按下s2按键 led点亮,再次按下熄灭

    代码

 s2按键

     分析:

      1 

        sbit S2  =P3^4;

        

        在板子的原理图中,S2 接的是P3.4口不要写错了

 

        2  

        

        假如S2 被按下,如果10ms后还是按下的

        其中的语句delay(10) 学名叫去抖延时

        还有while(!S2)分析以下

        假如S2被按下,则!S2 = 1 就一直执行空语句;假如S2松开则可以往下执行。

 

 

 

  2    来个复杂点的 

     1 要求:用数码管的前两位显示一个十进制数,变化范围为00到59

         按键功能: S2  按下数值加一

               S3   按下数值减一

               S4   按下数值清零

                   S5   按下后启动自加每秒加一,再次按下后暂停并显示数值

 

     2 代码:

 键盘2

    

            3 分析下:

        要完成自加,需要定时器,我们需要写一个中断程序;

         我建议写代码时用notepad,可以写的很清晰明白

  这里我将代码主要写了7大块;看上去就清晰明白了许多吧。下面我们主要看几块代码

  1

  

    初始化函数的作用是选定定时器0工作模式1 并打开开关总断和定时器0中断

 

  2

 显示函数

   P0 = 0xfe; // 1111  1110  第一位数码管  对应十位

   P0 = 0xfd   //  1111  1101  第二位数码管  对应个位

 

   3   键盘块代码

    

 

       

 

       对S2  功能是加一     但假如加满到60时将其置零

        S3   功能是减一 ,先判断是否位0;为零置60

        S4   功能清零

        S5   S5是按下一次开始,在按下一次暂停,所以先while(!S5)

          先判断S5是否按完毕了,一但手从S5按键拿开,就开始自加或暂停。

  

 

   4  主函数

    

    套个大循环,让他一直扫描键盘并显示即可。

  5  中断

    

    每一次中断时,先填值,保证每次定时都是50ms

    每20个50ms 即1s,将numt0置零,num+1;num会用于显示函数中

    假如大于59 将其置0;


关键字:51单片机  独立键盘 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil(MDK-ARM)系列教程(七)_菜单