【C51单片机】流水灯(仿真)
1、流水灯功能
所谓流水灯就是8个发光二极管(LED)轮流点亮,周而复始,实现多花样流水灯效果,如:8个发光二极管循环点亮(第①号灯亮、第②号灯亮……第⑧号灯亮,第①号灯亮、第②号灯亮……第⑧号灯亮,……,每次只亮一个灯);8个LED从左到右循环依次点亮(第①号灯亮、第①②号灯亮……第①②③④⑤⑥⑦⑧号灯亮),间隔1s,直到8个灯全亮后,蜂鸣器响一下,然后都熄灭,再又从左到右循环依次点亮,如此循环;同时要做出多种效果
2、PROTEUS中设计的电路图
3、源代码
#include <reg51.h>
#define u8 unsigned char
#define u16 unsigned int
sbit button=P2^0;
u8 k=0;
sbit FM = P2^3;
void delay_ms(int x)
{int i,j;for(i=0;i<=x;i++)for(j=0;j<=110;j++);
}//从左向右
void light1()
{unsigned char temp,i;temp=0xff;for(i=0;i<9;i++){ delay_ms(500);P0=temp; delay_ms(500);temp=temp<<1;}TR0=1;delay_ms(1000);P0=0xff;}
//从右向左
void light2()
{unsigned char temp,i;temp=0xff;for(i=0;i<9;i++){delay_ms(500);P0=temp; delay_ms(500);temp=temp>>1;}TR0=1;delay_ms(1000);P0=0xff;
}//两个灯一起亮
void light3()
{unsigned char temp,i;temp=0xff;for(i=0;i<5;i++){delay_ms(500);P0=temp; delay_ms(500);temp=temp<<2;}TR0=1;delay_ms(1000);P0=0xff;
}//两边向中间
void light4()
{unsigned char i;unsigned char *Temp[4];Temp[0] = 0x7e;Temp[1] = 0x3c; Temp[2] = 0x18; Temp[3] = 0x00;for(i=0;i<4;i++){ delay_ms(500);P0=Temp[i];delay_ms(500); }TR0=1;delay_ms(1000);P0=0xff;
}void main()
{FM=1;TL0 = (8192-1250)%32;TH0 = (8192-1250)/32;TMOD = 0X00;EA=1;//总中断允许ET0 = 1;while(1){light1();light2();light3();light4();}
}void time0() interrupt 1
{TL0 = (8192-1000)%32;TH0 = (8192-1000)/32;FM = ~FM;k++;if(k==50) {FM=1;k=0;TR0=0;}
}
4、流水灯效果
效果视频展示
问题咨询及项目源码请加群:
QQ群
名称:IT项目交流群
群号:245022761
【C51单片机】流水灯(仿真)相关推荐
- 基于STM32单片机流水灯仿真与程序设计
STM32单片机流水灯仿真与程序设计 摘要 本次程序设计和仿真是基于Proteus和keil的环境对STM32F103系列单片机进行流水灯设计,通过配置STM32的GPIO工作模式,实现LED的点亮和 ...
- 单片机流水灯仿真实验
一.首先先下载proteus8 (其他的版本也可以) 然后打开proteus: 然后点击funish即可出现一下图片内容: 二.拖出元器件 并且将元器件摆放完整 然后打开keil软件 将一下代码生成H ...
- Proteus 8仿真以及C51单片机广告灯的设计(C语言)实例
Proteus 8仿真以及C51单片机广告灯的设计(C语言)实例 一. 广告灯程序编译 二. Proteus8 仿真 三. 开发板调试 四. 注意事项 一. 广告灯程序编译 打开Keil uVisio ...
- 51单片机流水灯制作
文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...
- c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解
用C语言编写的单片机流水灯程序 一.硬件电路 因为电路用单片机控制,所以电路非常简洁.其电路原理图见下图,印制板图如下图所示. ? 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组 ...
- AT89C51单片机流水灯c语言程序及详解(扫盲教程)
AT89C51单片机是我们学习单片机必学的一个单片机,也是单片机入门的教材,下面给大家展示一下流水灯的编写方法适合初学者 首先先在proteus画出仿真图,方便仿真程序 下面来编写程序,先来写入头函数 ...
- [AT89C51 ]用汇编语言实现流水灯仿真(含keil与Proteus)
前言:笔者发文主要是为了记录笔者单片机学习课程,可能实用性不多,大佬看着玩就行. 关键词:51单片机:AT89C51:流水灯仿真:初学 要求:使用AT89C51实现流水灯,使用汇编语言. 思路:用51 ...
- 51单片机流水灯现象1
**` 51单片机流水灯程序 `** 初学者小白,分享上课时写的小程序和普中科技程序,感兴趣的可以瞧瞧. 程序如有相同冒犯了. /*********************************** ...
- 单片机流水灯三种实现
单片机流水灯的三种实现方式(由上至下,再重下到上) 原理图 一般使用单片机的P1口 输出,不需要加上拉电阻: 由原理图可以看出这里采用低电平输出. 一.采用数组方式进行字节定义,最好理解的方式 #in ...
- 89c52流水灯汇编语言,89c52单片机流水灯汇编程序
8路流水灯汇编语言程序的写法 汇编语言程序如下: ;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下: ORG 0000H MOV ...
最新文章
- java iterator如何知道数量_Java开发岗面试题基础篇(二)
- 【常见问题】Can not perform this action after onSaveInstanceState
- 柯美smb扫描出现服务器连接错误_柯尼卡美能达363,正确设置了SMB扫描,文件夹也共享了,但扫描后,显示错误为 登录错误,是为什么...
- SpringBoot24 SpringDataJPA环境搭建、实体类注解、关联查询
- LaTex 变形的字母
- 学习使用Whally GraalVM!
- 认真测试直播软件,直播这么火,你知道怎么测试直播软件吗?
- es 全量同步mysql_使用canal将mysql同步到es中
- latex 三线表_LaTeX学习记录(3):使用图表
- 玩生死狙击找不到服务器怎么办,生死狙击手游进不了游戏解决方法 生死狙击手游进游戏诀窍...
- Hadoop与Spark的集群复制
- python没基础能自学吗-需要自学python吗?大概多久能学会?
- JavaScript DOM高级程序设计 5动态修改样式和层叠样式表1(源代码)--我要坚持到底!...
- 主流H5、Js 3D游戏引擎和框架
- windows 系统电脑内外网出问题,解决方案
- 3dmax2017卸载/安装失败/如何彻底卸载清除干净3dmax2017注册表和文件的方法
- 显卡功耗测试用什么软件,显卡功耗测试_AMD显卡_显卡评测-中关村在线
- Nacos:快速不停打印获取配置 c.a.n.client.config.impl.ClientWorker : get changedGroupKeys[${dataId}+${grou
- 北京市三级医院电话预约挂号一览表
- OA项目之我的审批(会议查询会议签字)