学习笔记|基于Delay实现的LED闪烁|u16是什么|a--和--a的区别|STC32G单片机视频开发教程(冲哥)|第六集(上):实现LED闪烁

news2024/11/18 15:24:10

文章目录

  • 摘要
  • 软件更新
  • 什么是闪烁
    • Tips:u16是什么?
  • 语法分析:
    • 验证代码
    • Tips:a--和--a的区别(--ms 的用法)
      • 测试代码:

摘要

1.基于Delay实现的LED闪烁
2.函数的使用
3,新建文件,使用模块化编程

软件更新

打开时会提示有版本更新,需要及时更新为最新版本。选择立即下载,选择保存路径,运行。
目前最新的是6.92a版本,选择可执行文件,发送到桌面快捷方式。
在这里插入图片描述
新版软件,资料下载里下载最新版手册(8-15):
在这里插入图片描述

在这里插入图片描述

什么是闪烁

根据百度百科释义。
闪烁是一个汉语词语,拼音:shǎn shuò。释义:指光亮晃动不定、忽明忽暗;(说话)稍微露出一点想法,但不肯说明确;物体忽隐忽现,变动不定;显露,现出。出自南朝·梁·王僧孺《中寺碑》:“日流闪烁,风度清锵。”
1.基于Delay实现的LED闪烁
在这里插入图片描述

闹钟中间有两个点,两个点是不断的闪动,0.5秒点亮0.5秒熄灭0.5秒点亮0.5秒熄灭.
这一亮一灭的过程,利用Delay函数实现LEB的闪烁的过程。
1秒=1000毫秒=1000 000微秒,0.5s=500毫秒=500 000微秒

复制示例工程,改名为LED闪烁,添加以下语句:

#define MAIN_Fosc 24000000UL 定义IRC系统时钟24M,方便下载时选择,定义的名称写在前面。

定义IRC系统时钟,方便下载时选择,方便查看和修改。ISP中IRC频率和系统时钟的IRC频率应该保持一致,防止程序出现错误。
在这里插入图片描述
在这里插入图片描述

void delay_ms(u16 ms)
{
    u16 i;
    do{
        i = MAIN_Fosc / 6000;
        while(--i);
    }while(--ms);
}

Tips:u16是什么?

选中u16,右键选中:Go To Definition Of "u16’,转至u16的定义头文件stc.h:
在这里插入图片描述
typedef unsigned int u16; //定义的名称写在后面,开头无“#”号,末位加“;”号。
我们的编译器(也就是这个KEIL C251)会把我们写的"u16"替换成“ unsigned int”。
取值范围是:u16 取值0-65535。
之后采用do…while循环:

 do{
          i = MAIN_Fosc / 6000;
          while(--i);
     }while(--ms);
//主while循环中加入延时代码,实现闪烁
		 P22 = 0; //设置低电平	(屠龙刀三板载led)
		 delay_ms(500);
		 P22 = 1; //设置低电平	(屠龙刀三板载led)
		 delay_ms(500);

如果需要两个等一起闪,修改代码:

		 P22 = 0; //设置低电平	(屠龙刀三板载led)
		 P24 = 0;
		 delay_ms(500);
		 P22 = 1; //设置低电平	(屠龙刀三板载led)
		 P24 = 1;
		 delay_ms(500);

delay很方便,但需要等待踏步结束后,才能接着往下走。

语法分析:

1.while
执行流程图:
在这里插入图片描述

常用死循环while(1).
2.do
{

}while();

验证代码

do
			{
				printf("a的值: %d\r\n",a);
				a = a + 1;
			}while( a <20 );

执行结果:
在这里插入图片描述
改成while循环:

			while( a <20 )
			{
				printf("a的值: %d\r\n",a);
				a++;
			}

执行结果:
在这里插入图片描述
本例中作用相同。

Tips:a–和–a的区别(–ms 的用法)

测试代码:

			a =10;
			printf("a的值: %d\r\n",a);
			printf("a的值: %d\r\n",--a);  //先运算再输出
			printf("a的值: %d\r\n",a);

			a =10;
			printf("a的值: %d\r\n",a);
			printf("a的值: %d\r\n",a--); //先输出再运算
			printf("a的值: %d\r\n",a);

执行结果:
在这里插入图片描述
4.#define的用法
#define 名称 需要定义的内容 编译器会自动替换

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

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

相关文章

Python3 从简介及环境搭建到第一个入门程序

文章目录 前言一、Python3 简介1. 什么是python2. python的发展史3. python的特点 二、Python环境搭建1. Python3 下载2. Python安装3. 第一个Python3.x程序 总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c;方便日后回顾。当然&…

Android企业项目开发实训室建设方案

一 、系统概述 Android企业项目开发作为新一代信息技术的重点和促进信息消费的核心产业&#xff0c;已成为我国转变信息服务业的发展新热点&#xff1a;成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网&#xff0c;以其巨大的信息交换能力和快速渗透…

【jsthreeJS】入门three,并实现3D汽车展示厅,附带全码

首先放个最终效果图&#xff1a; 三维&#xff08;3D&#xff09;概念&#xff1a; 三维&#xff08;3D&#xff09;是一个描述物体在三个空间坐标轴上的位置和形态的概念。相比于二维&#xff08;2D&#xff09;只有长度和宽度的平面&#xff0c;三维增加了高度或深度这一维度…

K8s学习笔记2

Kubernetes&#xff1a; K8s由来&#xff1a; 希腊语&#xff1a;舵手、飞行员 来自于谷歌的Borg系统开源&#xff08;2014年&#xff09; 简称K8s 现归属于CNCF&#xff08;2016年&#xff09; 云原生基金会 是一个开源软件基金会&#xff0c;致力于使云计算普遍性和持…

