51单片机LED流水灯
目录
1.如何点亮LED
2.方案1
1.想法的提出
2.程序编写
3.方案二(改善后)
4.注意事项:
1.如何点亮LED
LED正极接正电,负极接负极则点亮;cup通过程序直接访问寄存器(8位一组),每一位对应一个I/O口,给高低电平的问题转化为配置寄存器p2口的问题。控制单片机引脚输出高低电平,可控制LED的亮灭。单片机采用TTL电平+5v为高电平1,0v为低电平0。如下图:vcc跟LED正极相连,此时想要点亮LED则LED则需TTL输出0v低电平。
在明白LED原理之后,就可以根据自己的需求来编写程序从而达到你想要的效果了。
2.方案1
1.想法的提出
先让第一个灯点亮,然后延时,再让第二个灯点亮再延时...直到所有灯都亮完一遍,然后不断循环。由于单片机运行很快,如果不加延时,再视觉上就感觉全部灯都亮了。
1111 1110
1111 1101
1111 1011
1111 0111
...
0111 1111
2.程序编写
虽然代码在计算机中是以二进制存储的,但编写程序却不能使用二进制进行编写。
#include<regx52.h>void Delay1ms(unsigned int xms)//延时函数
{unsigned char i,j;while(xms){i=2;j=239;do{while(--j);}while(--i);xms--;}
}void main()
{P2=0xFE;//1111 1110Delay1ms(500);//延时500msP2=0xFF;//1111 1111Delay1ms(500);P2=0xFD;//1111 1101Delay1ms(500);P2=0xFF;//1111 1111 Delay1ms(500);P2=0xFB;//1111 1011Delay1ms(500);P2=0xFF;//1111 1111Delay1ms(500);P2=0xF7;//1111 0111Delay1ms(500);P2=0xFF;//1111 1111 Delay1ms(500);P2=0xEF;//1110 1111Delay1ms(500);P2=0xFF;//1111 1111 Delay1ms(500);P2=0xDF;//1101 1111 Delay1ms(500);P2=0xFF;//1111 1111Delay1ms(500);P2=0xBF;//1011 1111Delay1ms(500);P2=0xFF;//1111 1111Delay1ms(500);P2=0x7F;//0111 1111Delay1ms(500);}
3.方案二(改善后)
#include<regx52.h>
void Delay1ms(unsigned int xms)
{
unsigned char i,j;
while(xms)
{
i=2;
j=239;
do
{
while(--j);
}while(--i);
xms--;
}
}void main()
{
while(1)
{
int i;
for( i=0;i<8;i++)
{
P2=~(0X01<<i);//左移一位再按位取反。
Delay1ms(500);
}
}}
4.注意事项:
头文件:#include<regx52.h>
reg52x是带x的,且大小写都可。
reg52.x中已经P2进行定义,可以直接用了。
程序中的P2是大写的,是0x不是ox;
51单片机LED流水灯相关推荐
- 流水灯c语言程序tm,51单片机LED流水灯课程设计任务书+论文
郑州工程技术学院课程设计 设计题目:LED流水灯设计 学 院:机电与车辆工程学院 专 业:16电气自动化技术专业班 级普招二班 姓 名:王*&刘* 指导教师:李* 日 ...
- 51单片机LED流水灯、走马灯的实现
目录 1. 硬件设计 2. 软件设计 流水灯: 跑马灯: 1. 硬件设计 流水灯的原理: 图中主要包括51单片机芯片和流水灯模块,流水灯模块接在了单片机的P2口,500欧电阻是用来保护电路的.由原理图 ...
- 金沙滩51单片机LED 流水灯程序
我们学了点亮一个 LED 小灯,然后又学了 LED 小灯闪烁,现在我们要进一步学习如何让 8 个小灯依次一个接一个的点亮,流动起来,也就是常说的流水灯.先来看 8 个 LED的核心电路图,如图 4-1 ...
- 51单片机:流水灯蜂鸣器控制
//51单片机:流水灯&蜂鸣器控制 //bglei@nuaa.edu.cn 2022/8/28<流水灯&蜂鸣器控制> #include<reg52.h> #in ...
- pic单片机流水灯循环右移c语言,PIC单片机LED流水灯程序
PIC 单片机 LED流水灯程序 ;************************************************************* include ;*********** ...
- Proteus:单片机 LED流水灯模拟
题目概述: 单片机LED流水灯. 编程: #include <reg51.h> #include <intrins.h> #define uint unsigned int # ...
- 51单片机循环流水灯源码
51单片机循环流水灯源码 #include <reg52.h> #include <intrins.h> void delay(unsigned char a) {unsign ...
- Proteus使用教程并仿真51程序——LED流水灯
目录 一.Proteus简介 二.安装Proteus软件 三.熟悉Proteus软件 1.如何创建工程 2.界面简介 四.51程序设计和仿真 1.绘制原理图 1)添加元件 2)摆放元件 2.编写51程 ...
- 单片机led流水灯实验c语言程序,单片机LED流水灯实验及流程图源代码详解
利用实验室提供的单片机实验开发板的最小系统电路模块.流水灯电路模块,以及Protues仿真软件搭建电路,实现I/O口循环流水灯演示效果. LED流水灯控制电路如图2-1所示,八个LED灯D0-D7(可 ...
最新文章
- python实现ssh登录send_Python实现ssh批量登录并执行命令
- 06_jQuery_内容过滤
- 安装华为鸿蒙,魅族选择与鸿蒙合作,华为这下要成了?
- sql sum()对空值的处理
- 大数据管理:构建数据自己的“独门独院”
- SpringBoot之Thymeleaf
- Linux服务器被***不能上网
- 通过web的方式动态查看tomcat的catalina.out的日志(web.py)
- 第2章 创建你的第一个 LISP 程序 Creating Your First Lisp Progr
- HTML table 标签的 summary 属性
- Atitit 为什么oracle这类大型数据库比mysql的性能机制目录1. 分区机制差别 11.1. Join算
- 【图像融合】基于matlab小波变换全聚焦图像融合【含Matlab源码 1372期】
- Python爬虫编程思想(92):项目实战:抓取京东图书评价
- oracle日志可以存多久,oracle存档日志
- 跳马周游c++_C++——跳马问题(广搜)
- 大众点评各城市热门餐厅评分字体加密信息数据采集
- c语言switch怎么判断字符,c语言switch语句如何使用
- YOLOv5基础知识点——卷积神经网络
- 乐高收割机器人_乐高机器人制作~~农场收割机
- JavaWeb防止表单重复提交