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

文章目录

  • 摘要
  • 软件更新
  • 什么是闪烁
    • 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.mzph.cn/news/46017.shtml

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

相关文章

macOS(m1/m2)破解Sublime Text和Navicat16

破解Sublime Text 说明&#xff1a;全程使用的是终端操作 1. 下载Sublime Text&#xff0c;建议使用brew下载 2. 进入到下载的app的文件夹 cd "/Applications/Sublime Text.app/Contents/MacOS/"3. 执行以下操作以确认版本是否匹配 md5 -q sublime_text | grep -i…

Controllable Text Generation with Language Constraints

本文是LLM系列文章&#xff0c;针对《Controllable Text Generation with Language Constraints》的翻译。 具有语言约束的可控文本生成 摘要1 引言2 COGNAC基准3 方法4 实验设置5 结果6 相关工作7 结论不足 摘要 我们考虑在具有自然语言中指定的约束的语言模型中的文本生成任…

消息中间件的选择:RabbitMQ是一个明智的选择

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; MQ&#xff08;Message Queue&#xff09; MQ&#xff08;消息队列&#xff09;是一种用于在应用程序之间进行异步通信的技术&#xff1b;允许应用程序通过发送和接收…

css学习3(三种样式表与样式控制优先级)

1、外部样式表&#xff1a;当样式需要应用于很多页面时&#xff0c;外部样式表将是理想的选择。在使用外部样式表的情况下&#xff0c;你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link> 标签链接到样式表&#xff0c;也要放到<head>中。 2、外部…

上网课用什么耳机和麦克风,分享几款骨传导耳机上网课用

各位耳机狂热者&#xff0c;咱们都了解传统的蓝牙耳机相对于老式有线耳机来说确实方便得多。但是&#xff0c;也别忘了蓝牙耳机会导致耳道不断堵塞&#xff0c;引发细菌滋生等问题。好在近年来&#xff0c;骨传导耳机如火如荼地走红&#xff0c;解决了这些难题&#xff0c;简直…

学习Vue:过渡与动画效果

在Vue.js中&#xff0c;为了让页面更具有吸引力和交互性&#xff0c;您可以通过过渡和动画效果来提升用户体验。本文将介绍如何利用过渡类名实现动画效果&#xff0c;探讨Vue过渡的不同阶段&#xff0c;以及如何使用第三方动画库&#xff0c;如Animate.css&#xff0c;来实现更…

飞天使-jenkins进行远程linux机器修改某个文件的思路

文章目录 jenkins配置的方式jenkins中执行shell的思路 jenkins配置的方式 jenkins中执行shell的思路 下面的脚本别照抄&#xff0c;只是一个思路 ipall"$ips"# 将文本参数按行输出为变量 while IFS read -r line; doecho "$line" if [[ ! -z $line ]] &…

ubuntu 22.04 LTS 在 llvm release/17.x 分支上编译 cookbook llvm example Chapter 02

不错的资料&#xff1a; LLVMClang编译器链接器--保值【进阶之路二】 - 掘金 —————————————————————————————————————— 下载 llvm-cookbook example: $ git clone https://github.com/elongbug/llvm-cookbook.git 也可以参照llvm-pr…

java 线程池实现多线程处理list数据

newFixedThreadPool线程池实现多线程 List<PackageAgreementEntity> entityList new CopyOnWriteArrayList<>();//多线程 10个线程//int threadNum 10;int listSize 300;List<List<PackageAgreementDto>> splitData Lists.partition(packageAgre…

Vue实现动态遍历生成el-input

实现效果: el-input的label是measureName, el-input绑定的值是formDatat.measureCode 接口返回的数据格式如下 处理过的formData的格式如下

SpringBoot+微信小程序奶茶在线点单小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot微信小程序框架开发的奶茶在线点单小程序系统。首先&#xff0c;这是一个前后端分离的项目&#xff…

机器学习深度学习——NLP实战(情感分析模型——textCNN实现)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——NLP实战&#xff08;情感分析模型——RNN实现&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习…

SpringBoot复习:(56)使用@Transactional注解标记的方法的执行流程

首先&#xff0c;如果在某个类或某个方法被标记为Transactional时&#xff0c;Spring boot底层会在创建这个bean时生成代理对象&#xff08;默认使用cglib) 示例&#xff1a; 当调用studentService的addStudent方法时&#xff0c;会直接跳到CglibAopProxy类去执行intercept方…

【BASH】回顾与知识点梳理(三十)

【BASH】回顾与知识点梳理 三十 三十. 进程的观察30.1 ps &#xff1a;将某个时间点的进程运作情况撷取下来仅观察自己的 bash 相关进程&#xff1a; ps -l观察系统所有进程&#xff1a; ps aux 30.2 top&#xff1a;动态观察进程的变化30.3 pstree 该系列目录 --> 【BASH】…

动态代理的两个使用方式(手动实现+SpringAOP实现)-Demo

一、手动实现 1、具体代码 package com.xch.proxy;/*** 具体业务接口** author XuChenghe* date 2023/8/18 15:09*/ public interface Star {/*** 唱歌方法** param name* return*/String sing(String name);/*** 跳舞方法*/void dance();} package com.xch.proxy;/*** 具体…

jenkins 安装nodejs 14

参考&#xff1a; jenkins容器安装nodejs-前端问答-PHP中文网

VR漫游:720度实景参观,打造魅力生态小区

随着城市的不断发展&#xff0c;小区的建设越发具有生态化、绿色化的特点&#xff0c;人们也会偏向选择更加适合居住的小区。为了让更多的用户体验小区的舒适性&#xff0c;不少地产开发商准备引入VR漫游技术。 VR漫游不仅能够真实地展示现场环境&#xff0c;还可以改变传统网络…

SSR使用HTTPS

1.安装 npm i browser-sync 2. 再angular.json里配置 "serve-ssr": {"builder": "nguniversal/builders:ssr-dev-server","options": {"ssl": true,"sslCert": "./node_modules/browser-sync/certs/server…

【大虾送书第六期】搞懂大模型的智能基因,RLHF系统设计关键问答

目录 ✨1、RLHF是什么&#xff1f; ✨2、RLHF适用于哪些任务&#xff1f; ✨3、RLHF和其他构建奖励模型的方法相比有何优劣&#xff1f; ✨4、什么样的人类反馈才是好的反馈 ✨5、RLHF算法有哪些类别&#xff0c;各有什么优缺点&#xff1f; ✨6、RLHF采用人类反馈会带来哪些局…

Android13新特性之通知权限提升

Android13新特性之通知权限提升 随着移动通信的高速发展&#xff0c;保障通信的安全性变得尤为重要。在Android 13的最新版本中&#xff0c;通知权限的管理得到了进一步加强。为了实现安全的通信和确保用户的隐私&#xff0c;必须正确申请通知权限。本文将详细探讨如何在Andro…