React 18 用 State 响应输入

参考文章 用 State 响应输入 React 控制 UI 的方式是声明式的。不必直接控制 UI 的各个部分&#xff0c;只需要声明组件可以处于的不同状态&#xff0c;并根据用户的输入在它们之间切换。这与设计师对 UI 的思考方式很相似。 声明式 UI 与命令式 UI 的比较 当设计 UI 交互时…

Semantic Visual SLAM 简述

语义slam解决的问题&#xff1a;在动态和复杂环境下的定位问题 语义slam的关键&#xff1a;语义信息的提取与联系。 本文仅讨论视觉slam。 参考文献&#xff1a; [1] https://arxiv.org/abs/2209.06428 [2] slambook 一、简介 slam的目的在于定位和建图。 视觉slam由于其…

电子器件系列57:三防漆

三防漆是一种特殊配方的涂料&#xff0c;用于保护线路板及其相关设备免受环境的侵蚀。三防漆具有良好的耐高低温性能&#xff1b;其固化后成一层透明保护膜&#xff0c;具有优越的绝缘、防潮、防漏电、防震、防尘、防腐蚀、防老化、耐电晕等性能。 三防漆根据每个地区和每个厂家…

【Kubernetes】Rancher管理集群

目录 1、安装 rancher 2、登录 Rancher 平台 3、Rancher 管理已存在的 k8s 集群 4、Rancher 部署监控系统 5、使用 Rancher 仪表盘管理 k8s 集群 以创建 nginx 服务为例 创建名称空间 namespace 创建 Deployment 资源 创建 service 1、安装 rancher 在 所有 node 节点下…

org.xml.sax.SAXParseException: 元素类型 “select“ 必须后跟属性规范 “>“ 或 “/>

项目场景&#xff1a; springBoot项目build编译成功&#xff0c;maven依赖都没问题&#xff0c;项目启动run服务的时候报异常&#xff1a; org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name demoUserController: Unsatisfie…

燃尽图、甘特图、鱼骨图

燃尽图、甘特图、鱼骨图 1. 燃尽图 燃尽图&#xff08;burn down chart&#xff09;是在项目完成之前&#xff0c;对需要完成的工作的一种可视化表示。燃尽图有一个Y轴&#xff08;工作&#xff09;和X轴&#xff08;时间&#xff09;。理想情况下&#xff0c;该图表是一个向下…

运动控制-CodeSys编程书籍

陆国君 <<PLC综合开发利器-CodeSys基础编程及应用指南 网上流传的陆国君PDF书籍 <<PLC综合开发利器-CodeSys基础编程及应用指南>> 很不错, 这本书网上有两个版本 556页是新的版本, 423页是老的版本, 不过内容差异不大. 423页是老的版本下载: url80.ctfile.co…

FL Studio21.1最新中文版本新功能有哪些?详细下载教程

FL Studio 21.1通过钢琴卷中的音阶吸附和基于 Python 的脚本&#xff0c;提供了更快捷、更有创意的音符编辑功能。更新版还带来了针对更好的管理采样的彩色波形&#xff0c;Hyper Chorus 极致合唱插件、Edison 中的 AI Declipper&#xff08;人工智能去削波器&#xff09;等。 …

Google Play P12文件

一、P12文件 给到后台用于订单消费/订单查询等功能&#xff0c;这个就是谷歌的凭证&#xff0c;没有这个你不配查&#xff0c;要的就是安全性。 1.应用要用到Google Pay&#xff1b; 2.自己后台去谷歌后台做订单消费/订单查询&#xff0c;如果所以操作由移动端去做&#xff0…

(7)(7.6) 恢复任务回放

文章目录 前言 7.6.1 配置 7.6.2 工作原理 7.6.3 局限性 前言 本页介绍了什么是"任务继续时后退"功能以及如何使用该功能。 &#xff01;Note 从 4.1 版起&#xff0c;Plane、Copter 和 Rover 均可使用此功能。 在某些应用或运行区域&#xff0c;为了消除冲突&…

Java自学到什么程度就可以去找工作了?

引言 Java作为一门广泛应用于软件开发领域的编程语言&#xff0c;对于初学者来说&#xff0c;了解到什么程度才能开始寻找实习和入职机会是一个常见的问题。 本文将从实习和入职这两个方面&#xff0c;分点详细介绍Java学习到什么程度才能够开始进入职场。并在文章末尾给大家安…

Docker的数据管理及端口映射与容器互联(使用centos镜像)

目录 Docker数据管理 1&#xff0e;数据卷 2&#xff0e;数据卷容器 Docker端口映射 Docker容器互联 Docker数据管理 管理 Docker 容器中数据主要有两种方式&#xff1a;数据卷&#xff08;Data Volumes&#xff09;和数据卷容器&#xff08;DataVolumes Containers&…

一些异常情况

对象注入失败 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name hotelServiceImpl: Unsatisfied dependency expressed through field baseMapper; nested exception is org.springframework.beans.factory.NoSuchBeanDefini…

(自记录)LINUX部署docker+opencv的标注软件CVAT

开源代码地址 https://github.com/opencv/cvat 主要参考官方用户手册 https://opencv.github.io/cvat/docs/administration/basics/installation/#ubuntu-1804-x86_64amd64 其中涉及换源&#xff0c;不然太慢了&#xff0c;有个坑&#xff0c;官方的换源地址第四个是错的&#…

arduino使用FreeRTOS实时操作系统

How to use FreeRTOS with Arduino – Real time operating system 如何让Arduino运行FreeRTOS实时操作系统 在本文中&#xff0c;您将学习如何使用带Arduino的Freertos操作系统来执行特定的任务。实时操作系统又称RTOS&#xff0c;是一种旨在满足实时应用要求的操作系统。它…