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