C51学习笔记——C语言实现灯闪烁和流水灯

文章目录

  • 1.要实现的效果
  • 2.硬件清单
  • 3.硬件连接
  • 4.代码展示
  • 5.效果展示
  • 6.推荐的参考文章

1.要实现的效果

利用Keil和Proteus实现以下的功能:

  • 开关打开时,循环:0145闪烁3次+自上而下流水灯1次;
  • 开关关闭时,循环:2367闪烁3次+自下而上流水灯1次。

说明一下,我使用的软件版本是Keil uVision2Proteus7
为了实现以上的功能,我将LED接在了P0口上,将开关接在了P1.0上

2.硬件清单

硬件数量备注
单片机180C51
开关3单刀单掷开关
电阻8100Ω
电源15V
8黄色LED

3.硬件连接

这里的开关弄多了,其实只需要一个就可以。
在这里插入图片描述

4.代码展示

#include
#includeshort led1;
short flag_0145 = 0;
short flag_2367 = 0;
sbit switch1 = P1^0;void delay(unsigned int i)	
{i*=100;while(--i);
}void main()
{while(1){//开始三次的闪灯if(switch1)         //开关1关闭 --> 0145灯闪烁三次 + 往下的流水灯{if(flag_0145 < 3){P0 = 0xCC;delay(500);P0 = 0xFF;delay(500); flag_0145++;               led1 = 0x7F;}flag_2367 = 0;if(flag_0145 == 3)     //闪灯结束,开始流水灯{led1 = _crol_(led1,1);P0 = led1;if(led1 == 0x7F)flag_0145 = 0;delay(250);}}else                 //开关1关闭 --> 2367灯闪烁三次 + 往上的流水灯{if(flag_2367 < 3){P0 = ~0xCC;delay(500);P0 = 0xFF;delay(500);	 flag_2367++; led1 = 0xFE;             }flag_0145 = 0;if(flag_2367 == 3) //闪灯结束,开始流水灯{led1 = _cror_(led1,1);P0 = led1;if(led1 == 0xFE)flag_2367 = 0;delay(250);}}}
}

5.效果展示

在这里插入图片描述请添加图片描述

6.推荐的参考文章

51单片机流水灯方法大全


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部