打印
[活动专区]

【赛元95F】 + 6、SC95F8617 5方向按键测试

[复制链接]
844|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tlled|  楼主 | 2020-3-23 17:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    测试5方向按键开关。


     一、电路图


    使用SC95F8617的P2.3-P2.7口作为按键输入端口。
   
   
   


    二、程序


    2.1、main.c
#include "config.h"

void main(void)
{
        uint i=0;
        uchar key;
        Init_led();
        Init_key();
        Init_uart(32, 9600);
        uart_chl(1);   //USB-TTL
        while(1)
        {
                key=Scan_key();
                if(key!=0)
                {
                        switch (key)
      {
              case UP_KEY:
                                        uart_send_string("sc95f8617 up_key press \r\n");
                      break;
              case DOWN_KEY:
                                        uart_send_string("sc95f8617 down_key press \r\n");
                      break;
                                case LEFT_KEY:
                                        uart_send_string("sc95f8617 left_key press \r\n");
                      break;
                                case RIGHT_KEY:
                                        uart_send_string("sc95f8617 right_key press \r\n");
                      break;
                                case CENTER_KEY:
                                        uart_send_string("sc95f8617 center_key press \r\n");
                      break;
              default:
                      break;
      }
                }
        }
}


    2.2、key.c
#include "config.h"


void Init_key(void)
{
        P2CON &= 0x03   ;// 1111 1100
        P2PH  |= 0xfc;
}

uchar Scan_key(void)
{
        uint ki;
        uchar ky;
        ky = P2&0xfc;
        if(ky!=0xfc)
        {
                for(ki=0;ki<65530;ki++);
                if(ky!=0xfc)
                {
                        return ky;
                }
        }
        return 0;
}


    1.3、key.h
#ifndef _KEY_H_
#define _KEY_H_

#define UP_KEY  0xEC
#define DOWN_KEY 0xDC
#define LEFT_KEY 0xF4
#define RIGHT_KEY 0x5C
#define CENTER_KEY 0xBC

void Init_key(void);
uchar Scan_key(void);
       

#endif


    三、测试结果

    按下按键,串口输出相应的按键数据

   
   

使用特权

评论回复

相关帖子

沙发
xiaoqizi| | 2020-4-3 18:24 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

129

主题

698

帖子

6

粉丝