05_51单片机led流水线的实现

news2024/11/30 6:48:35

1:step创建一个新的项目并将程序烧录进入51单片机

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
以下是51单片机流水线代码的具体实现

#include <REGX52.H>

void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main(){
	 while(1){
	      P1 = 0xFE; // 1111 1110
	      Delay500ms();
        P1 = 0xED; // 1111 1101
		    Delay500ms();
		 	  P1 = 0xFB; // 1111 1011
	      Delay500ms();
        P1 = 0xE7; // 1111 0111
		    Delay500ms();
		 	  P1 = 0xEF; // 1110 1111
	      Delay500ms();
        P1 = 0xDF; // 1101 1111
		    Delay500ms();
		    P1 = 0xBF; // 1011 1111
	      Delay500ms();
        P1 = 0x7F; // 0111 1111
		    Delay500ms();
	 }

}

重启单片机即可实现流水灯

流水线代码改进

在单片机C语言中,数据类型用于定义变量的类型和大小,以及变量在内存中的存储方式。常见的数据类型包括:

  1. 整型(Integer):整型数据类型用于表示整数,包括有符号整型和无符号整型。常见的整型数据类型有:
    • char:1字节,有符号或无符号字符型;
    • short:2字节,有符号或无符号短整型;
    • int:通常为2或4字节,有符号或无符号整型;
    • long:通常为4或8字节,有符号或无符号长整型。
  2. 浮点型(Floating Point):浮点型数据类型用于表示带小数的数值。常见的浮点型数据类型有:
    • float:4字节,单精度浮点型;
    • double:通常为8字节,双精度浮点型。
  3. 枚举类型(Enumeration):枚举类型用于定义一组具名的整数常量。每个枚举常量都有一个唯一的整数值,可用于表示一组相关的状态或选项。
  4. 数组类型(Array):数组类型用于存储一系列具有相同类型的元素。可以通过索引访问数组中的单个元素。
  5. 结构体类型(Structure):结构体类型用于定义一组不同类型的数据,将它们组合在一起形成一个自定义的数据类型。
  6. 指针类型(Pointer):指针类型用于存储内存地址,可用于间接访问其他变量或数据。
  7. 枚举类型(Union):联合类型用于在相同的内存位置存储不同类型的数据,但只能同时存储一个成员。

除了以上常见的数据类型,单片机C语言还支持位字段(Bit fields)、空类型(void)等特殊的数据类型。在编程时,选择合适的数据类型可以提高程序的效率和可读性。

流水灯改进后的代码如下所示,是以可变参数的形式传递

#include <REGX52.H>

void Delay1ms(unsigned int xms)		//@11.0592MHz
{
	unsigned char i, j;
  while(xms){
			i = 2;
	    j = 199;
			do
			{
				while (--j);
			} while (--i);
	    xms -= 1;
	}

}

void main(){
	    while(1){
	      P1 = 0xFE; // 1111 1110
	      Delay1ms(500);
        P1 = 0xED; // 1111 1101
		    Delay1ms(500);
		 	  P1 = 0xFB; // 1111 1011
	      Delay1ms(500);
        P1 = 0xE7; // 1111 0111
		    Delay1ms(500);
		 	  P1 = 0xEF; // 1110 1111
	      Delay1ms(500);
        P1 = 0xDF; // 1101 1111
		    Delay1ms(500);
		    P1 = 0xBF; // 1011 1111
	      Delay1ms(500);
        P1 = 0x7F; // 0111 1111
		    Delay1ms(500);
	 }

}

实现效果和04是一样的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1095826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解React中的useEffect钩子函数

引言&#xff1a; React是一种流行的JavaScript库&#xff0c;它通过组件化和声明式编程的方式简化了前端开发。在React中&#xff0c;一个核心概念是组件的生命周期&#xff0c;其中包含了许多钩子函数&#xff0c;用于管理组件的不同阶段。其中之一就是useEffect钩子函数&…

完成了一个小项目:修改了一个用PHP+MySQL写的建网站用的CMS原程序

最近一段时间&#xff0c;我建了一个网站。建一个网站及简单也复杂。要功能合适&#xff0c;界面合适&#xff0c;也不是容易的事。开始用了一个现成的建站软件WordPress&#xff0c;但是对界面不满意。后来找了另外一个带源码的程序&#xff0c;修改该程序花了十多天时间。到目…

metaRTC7集成lvgl ui demo编译指南

概要 开源轻量级嵌入式图形库lvgl:Light and Versatile Graphics Library&#xff0c;最低只需8kb内存&#xff0c;可为任何 MCU、MPU 和显示类型创建漂亮的 UI。 metaRTC新增lvgl demo&#xff0c;可在linux下编译运行。 源码下载 https://github.com/metartc/metaRTC/rel…

Spring Cloud的革新:服务网格和云原生整合

文章目录 介绍Spring Cloud服务网格的兴起Spring Cloud与Service Mesh的整合1. 服务发现2. 负载均衡3. 故障处理4. 安全性 云原生整合结论 &#x1f389;欢迎来到架构设计专栏~Spring Cloud的革新&#xff1a;服务网格和云原生整合 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f37…

