单片机流水灯三种实现
单片机流水灯的三种实现方式(由上至下,再重下到上)
原理图
一般使用单片机的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();}}
}
水平有限 欢迎指正
单片机流水灯三种实现相关推荐
- keil流水灯c语言程序两个一起亮,Keil单片机点亮一个灯及循环流水灯三种实现方法详解...
实验名称:keil工程建立,点亮一个led灯 实验目的:学会keil软件安装,熟悉keil界面并学习如何新建一个工程 实验器材:安装有keil的电脑一台 预习内容及原理: Keil C51已集成到一个 ...
- 基于STM32单片机流水灯仿真与程序设计
STM32单片机流水灯仿真与程序设计 摘要 本次程序设计和仿真是基于Proteus和keil的环境对STM32F103系列单片机进行流水灯设计,通过配置STM32的GPIO工作模式,实现LED的点亮和 ...
- 51单片机流水灯制作
文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...
- c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解
用C语言编写的单片机流水灯程序 一.硬件电路 因为电路用单片机控制,所以电路非常简洁.其电路原理图见下图,印制板图如下图所示. ? 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组 ...
- 89c52流水灯汇编语言,89c52单片机流水灯汇编程序
8路流水灯汇编语言程序的写法 汇编语言程序如下: ;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下: ORG 0000H MOV ...
- 51单片机流水灯现象1
**` 51单片机流水灯程序 `** 初学者小白,分享上课时写的小程序和普中科技程序,感兴趣的可以瞧瞧. 程序如有相同冒犯了. /*********************************** ...
- AT89C51单片机流水灯c语言程序及详解(扫盲教程)
AT89C51单片机是我们学习单片机必学的一个单片机,也是单片机入门的教材,下面给大家展示一下流水灯的编写方法适合初学者 首先先在proteus画出仿真图,方便仿真程序 下面来编写程序,先来写入头函数 ...
- 单片机流水灯串口控制流水灯
单片机流水灯串口控制的功能要求[从PC通过串口发送字符('R','L,'S),分别控制流水灯向右流动.向左流动.停止]: (1)编写完整的C语言程序实现功能要求,采用循环轮询结构: 答:循环轮 ...
- 80c51流水灯程序汇编语言,单片机流水灯汇编语言源代码大全(六款流水灯汇编语言源代码)...
描述 单片机流水灯汇编语言源代码大全(一) 单片机AT89C51的P1口接8个发光二极管,让这8个发光二极管能够双灯左移之后再双灯右移,形成霹雳灯的效果,如此循环5次后全灭,延时0.5S.灯右移,形成 ...
最新文章
- 完美解决LINK : fatal error LNK1104: cannot open file Debug/xx.exe的问题
- A*B NTT快速数论变换
- Redis PHP连接操作
- 小腹右侧突然疼了一下_腰椎间盘膨出,为什么不是脊椎柱中间疼,而是左侧疼?...
- Atitit hadoop使用总结 目录 1.1. 下载300m ,解压后800M	1 1.2. 二:需要的jar包	1 2. Demo code	2 2.1. WCMapper	2 2.2. WC
- ad19pcb所有元件都在报错_AD09如何放置过孔阵列?Allegro PCB,元器件高度限制区域设置?...
- 震旦ad369s_震旦ad369s打印机驱动(震旦ad369s驱动程序) 安装版
- 来给PPT添加一个进度条和页码吧
- 2017年美国人工智能投资分析报告
- HttpClient忽略SSL证书,附带百度网盘jar包
- PyQt设置右下角弹窗(转)
- localhost和127.0.0.1的区别
- Mojibakes来自哪里? 编码要点
- CCLE:肿瘤细胞系百科全书
- 用python打开\显示\保存图像
- 类之间的继承java,Java类与类之间的继承关系
- 【转帖】2018年Windows漏洞年度盘点
- learn java step by step day14
- 使用canvas绘制圆环进度条
- python字典遍历输出_详解Python字典的复制与遍历