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

 

#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.hqwc.cn/news/219551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android仿 美团 / 饿了么,店铺详情页功能

前言 UI有所不同&#xff0c;但功能差不多&#xff0c;商品添加购物车功能 正在写&#xff0c;写完会提交仓库。 页面主要由&#xff1a;MagicIndicator ViewPager2 Fragment CoordinatorLayout NestedScrollView RecyclerView组成。 效果图一&#xff1a;左右RecyclerV…

mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式

文章目录 MyBatis简介结构图Mybatis缓存&#xff08;一级缓存、二级缓存&#xff09;MyBatis是什么&#xff1f;mybatis的实现原理JDBC编程有哪些不足之处&#xff0c;MyBatis是如何解决这些问题的&#xff1f;Mybatis优缺点优点缺点映射关系 MyBatis的解析和运行原理MyBatis的…

4/5G语音实现方案

今天又是学习充实的一天&#xff0c;今天我们来学习4G和5G语音实现方案的介绍&#xff0c;VOLITE通信流程是怎么样子的&#xff0c;和之前学的TCP协议有什么联系吗&#xff1f;今天我们换个角度来学习通信的流程~ 目录 2G/3G的电话和上网 4G语音实现方案 4G语音的三种方式 …

⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 目录 ⑤Redis Zset 操作命令汇总1. zadd 添加或…

专业级音乐制作软件Studio One 6.5详细功能介绍

Studio One 6.5是一款专业级音乐制作软件&#xff0c;由PreSonus公司开发。它提供了强大的音频录制、编辑、混音和制作工具&#xff0c;被广泛应用于音乐制作、录音棚和现场演出等领域。 Studio One-6.5 下载地址&#xff1a;https://souurl.cn/fMjY4Q 下面是关于Studio One 6…

智能优化算法应用:基于粒子群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于粒子群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于粒子群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.粒子群算法4.实验参数设定5.算法结果6.参考文献7.…

汽车电子 - UDS

汽车电子 - UDS 概念基本概念分类请求与响应寻址信息物理寻址功能寻址 协议格式&#xff1f;&#xff1f;&#xff1f;750/758厂家自定义的吗&#xff1f;&#xff1f;&#xff1f;&#xff0c; 所有的UDS服务都在这里边吗&#xff1f;&#xff1f;&#xff1f;&#xff0c;代码…

Docker Swarm总结+基础、集群搭建维护、安全以及集群容灾(1/4)

博主介绍&#xff1a;Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 &#x1f345;文末获取源码下载地址&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb;…

摄像馆服务预约管理系统会员小程序作用是什么

摄像馆不少人并不会经常去&#xff0c;除了有拍婚纱照或工作照等&#xff0c;一般很少会进店&#xff0c;但由于摄像涵盖多个服务项目&#xff0c;因此总体来讲&#xff0c;市场需求度还是比较高的&#xff0c;一个城市也有多个品牌&#xff0c;而传统门店经营也面临不少痛点。…

用xlwings新建一个excel并同时生成多个sheet

新建一个excel并同时生成多个sheet&#xff0c;要实现如下效果&#xff1a; 一般要使用数据透视表来快速实现。 今天记录用xlwings新建一个excel并同时生成多个sheet。 import xlwings as xw # 打开excel,参数visible表示处理过程是否可视,add_book表示是否打开新的Excel程序…

Jrebel热部署

版本列表&#xff1a;JRebel and XRebel - IntelliJ IDEs Plugin | Marketplace 下载&#xff1a;JRebel and XRebel 2022.4.1 Welcome to JetBrains License Server!&#x1f603; (qekang.com) 实验表明&#xff0c;同时支持mapper xml热部署 参考博客、参考博客、参考博客、…

webshell之内置函数免杀

原始webshell 查杀的点在于Runtime.getRuntime().exec非常明显的特征 利用ProcessBuilder替换Runtime.getRuntime().exec(cmd) Runtime.getRuntime().exec(cmd)其实最终调用的是ProcessBuilder这个函数&#xff0c;因此我们可以直接利用ProcessBuilder来替换Runtime.getRunti…