CC2530 GPIO口输入配置配置步骤

描述

第一章 按键原理图分析

原理图

原理图

第二章 GPIO口输入模式配置

原理图

原理图

第三章 检测按键示例代码

示例代码:

#include < ioCC2530.h >//定义LED灯的端口
 #define LED1 P1_2
 #define LED2 P1_3//定义KEY按键的端口
 #define KEY1 P1_0       //定义按键为P1_0口控制
 #define KEY2 P1_1       //定义按键为P1_1口控制/*
 函数功能:LED灯IO口初始化
 硬件连接:LED1-- >P1_2 , LED2-- >P1_3
 */
 void LED_Init(void)
 {
     P1DIR |=0x3< < 2;  //配置P1_2、P1_3为输出模式
     LED1 = 1;
     LED2 = 1;
 }
 ​
 /*
 函数功能:按键IO口初始化
 硬件连接:KEY1-- >P1_0  KEY2-- >P1_1  
 */
 void KEY_Init(void)
 {
     P1SEL&=~(0x3< < 0); //配置P1_0,P1_1处于通用GPIO口模式
     P1DIR&=~(0x3< < 0); //配置P1_0,P1_1为输入模式
     P1INP|= 0x3< < 0;   //上拉   
 }
 ​
 ​
 void delay10ms(void)   //误差 0us
 {
     unsigned char a,b,c;
     for(c=193;c >0;c--)
         for(b=118;b >0;b--)
             for(a=2;a >0;a--);
 }
 ​
 ​
 /*
 函数功能:按键扫描
 返 回 值:按下的按键值
 */
 unsigned char Key_Scan(void)
 {
     static unsigned char stat=1;
     if((KEY1==0||KEY2==0)&&stat)
     {
        stat=0;
        delay10ms();
        if(KEY1==0)return 1;
        if(KEY2==0)return 2;
     }
     else
     {
         if(KEY1&&KEY2)stat=1;
     }
     return 0;
 }
 ​
 ​
 /*主函数*/
 void main(void)
 {
     unsigned char key;
     LED_Init();//初始化LED灯控制IO口
     KEY_Init();//按键初始化
     while(1)          
     {  
        key=Key_Scan();
        if(key)
        {
           LED1 = !LED1;     
           LED2 = !LED2;
        }       
     }
 }
 ​

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分