资源简介

这是一个51单片机五向摇杆程序,分享给大家参考,有详细注释

资源截图

代码片段和文件信息

/*******************************************************

程序功能:摇杆控制LED灯的亮灭

开发环境:Keil3

硬件环境:CEPARK多功能开发学习板/实验箱(2013版),STC12C5A60S2,11.092M晶振
   
接线说明:使用杜邦线连接P3口与底板单色流水灯模块的JP15 ,具体接法:P30-I1,P31-I2,P32-I3P33-I4P34-I5P35-I6P36-I7P37-I8.
  使用杜邦线连接P1口与底板五向摇杆模块的JP39 ,具体接法:P10-F1,P11-F2,P12-F3P13-F4P14-F5

跳线说明:无

实验现象:五向摇杆朝上按下,L1点亮
          摇杆朝左按下,L2点亮
  摇杆朝下按下,L3点亮
  摇杆朝右按下,L4点亮
  摇杆中间按下,L5点亮
          
 
论坛支持:http://bbs.cepark.com

淘宝店铺:http://cepark.taobao.com

作者:cepark 

时间:2013-01-23

*******************************************************/

#include “REG52.h“

/******************************************************
                   查表表格
*******************************************************/
unsigned char code table[]={0xfe0xfd0xfb0xf7
                            0xef0xdf0xbf0x7f
0xff// 关闭所有LED
};   //rom允许情况可以无限添加

void Delay(unsigned int); //延时函数
unsigned char KEY_Detect(void);

void main(void)
{
unsigned char i;  //定义一个无符号字符型局部变量 i 取值范围 0~255

P1=0xff;
P3=0xff;
while(1)
{

 i=KEY_Detect();
 if(i!=0)
 {
     P3=table[i-1];
     }
 
}
}


/******************************************************************************
函数名称:Delay
函数功能:延时函数
入口参数:uiCount-延时参数,每加1增加0.5ms
返回值:无
备注:无
*******************************************************************************/
void Delay(unsigned int uiCount)
{
unsigned char j = 244;
for(;uiCount > 0;uiCount--) while(--j);
}

/*******************************************************
函数功能:独立按键扫描
参数说明:无
返回值:返回当前按键值key

*******************************************************/
unsigned char KEY_Detect(void)
{
unsigned char ucTemp;
   unsigned char key;
ucTemp = P1 ;
if(ucTemp != 0xFF) //判断是否有按键按键,如果有按键按下,进去下面的程序
{
Delay(200);   //消抖
ucTemp = P1;
if(ucTemp != 0xFF)//再次判断是否有按键按下,如果ucTemp仍然不是0XFF,则说明确实有按键按下
{
switch(ucTemp)
{
case 0xFE:
key=1; 
   //第一个按键
break;
case 0xFD:
    key=2;
   //第二个按键
break;
case 0xFb:
key=3;
   //第三个按键
break;
  case 0xF7:
key=4;
   //第四个按键
break;
case 0xef:
key=5;
   //第五个按键
break;
case 0xdf:
key=6;
   //第六个按键
break;
case 0xbf:
key=7;
   //第七个按键
break;
case 0x7f:
key=8;
   //第八个按键
break;


default:key=0;
break;
}
}
}
   return key;
}




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2565  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\CEPARK

     文件        212  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\CEPARK-.plg

     文件        532  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\CEPARK.hex

     文件         78  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\CEPARK.lnp

     文件       1050  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\CEPARK.plg

     文件       2845  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\main.obj

     文件        212  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Out\main.plg

     文件       5573  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Project\CEPARK.m51

     文件       7745  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Project\main.lst

     文件        887  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Project\五向摇杆-点亮LED.Opt

     文件       2165  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Project\五向摇杆-点亮LED.Uv2

     文件       2919  2017-10-25 14:14  11-1 五向摇杆-点亮LED\Source\main.c

     目录          0  2018-12-25 13:26  11-1 五向摇杆-点亮LED\Out

     目录          0  2018-12-25 13:26  11-1 五向摇杆-点亮LED\Project

     目录          0  2018-12-25 13:26  11-1 五向摇杆-点亮LED\Source

     目录          0  2018-12-25 13:26  11-1 五向摇杆-点亮LED

----------- ---------  ---------- -----  ----

                26783                    16


评论

共有 条评论