#include "reg52.h"
#include "intrins.h"
/*************************************************************************
- Function : 花式流水实验
- Description : 间隔300ms先奇数亮再偶数亮,然后再循环三次:
①一个LED上下循环三次
②分别从两边往中间流动三次
③8个LED全部闪烁3次;关闭LED。
- Hardware : 硬件连接:LED0-LED7 -> P1.0-P1.7
- Date : 2023
*************************************************************************/
/* 定义常用变量类型 */
#define u8 unsigned char
#define u16 unsigned int
/* 定义变量 */
u8 code tab[] = {0x7e,0xbd,0xdb,0xe7};
/* 声明子函数 */
void target1();
void target2();
void target3();
void delay(u16);
/*************************************************************************
Function : 主程序
Description : None
**************************************************************************/
void main()
{
while(1)
{
target1();
delay(300);
target2();
delay(300);
target3();
delay(300);
}
}
/*************************************************************************
Function : 延时子程序
Description : 延时 x 毫秒
**************************************************************************/
void delay(u16 xms)
{
u16 x,y;
for(x=xms;x>0;x--)
{
for(y=125;y>0;y--);
}
}
/*************************************************************************
Function : 功能一
Description : 奇数亮再偶数亮,循环三次
**************************************************************************/
void target1()
{
u8 i;
for(i=0;i<3;i++)
{
P1 = 0xaa;
delay(300);
P1 = 0x55;
delay(300);
}
P1 = 0xff;
}
/*************************************************************************
Function : 功能二
Description : LED分别从两边往中间流动三次
**************************************************************************/
void target2()
{
u8 i,j,temp,a,b,num;
temp = 0xfe;
for(i=0;i<3;i++)
{
for(j=0;j<8;j++)
{
P1 = temp;
delay(300);
temp = _crol_(temp,1); // 循环左移1位
}
}
P1 = 0xff;
delay(300);
for(a=0;a<3;a++)
{
num = 0;
for(b=0;b<4;b++)
{
P1 = tab[num];
delay(300);
num++;
}
}
P1 = 0xff;
}
/*************************************************************************
Function : 功能三
Description : 8个LED全部闪烁3次;关闭LED
**************************************************************************/
void target3()
{
u8 c;
for(c=0;c<3;c++)
{
P1 = 0x00;
delay(300);
P1 = 0xff;
delay(300);
}
P1 = 0xff; // 最后关闭所有LED
}
51 单片机 Keil + Proteus 实现多种流水灯仿真
48 浏览量
2023-11-18
13:45:09
上传
评论 5
收藏 152KB ZIP 举报
取址执行
- 粉丝: 65
- 资源: 21
最新资源
- 南京邮电大学数学实验:熟练掌握 Matlab 软件的基本命令和操作
- 2017校招真题校园招聘真题算法题(37道)Python源码.zip
- 基于单片机protues仿真的多功能自动饮水机系统设计(仿真图、源代码、演示视频)
- 二叉树7-1-1.cpp
- android 9.0 原生模拟器 签名文件
- 技术面试最后反问面试官的话 校招面试非技术问题有哪些 非技术问题如何回答.png
- NB-IOT-BC26全网通模块Altium+ CADENCE +PADS三种格式(原理图SCH+PCB封装库)文件.zip
- 基于微信小程序开发的校园失物招领系统源码毕业设计(优质项目源码).zip
- 词向量是一种将自然语言中的单词转换为数值向量的技术,它能够捕捉词义和上下文信息
- nmap与masscan的简单使用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