在经过上一帖中对如何进行备赛以及开发板进行简要了解后,接下来就要上代码了。本系列中每个训练题目帖内,都会同时发布蓝桥板和普通开发板(这里也称作小红板,详细介绍及原理图下载见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-数码管篇 的题目练习哦~~对代码有问题,欢迎回帖哦~
希望每天都能看到努力追梦的自己!加油!!



我要赚赏金
