单片机流水灯的三种实现方式(由上至下,再重下到上)

原理图

一般使用单片机的P1口 输出,不需要加上拉电阻:
由原理图可以看出这里采用低电平输出。
一、采用数组方式进行字节定义,最好理解的方式

#include<reg51.h>
#define uchar unsigned char
uchar tab[] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//预设好每个灯亮时的代码void delay()   //延时
{uchar a,b,c;for(c=5;c>0;c--)for(b=116;b>0;b--)for(a=214;a>0;a--);
}
void main()
{uchar i;while(1){for(i = 0;i<7;i++){P1 = tab[i];delay();}for(i = 7;i>0;i--){P1 = tab[i];delay();}}
}

二,用移位运算符号“<<”“>>”来实现,注意移位运算的特点,左移时高位丢弃,低位补0,反之;

#include<reg51.h>
#define uchar unsigned char
void delay()   //延时
{uchar a,b,c;for(c=5;c>0;c--)for(b=116;b>0;b--)for(a=214;a>0;a--);
}
void main()
{uchar i,temp;while(1){temp = 0x01; //0000 0001for(i =0;i<8;i++){P1=~temp;delay();temp=temp<<1;}temp = 0x80; //1000 0000for(i =0;i<8;i++){P1=~temp;delay();temp=temp>>1;}}
}

三、还有一种使用循环位移函数(最简单的方式),需要添加库函数<intrins.h> _crol_循环左移,_cror_循环右移

#include<reg51.h>
#include<intrins.h>delay()
{unsigned char a,b,c;for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);return 0;}
void main()
{unsigned char temp;unsigned i =6;temp=0xFE;P1 = temp;delay();while(1){for(i=7;i--;i>0){temp =_crol_(temp,1);P1= temp;delay();}for(i=7;i--;i>0){temp =_cror_(temp,1);P1= temp;delay();}}
}

水平有限 欢迎指正

单片机流水灯三种实现相关推荐

  1. keil流水灯c语言程序两个一起亮,Keil单片机点亮一个灯及循环流水灯三种实现方法详解...

    实验名称:keil工程建立,点亮一个led灯 实验目的:学会keil软件安装,熟悉keil界面并学习如何新建一个工程 实验器材:安装有keil的电脑一台 预习内容及原理: Keil C51已集成到一个 ...

  2. 基于STM32单片机流水灯仿真与程序设计

    STM32单片机流水灯仿真与程序设计 摘要 本次程序设计和仿真是基于Proteus和keil的环境对STM32F103系列单片机进行流水灯设计,通过配置STM32的GPIO工作模式,实现LED的点亮和 ...

  3. 51单片机流水灯制作

    文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...

  4. c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解

    用C语言编写的单片机流水灯程序 一.硬件电路 因为电路用单片机控制,所以电路非常简洁.其电路原理图见下图,印制板图如下图所示. ? 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组 ...

  5. 89c52流水灯汇编语言,89c52单片机流水灯汇编程序

    8路流水灯汇编语言程序的写法 汇编语言程序如下: ;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下: ORG 0000H MOV ...

  6. 51单片机流水灯现象1

    **` 51单片机流水灯程序 `** 初学者小白,分享上课时写的小程序和普中科技程序,感兴趣的可以瞧瞧. 程序如有相同冒犯了. /*********************************** ...

  7. AT89C51单片机流水灯c语言程序及详解(扫盲教程)

    AT89C51单片机是我们学习单片机必学的一个单片机,也是单片机入门的教材,下面给大家展示一下流水灯的编写方法适合初学者 首先先在proteus画出仿真图,方便仿真程序 下面来编写程序,先来写入头函数 ...

  8. 单片机流水灯串口控制流水灯

    单片机流水灯串口控制的功能要求[从PC通过串口发送字符('R','L,'S),分别控制流水灯向右流动.向左流动.停止]: ​ (1)编写完整的C语言程序实现功能要求,采用循环轮询结构: ​ 答:循环轮 ...

  9. 80c51流水灯程序汇编语言,单片机流水灯汇编语言源代码大全(六款流水灯汇编语言源代码)...

    描述 单片机流水灯汇编语言源代码大全(一) 单片机AT89C51的P1口接8个发光二极管,让这8个发光二极管能够双灯左移之后再双灯右移,形成霹雳灯的效果,如此循环5次后全灭,延时0.5S.灯右移,形成 ...

最新文章

  1. 完美解决LINK : fatal error LNK1104: cannot open file Debug/xx.exe的问题
  2. A*B NTT快速数论变换
  3. Redis PHP连接操作
  4. 小腹右侧突然疼了一下_腰椎间盘膨出,为什么不是脊椎柱中间疼,而是左侧疼?...
  5. Atitit hadoop使用总结 目录 1.1. 下载300m ,解压后800M 1 1.2. 二:需要的jar包 1 2. Demo code 2 2.1. WCMapper 2 2.2. WC
  6. ad19pcb所有元件都在报错_AD09如何放置过孔阵列?Allegro PCB,元器件高度限制区域设置?...
  7. 震旦ad369s_震旦ad369s打印机驱动(震旦ad369s驱动程序) 安装版
  8. 来给PPT添加一个进度条和页码吧
  9. 2017年美国人工智能投资分析报告
  10. HttpClient忽略SSL证书,附带百度网盘jar包
  11. PyQt设置右下角弹窗(转)
  12. localhost和127.0.0.1的区别
  13. Mojibakes来自哪里? 编码要点
  14. CCLE:肿瘤细胞系百科全书
  15. 用python打开\显示\保存图像
  16. 类之间的继承java,Java类与类之间的继承关系
  17. 【转帖】2018年Windows漏洞年度盘点
  18. learn java step by step day14
  19. 使用canvas绘制圆环进度条
  20. python字典遍历输出_详解Python字典的复制与遍历

热门文章

  1. Taro引入阿里图标
  2. 架构搜索文献笔记(8):《FTT-NAS:发现容错神经结构》
  3. 浅谈三极管、运放、MOS管驱动 的常见电路
  4. GitLab提交或拉取代码问题
  5. 计算机excel教程,电脑安装excel教程的方法步骤详解
  6. 抽奖随机滚动_原来抽奖不是凭运气!两个技巧,让你在抽奖环节独占鳌头
  7. android美颜sdk,Android美颜SDK能否占据现有的市场
  8. 计算机网络-数据链路层 1
  9. 同为IM社交产品中的王者,QQ与微信到底有什么区别
  10. springboot整合bboss操作elasticsearch