单片机补充案例--按键点灯

2021-03-03 14:57:26 浏览数 (1)

这是一个及其简单的案例,按下key点亮led,为什么还要补充呢?

1. 输入和输出

2. 数字量

代码语言:javascript复制
/*****************************************************************************
 *                    头文件                                   *
 *****************************************************************************/
#include "8052.h"    
//端口定义--功能按键控制LED灯亮灭
#define LSA   P1_5  			
#define LSB   P1_6  			
#define LSC   P1_7 
#define LED0   P0_0 
#define LED1   P0_1 
#define LED2   P0_2 
#define LED3   P0_3 
#define KEY0   P3_2 
#define KEY1   P3_3 
#define KEY2   P3_4 
#define KEY3   P3_5 

/*****************************************************************************
 *                             初始化                                   *
 *****************************************************************************/
void delay(unsigned int ms)	//
{
  unsigned int x;
  unsigned int y;
  for(x=ms;x>0;x--)
	for(y=110;y>0;y--)
	  ;
}

void sys_init(void)
{
	 LSA = 0;
	 LSB = 0;
	 LSC = 0; 
}
/*****************************************************************************
 *                             主函数                                   *
 *****************************************************************************/
void main(void)
{
    sys_init();
    while(1)
    {
        /* send per 0ms */
        //delay(1);
        LED0=KEY0;
        LED1=KEY1;
        LED2=KEY2;
        LED3=KEY3;
    }
}

关于单片机程序,如果使用固件库一定要配置好环境,对于实验一,不配置正确就无法完成编译,报错无法找到xxx等:

参考如下代码:

代码语言:javascript复制
/*****************************************************************************
 *                    头文件                                   *
 *****************************************************************************/
#include "8052.h"
#define LSA   P1_5  			
#define LSB   P1_6  			
#define LSC   P1_7 
/*****************************************************************************
 *                             初始化                                   *
 *****************************************************************************/
void delay(unsigned int ms)	//
{
  unsigned int x;
  unsigned int y;
  for(x=ms;x>0;x--)
	for(y=110;y>0;y--)
	  ;
}

void sys_init(void)
{
	 LSA = 0;
	 LSB = 0;
	 LSC = 0; 
}
/*****************************************************************************
 *                             主函数                                   *
 *****************************************************************************/
void main(void)
{
    sys_init();
    while(1)
    {
        /* send per 1000ms */
        delay(1000);
        P0=0x55;
        /* send per 1000ms */
        delay(1000);
        P0=0xFF;
    }
}

0 人点赞