单片机学习2——流水灯的实现

news/2025/2/13 2:20:39/

 

#include<reg52.h>sbit LED = P1^0;
unsigned char i;void main()
{while(1){LED = 0;for(i=0;i<100;i++);LED = 1;for(i=0;i<100;i++);}
}

RST是复位按钮,单击一下之后,程序就会跑到最开始的位置运行。

右侧的按钮是RUN按钮,单击下,程序就会全速跑起来。

这两个按钮是最常用的按钮。

学会设置断点。进入到debug模式之后,这段程序主要是查看C程序的运行时间。就是看sec项。

肉眼几乎看不到灯的闪烁,因为时间太短了。

更改程序二:

#include<reg52.h>sbit LED = P1^0;
unsigned int i;void main()
{while(1){LED = 0;for(i=0;i<10000;i++);LED = 1;for(i=0;i<10000;i++);}
}

闪烁的比较快。

更改程序三:

#include<reg52.h>sbit LED = P1^0;
unsigned int i;void main()
{while(1){LED = 0;for(i=0;i<30000;i++);LED = 1;for(i=0;i<30000;i++);}
}

这样,就可以看到放光LED闪烁得比较正常了。

补充:

使用for语句的嵌套,可以讲时间变的更长。

#include<reg52.h>sbit LED = P1^0;
unsigned int i;void main()
{while(1){LED = 0;for(j=0;j<200;j++){for(i=0;i<30000;i++);}LED = 1;for(i=0;i<30000;i++);}
}

8个发光二极管,分别对应单片机I/O口的P1.0到P1.7,8个单片机IO口组成一个字节,在编写程序的时候,直接使用P1来操作。

C语言的8位二进制数代表8个I/O口。

P1=0xFE,它是二进制11111110的简短表示形式。

#include<reg52.h>sbit LED = P1^0;
unsigned int i;void main()
{while(1){P1 = 0xFE;	 //led1 11111110for(i=0;i<30000;i++);P1 = 0xFD;   //led2 11111101for(i=0;i<30000;i++);P1 = 0xFB;   //led3 11111011for(i=0;i<30000;i++);P1 = 0xF7;	 //led4 11110111for(i=0;i<30000;i++);P1 = 0xEF;	 //led5 11101111for(i=0;i<30000;i++);P1 = 0xDF;	 //led6 11011111for(i=0;i<30000;i++);P1 = 0xBF;	 //led7 10111111for(i=0;i<30000;i++);P1 = 0x7F;	 //led8 01111111for(i=0;i<30000;i++);}
}

在使用位移的方法,对代码进行处理。

#include<reg52.h>unsigned int i=0;
unsigned char j=0;void main()
{while(1){P1=~(1<<j++);if(8==j){j=0}for(i=0;i<30000;i++);}
}

流水灯反方向流动:

#include<reg52.h>unsigned int i=0;
unsigned char j=0;void main()
{while(1){P1=~(0x7F>>j++);if(8==j){j=0}for(i=0;i<30000;i++);}
}

全部点亮到全部熄灭:

#include<reg52.h>unsigned int i=0;void main()
{P1=0x00;for(i=0;i<30000;i++);P1=0xFF;
}


http://www.ppmy.cn/news/1243916.html

相关文章

西门子PLC与组态王无线通讯中如何设置从站

本方案主要详述了在多台西门子300PLC与组态王之间Modbus无线通讯中如何设置从站。方案中所用到的无线通讯终端是DTD434MC——欧美系PLC专用无线通讯终端。 一、方案概述 无线Modbus网络组成如下&#xff1a; 二、测试背景 ● PC端组态软件版本&#xff1a;组态王6.55 ● 默…

安卓使用MediaRecorder录制音频的详细使用

安卓使用MediaRecorder录制音频的详细使用 文章目录 安卓使用MediaRecorder录制音频的详细使用引言使用 MediaRecorder 的步骤常见问题及解决思路无法访问存储卡目录录制的音频文件没有声音录制过程中出现异常MediaRecorder无法正常启动录制的音质或者画质很差录制的文件无法播…

BEV+Transformer架构加速“上车”,智能驾驶市场变革开启

BEVTransformer成为了高阶智能驾驶领域最为火热的技术趋势。 近日&#xff0c;在2023年广州车展期间&#xff0c;不少车企及智能驾驶厂商都发布了BEVTransformer方案。其中&#xff0c;极越01已经实现了“BEVTransformer”的“纯视觉”方案的量产&#xff0c;成为国内唯一量产…

招投标信息可以用CRM系统来查看吗?

对于B2B企业来说获客难、获客成本高是共识。做大客户的企业通过招投标获取商机是一个重要获客途径&#xff0c;然而传统方式管理招投标信息问题很多&#xff0c;例如资料丢失、手工录入出错、信息分散、信息查找费时费力。为了解决这些难题小编推荐CRM系统&#xff0c;CRM系统需…

Redis 两种持久化方式 AOF 和 RDB

目录 一、Redis 的持久化 二、Redis 的持久化方式 RDB RDB 介绍 RDB 的触发方式&#xff1a;. 三、RDB的文件生成策略 四、Save 和 Bgsave 命令的区别 六、RDB 最佳配置 七、触发机制-不容忽略方式 AOF 一、AOF介绍 二、RDB所存在的问题 三、AOF 三种策略 四、AOF…

作为IT行业的过来人,宝贵的经验分享给刚入行的你

恍然间&#xff0c;发现自己已经在这个行业五年之久&#xff0c;回顾过往&#xff0c;思绪良多&#xff0c;一路走来&#xff0c;或多或少都经历过一些坎坷&#xff0c;也碰到过不少大大小小的困难。在此就不多加叙述了。 本篇文章主要想写给刚入门的程序员几个忠告&#xff0…

Linux shell编程学习笔记30:打造彩色的选项菜单

1 需求分析 在 Linux shell编程学习笔记21&#xff1a;用select in循环语句打造菜单https://blog.csdn.net/Purpleendurer/article/details/134212033?spm1001.2014.3001.5501 中&#xff0c;我们利用select in循环语句打造的菜单中&#xff0c;菜单项都是用系统设置的颜色配…

wangeditor实时预览

<template><div><!--挂载富文本编辑器--><div style"width: 45%;float: left;margin-left: 2%"><p>编辑内容</p><div id"editor" style"height: 100%"></div></div><div style"w…