【力扣1876】长度为三且各字符不同的子字符串

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接&#xff1a;长度为三且各字符不同的子字符串 如果一个字符串不含有任何…

一卷到底,大明哥带你横扫 Netty

上一个死磕 Java 专栏【死磕 NIO】(当然写的不是很好&#xff0c;争取今年将它重写一遍)是**【死磕 Netty】**的铺垫&#xff0c;对于我们 Java 程序员而言&#xff0c;我们在实际开发过程一般都不会直接使用 Java NIO 作为我们的网络编程框架&#xff0c;因为写出一套高质量的…

【C++初阶(二)缺省参数与函数重载】

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

Kwik Trip IT系统遭遇神秘的“网络事件”导致系统故障

导语 近日&#xff0c;美国连锁便利店和加油站Kwik Trip遭遇了一系列神秘的业务中断&#xff0c;这很可能是一次赎金软件攻击。本文将为您详细介绍此次事件的背景和影响&#xff0c;并探讨赎金软件攻击对企业和个人的危害。 神秘的“网络事件” Kwik Trip是一家在密歇根州、明尼…

云上攻防-云原生篇K8s安全Config泄漏Etcd存储Dashboard鉴权Proxy暴露

文章目录 云原生-K8s安全-etcd未授权访问云原生-K8s安全-Dashboard未授权访问云原生-K8s安全-Configfile鉴权文件泄漏云原生-K8s安全-Kubectl Proxy不安全配置 云原生-K8s安全-etcd未授权访问 攻击2379端口&#xff1a;默认通过证书认证&#xff0c;主要存放节点的数据&#x…

14 | 乐观锁机制和重试机制在实战中应该怎么用

什么是乐观锁&#xff1f; 乐观锁在实际开发过程中很常用&#xff0c;它没有加锁、没有阻塞&#xff0c;在多线程环境以及高并发的情况下 CPU 的利用率是最高的&#xff0c;吞吐量也是最大的。 而 Java Persistence API 协议也对乐观锁的操作做了规定&#xff1a;通过指定 Ve…

服务器感染了.360、.halo勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 数据的安全性至关重要&#xff0c;但威胁不断进化&#xff0c;.360、.halo勒索病毒是其中的令人担忧的勒索软件。本文91数据恢复将深入介绍.360、.halo勒索病毒&#xff0c;包括其威胁本质、数据恢复方法和如何采取预防措施来保护您的数据。 如果受感染的数据…

智慧公厕高精尖技术揭秘,让卫生管理更智能、更舒适

随着科技的飞速发展&#xff0c;智慧公厕正逐渐走进人们的生活。借助物联网、互联网、云计算、大数据、人工智能、自动化控制等技术的应用&#xff0c;智慧公厕将卫生管理提升到一个全新的水平&#xff0c;为公众打造了清洁舒适的使用环境。本文以智慧公厕源头厂家广州中期科技…

94. 二叉树的中序遍历(递归+迭代)

题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解题思路&#xff1a; 方法一&#xff1a;递归 中序遍历的操作定义为&#xff0c;若二叉树为空&#xff0c;则空操作&#xff0c;否则&#xff1a; 中序遍历左子树访问根节点中…

✔ ★【备战实习(面经+项目+算法)】 10.15学习时间表

✔ ★【备战实习&#xff08;面经项目算法&#xff09;】 坚持完成每天必做如何找到好工作1. 科学的学习方法&#xff08;专注&#xff01;效率&#xff01;记忆&#xff01;心流&#xff01;&#xff09;2. 每天认真完成必做项&#xff0c;踏实学习技术 认真完成每天必做&…

【Vue面试题二十六】、SSR解决了什么问题?有做过SSR吗?你是怎么做的?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;SSR解决了什么问题&…

【Vue面试题二十九】、Vue项目中你是如何解决跨域的呢?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;Vue项目中你是如何解决跨…

京东优惠券怎么找?

京东优惠券怎么找&#xff1f; 1、手机安装「草柴」后&#xff0c;打开京东挑选要购买的商品&#xff1b; 2、挑选好京东商品后&#xff0c;点击右上角的「分享」&#xff0c;并点击「复制链接」&#xff1b; 3、将复制的京东商品链接&#xff0c;粘贴到草柴输入框&#xff0c…

查找算法:二分查找、插值查找、斐波那契查找

二分查找 查找的前提是数组有序 思路分析 代码实现 # 二分查找&#xff08;递归法实现&#xff09; # 找到一个相等的值就返回该值的下标 def binary_search(arr: list, find_val: int, left: int, right: int):mid (left right) // 2 # 寻找数组中间位置的下标if left &…

MySQL进阶(再论JDBC)——JDBC编程思想的分析 JDBC的规范架构 JDBC相关的类分析

前言 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系型数据库的标准化语言&#xff0c;它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言&#xff0c;可以用于多种关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;如MySQ…

自动泊车系统设计学习笔记

1 概述 1.1 自动泊车系统研究现状 目前对于自动泊车系统的研究方法通常有两种实现方式&#xff1a; 整个泊车操作可以分为四个阶段&#xff1a;第一阶段车辆向前行驶进行车位识别&#xff0c;第二阶段车辆行驶到准备泊车时的待泊车区域&#xff0c;第三阶段车辆按照规划好的…