这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 坤创E-Geek/天科大新电社 » 03. 单片机I/O口的操作1-LED灯篇

共1条 1/1 1 跳转至

03. 单片机I/O口的操作1-LED灯篇

高工
2019-01-22 23:59:07     打赏

在经过上一帖中对如何进行备赛以及开发板进行简要了解后,接下来就要上代码了。本系列中每个训练题目帖内,都会同时发布蓝桥板和普通开发板(这里也称作小红板,详细介绍及原理图下载见02. 竞赛所使用开发板介绍及相关资源下载)的代码,供大家参考学习。如果大家有更好的代码也希望能够发帖分享出来。我们共同学习,共同进步~!

对于学习单片机来说,首先常规操作,不管什么板卡,上来肯定是要先点灯的,点亮一个LED灯,是建立玩转该板卡信心的必经之路。首先一起来看一下本节的题目要求,本节中共有三道题目,要求分别如下,你做出来了么?

题1、点亮发光二极管LED0

题2、闪烁发光二极管LED1

题3、LED0-LED7流水灯

好了闲话不多说,下面分别奉上相关代码,并在文末给出所有代码压缩包的下载链接,欢迎大家下载查看。

-----------------------蓝桥板代码---------------------

蓝桥板题1代码:

/*************************************************
题1、点亮发光二极管LED0
**************************************************/
#include<stc15f2k60s2.h>

#define    uchar  unsigned char
#define    uint   unsigned int

uchar temp,i;
void  delayms(uint z);
void  init();

void main()
{
	init();
	P2=0x80;
	while(1)
	{
		P0=0xfe;
	}
}

void  delayms(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=845;y>0;y--);
}

void  init()
{
	P2=0xa0;
	P0=0x00;   //关闭继电器蜂鸣器
	P2=0x80;
	P0=0xff;  //关闭led灯
	P2=0xc0;
	P0=0xff;  //选择数码管
	P2=0xff;
	P0=0xff;  //关闭数码管
}

蓝桥板题2代码:

/*********************************************************
2、闪烁发光二极管LED1
**********************************************************/
#include<stc15f2k60s2.h>
#define    uchar  unsigned char
#define    uint   unsigned int
uchar temp,i;
void  delayms(uint z);
void  init();
void main()
{
    init();
    P2=0x80;
    while(1)
    {
        P0=0xfd;
        delayms(500);
        P0=0xff;
        delayms(500);
    }
}
void  delayms(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=845;y>0;y--);
}
void  init()
{
    P2=0xa0;
    P0=0x00;   //关闭继电器蜂鸣器
    P2=0x80;
    P0=0xff;  //关闭led灯
    P2=0xc0;
    P0=0xff;  //选择数码管
    P2=0xff;
    P0=0xff;  //关闭数码管
}

蓝桥板题3代码:

/*****************************************************
3、LED0-LED7流水灯
******************************************************/
#include<stc15f2k60s2.h>
#include"intrins.h"
#define    uchar  unsigned char
#define    uint   unsigned int
uchar temp,i;
void delayms(uint z);
void init();
void main()
{
    init();
    while(1)
    {
        P2=0x80;
        {
            temp=0xfe;
            P0=temp;
            delayms(1000);
            for(i=0;i<8;i++)
            {
                temp=_crol_(temp,1);
                P0=temp;
                delayms(500);
            }
        }
    }
}
void  delayms(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=845;y>0;y--);
}
void  init()
{
 P2=0xa0;
 P0=0x00;   //关闭继电器蜂鸣器
 P2=0x80;
 P0=0xff;  //关闭led灯
 P2=0xc0;
 P0=0xff;  //选择数码管
 P2=0xff;
 P0=0xff;  //关闭数码管
}

-----------------------小红板代码----------------------

小红板题1代码:


/******************************************
题1、点亮发光二极管LED0
*******************************************/
#include"reg52.h"
#define  uchar unsigned char
#define  uint  unsigned int 
void delayms(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
void main()
{
 while(1)
 {
  P1=0xfe;
 }
}

小红板题2代码:


/**************************************
 题2.闪烁发光二极管LED1
***************************************/
#include"reg52.h"
#define  uchar unsigned char
#define  uint  unsigned int 
void delayms(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
void main()
{
 while(1)
 {
    P1=0xfd;
    delayms(1000);
    P1=0xff;
    delayms(1000);
  }
}

小红板题3代码:

/***************************************
 题3、LED0-LED7流水灯
****************************************/
#include"reg52.h"
#include"intrins.h"
#define  uchar unsigned char
#define  uint  unsigned int 
void delayms(uint z)
{
  uint x,y;
  for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}
void main()
{
 uchar temp,i;
 while(1)
 {
      temp=0xfe;     //左移
    P1=temp;
    delayms(1000);
    for(i=0;i<8;i++)    
    {
        temp=_crol_(temp,1);
        P1=temp;
        delayms(1000);
    }
//    temp=0x7f;     //右移
//    P1=temp;
//    delayms(1000);
//    for(i=0;i<8;i++)    
//    {
//        temp=_cror_(temp,1);
//        P1=temp;
//        delayms(1000);
//    }
    } 
}

----------------所有代码打包下载链接------------------

03. 单片机IO口的操作1-LED灯篇_全部代码打包.zip


全部做完的同学们,可以接着往下进行 04. 单片机I/O口的操作2-数码管篇 的题目练习哦~~对代码有问题,欢迎回帖哦~

希望每天都能看到努力追梦的自己!加油!!




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]