C51实现流水灯

这篇具有很好参考价值的文章主要介绍了C51实现流水灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、实验要求

1、 先八盏灯从左至右依次点亮,同一时刻仅有一盏灯处于被点亮状态,每盏灯亮0.5s,然后八盏灯从右至左依次点亮,同一时刻仅有一盏灯处于被点亮状态,每盏灯亮0.5s,循环两遍;
2、 八盏灯同时闪烁,亮1s,灭0.5s;,实现4次;
3、 上述过程周而复始的循环运行;

二、实验代码和原理图

1.代码

代码如下(示例):

#include"reg51.h"
#include"intrins.h"
#define uchar unsigned int  //起小名 
#define uint unsigned int   //+1 
uchar code ledcode[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //共阴极码表

void delay(uint n)//延时函数 
{
	uchar j;
	while(n--)
    for(j=0;j<113;j++);
}

int main()
{
   uchar i,temp;//temp控制次数 

   while(1)
   {  
   	   temp=2;
   	   while(temp)//要求1 
   	   {
	       for(i=0;i<8;i++)
		   {
			P0=ledcode[i]^0xFF;
			delay(300);
			P0=0xFF;	  
		   } 
		   temp--;  	   	
	   }
		
        temp=2;	
		while(temp)
		{		    	 
     		for(i=6;i>0;i--) 
			{					 
			    P0=ledcode[i]^0xFF;	 	  
				delay(300);			
			    P0=0xFF;			
			}
			 	P0=ledcode[0]^0xFF;	 	  
				delay(300);			
			    P0=0xFF;			
			temp--;
			if(temp)
			{
			P0=ledcode[7]^0xFF;
			delay(300);
			P0=0xFF;
			}
		}
		 
		temp=4;
		while(temp)//要求3 
		{
			P0=0x00;	
			delay(600);
			P0=0xFF;
			delay(300);
			temp--;
		}
   }	
} 

2.原理图

c51流水灯程序,单片机,c语言,单片机,51单片机proteus版本为8.10

总结

本次实验不是特别难,我所做的也只是一种方法而已。代码之路何其艰辛,条条大路通罗马,大家要是还有其他方法,可以在评论区留言。我期待与大家进行学习交流。文章来源地址https://www.toymoban.com/news/detail-725649.html

到了这里,关于C51实现流水灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • C51单片机按键控制流水灯模式(定时器版本)以及定时器时钟

    C51单片机按键控制流水灯模式(定时器版本)以及定时器时钟

      上篇文章我们学了关于定时器的三大组成部分及许多寄存器的概念问题,这篇文章我们就要开始讲解实操部分。 首先,我们先来看看本文最后写成的代码:      以上三张是代码的主函数,此外,代码中还需用到的独立按键检测代码在下面:  注意:头文件中#ifndef和#def

    2023年04月17日
    浏览(12)
  • 【C51基础实验 LED流水灯】

    【C51基础实验 LED流水灯】

    前言: 前几篇学会了LED驱动原理,并且成功点亮了一颗LED和实现了LED的闪烁,那么这篇紧接着就来解锁LED的新功能,LED流水灯。当然这里前提是基于肉眼余晖可见光达成的效果。 开发板上 LED 模块电路原理图如下图所示: 看上图中 LED 采用共阳接法 ,D1-D8 连接到单片机的

    2024年02月10日
    浏览(8)
  • [AT89C51 ]用汇编语言实现流水灯仿真(含keil与Proteus)

    [AT89C51 ]用汇编语言实现流水灯仿真(含keil与Proteus)

           前言:笔者发文主要是为了记录笔者单片机学习课程,可能实用性不多,大佬看着玩就行。         :51单片机;AT89C51;流水灯仿真;初学 要求:使用AT89C51实现流水灯,使用汇编语言。 思路:用51单片机8个P1口输出实现8个LED灯依次亮灭,实现流水目标    

    2024年02月05日
    浏览(61)
  • 【小作业】基于AT89C51的按键控制流水灯作业

    【小作业】基于AT89C51的按键控制流水灯作业

    单片机与4个独立按键k1~k4及8个LED指示灯的一个独立式键盘。4个按键接在P1.0~P1.3引脚,P3口接8个LED指示灯,控制LED指示灯亮与灭。 按下k1键,P3口8个LED正向(由上至下,间隔1盏灯)流水点亮; 按下k2键,P3口8个LED反向(由下而上,间隔1盏灯)流水点亮; 按下k3键,P3口8个LE

    2024年02月06日
    浏览(11)
  • 51单片机实现流水灯

    51单片机实现流水灯

    我们之前说过可以控制管脚口电平来控制LED的亮灭,低电平灯亮,高电平灯灭,具体可以看我之前的博客。 P20~P27可以用八位二进制数来表示每一位的电平,第八位是P20,第一位是P27,那么11111110就代表P20亮,其他灭,11101111就代表P24亮,其他灭。流水灯的代码就可以写成这样

    2024年02月11日
    浏览(7)
  • 51单片机流水灯三种实现方法

    51单片机流水灯三种实现方法

    流水灯可以用三种方法实现 一.通过移位函数  _crol_()  和  _cror_() 二.位移实现流水灯 三.数组流水灯实现 首先说一下流水灯的原理 让0从左往右位移或者从右往左位移 从而实现流水灯依次点亮 电路图如下,使用软件是project 使用左移函数代码如下  ///运行结果是LED灯从上到

    2023年04月09日
    浏览(12)
  • 51单片机入门 - 详解定时器实现按键控制流水灯方向

    操作系统:Windows 10 x84-64 单片机:STC89C52RC 编译器:SDCC 烧录软件:stcgal 1.6 开发板:普中51单片机开发板A2套件(2022) 在 VS Code 中新建项目到烧录的过程: 左侧EIDE图标 - 新建项目 - 空项目 - 8位MCU项目 - 保存文件夹。 更改构建配置: SDCC ;更改烧录配置: stcgal 。 在项目文件

    2024年02月06日
    浏览(10)
  • 【51单片机入门】实现流水灯的原理及四种方法(详细易上手型)

    【51单片机入门】实现流水灯的原理及四种方法(详细易上手型)

    初学单片机,流水灯的实现是必不可少的,下面将介绍流水灯的原理及使用STC-ISP软件延时计算器生成的延时代码实现流水灯的四种方法,最后介绍如何将延时函数模块化。 目录  一、流水灯原理  二、循环 三、移位运算符 四、库函数 五、数组          六、延时函数模块

    2024年02月05日
    浏览(20)
  • 51单片机入门流水灯

    上次已经实现了LED的点亮了,这篇文章将带大家实现流水灯。 要想实现流水灯首先就得知道什么是延时函数,延时函数的作用就是等待。比如延时一毫秒就是让程序在这里等待一毫秒。延时函数的本质就是执行一些空指令,因为执行指令需要耗费时间,所以执行一定数量的空

    2024年02月04日
    浏览(14)
  • 【51单片机】键控流水灯

    设置k3作为启动键,只有先按下k3才能开始控制流水灯,按下k3后LED闪烁提示开始成功。 在按下k3后,其余键即可控制流水灯。其中k1执行从右到左,k2执行从左到右。 按下k4,执行外部中断,立马中止流水灯运行,需重新按下启动键重启。

    2024年02月06日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包