单片机郭天祥(02)

1:解决keil5软件的乱码问题,修改编码为UTF-8
在这里插入图片描述在这里插入图片描述2:打开keil5使用debug对编写好的程序进行调试

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

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

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述给程序打上断点
在这里插入图片描述
在这里插入图片描述使用仿真芯片

在这里插入图片描述更改设备管理器相关设置

在这里插入图片描述在这里插入图片描述接通电源后点击debug连接到51单片机

使用stc-isp获取延时函数
在这里插入图片描述将延时函数添加进入创建好的keil5软件,编译烧录进入51单片机板子实现led灯闪烁延迟
在这里插入图片描述单片机工作的基本时序**

单片机的工作时序可以分为以下几个阶段:

  1. 复位阶段:在上电或复位信号触发时,单片机会进入复位状态。在这个阶段,单片机的内部寄存器和状态会被初始化,以确保系统处于可控状态。
  2. 初始化阶段:完成复位后,单片机会执行初始化操作,包括配置系统时钟、设置I/O口的方向和初始状态、初始化中断等。这些初始化操作会根据具体的单片机型号和应用需求进行配置。
  3. 执行程序阶段:在初始化完成后,单片机会开始执行程序。程序可以是嵌入在单片机内部的固件程序,也可以是通过外部存储器(如闪存、EEPROM)加载的代码。单片机会根据程序计数器(PC)指向的地址,逐条指令地执行程序。
  4. 中断处理阶段:当发生中断事件时,单片机会中断当前的执行,转而执行相应的中断服务程序。中断服务程序会根据中断优先级和中断向量表指定的地址进行处理,并在处理完成后返回到原来的执行位置。
  5. 休眠/低功耗状态:单片机可以根据需要进入低功耗或休眠状态,以降低功耗和延长电池寿命。在这些状态下,单片机的时钟和外设可能会暂停或降低工作频率,以减少能耗。

需要注意的是,不同的单片机在时序和工作模式上可能会有差异,具体的时序要根据单片机型号和数据手册中的描述来确定。此外,单片机的工作时序还受到外部电路和外部信号的影响,例如外部晶振的稳定性和频率、外部输入/输出的响应时间等。

机器周期和指令周期

1:震荡周期,也称之为时钟周期,指的是为单片机提供时钟脉冲信号的震荡源的周期,TX实验板上为11.0592MHZ。

震荡周期是指单片机系统中的时钟震荡周期,通常用来衡量单片机内部操作的速度和时序。

在单片机系统中,通常会使用一个晶体振荡器或者其他时钟源来提供稳定的时钟信号。这个时钟信号会周期性地产生脉冲,驱动单片机内部的操作和数据传输。

震荡周期取决于时钟源的频率以及单片机的内部时钟分频设置。一般情况下,单片机的工作频率会在数MHz到数十MHz之间,对应的震荡周期则在几十纳秒到几微秒之间。

具体的震荡周期可以根据单片机的型号和时钟设置来计算或查阅相关的技术资料。一般来说,单片机的技术手册或者数据手册会提供时钟频率、时钟分频系数、指令周期等信息,通过这些参数可以计算出具体的震荡周期。

2:状态周期,每个状态周期为时钟周期的2倍,是震荡周期经过二分频后得到的。

状态周期是指在一个周期中,系统或者设备经历的不同状态的数量或者变化次数。

在系统或设备工作过程中,会存在多个状态,比如开关状态、运行状态、等待状态等。状态周期指的是系统从一个状态切换到下一个状态所经历的时间或者次数。

状态周期的长度取决于系统或设备的工作方式和设计。例如,在一个开关设备中,状态周期可能是开-关-开-关这样的循环,每个循环的长度就是一个状态周期。在一个周期内,设备从开到关再到开的过程中,经历了两个状态。

状态周期的长度对于系统的性能和正常运行非常重要。较短的状态周期意味着系统可以更快地响应变化,提高效率。而较长的状态周期可能导致系统响应慢,性能下降。

3:机器周期,一个机器周期包含6个状态周期S1-S6,也就是12个时钟周期,在一个机器周期内,CPU可以完后才能一个独立操作。

机器周期是计算机中一个基本的时间周期,它包括了一条指令的执行所需的所有步骤。每个机器周期的长度是固定的,由计算机的时钟频率决定。

机器周期通常包括以下几个步骤:

  1. 取指周期(Fetch):从内存中取出指令并存放到指令寄存器中。
  2. 译码周期(Decode):对取出的指令进行解码,确定指令的操作和操作数。
  3. 执行周期(Execute):根据指令的操作进行相应的操作,比如进行算术运算、逻辑运算、数据传输等。
  4. 存储周期(Memory Access):如果指令需要和内存进行交互,这个周期用于访问内存。
  5. 写回周期(Write Back):将执行结果写回到寄存器或内存。

这些步骤可能会因为不同的指令而有所差异,但通常每个机器周期都是由这些基本步骤组成的。在一个机器周期内,一条指令完成从取指到写回的整个过程。

机器周期的长度对计算机性能和指令执行速度有影响。较短的机器周期意味着计算机可以更快地执行指令,提高处理速度和效率。计算机的时钟频率越高,机器周期越短,计算机的性能越好。

然而,需要注意的是,不同的指令可能会需要不同的机器周期数才能完成执行。一些复杂的指令可能需要多个机器周期,而简单的指令可能只需要一个机器周期。因此,在实际应用中,需要综合考虑指令的类型和需求,确定合适的机器周期长度。

4:指令周期,它是指CPU完成一条操作后所需要的全部时间,每条指令执行时间都是有一个或几个机器周期组成,MCS-51系统中,有单周期指令,双周期指令和四周期指令。

指令周期是计算机执行一条指令所需的时间周期,它包括了取指、译码、执行、存储和写回等各个阶段。每个指令周期的长度取决于计算机的时钟频率和指令的复杂程度。

指令周期的长度可以通过以下公式计算:

指令周期 = 1 / 时钟频率

其中,时钟频率是计算机时钟的周期,表示单位时间内时钟信号的频率。

指令周期的长度决定了计算机每秒钟能够执行的指令数量。较短的指令周期意味着计算机可以更快地执行指令,提高处理速度和效率。但是,指令周期过短可能导致指令无法完全执行完成,造成错误或不完整的结果。

在实际应用中,为了提高计算机的性能,通常会采用流水线技术来同时执行多条指令。流水线技术将指令的执行过程分割成多个阶段,并在每个阶段中同时执行不同指令的相应操作。这样可以在同一个指令周期内执行多条指令,提高计算机的运算速度。但是,流水线技术也会引入一定的延迟和冲突问题,需要进行合理的设计和优化。

需要注意的是,指令周期和机器周期不完全一样。机器周期是执行一条指令所需的所有步骤,包括取指、译码、执行、存储和写回等。而指令周期仅指执行指令的时间周期,不包括其他步骤。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述使用定义变量的当时实现延时

在这里插入图片描述子程序调用

宏定义:   #define uint unsigned int #define uchar unsigned char 

子函数调用程序

#include <REGX52.H>
#include <INTRINS.H>
// c语言中的宏定义,表示编写uint时相当于编写了unsigned int
#define uint unsigned int
#define uchar unsigned char
// 使用位定义的方式控制发光led管,控制第一个发光二级管
sbit L = P1^0;
// 函数的声明,主函数在调用子函数时需要进行函数的声明
// 编写一个子程序,没有参数没有返回值
void delay(){// 定义变量uint  x,y;//使用for循环让x的值自减 for(x = 200; x > 0; x--){// 嵌套调用for(y = 2000; y > 0; y--){}}
}/*含参数子程序设计
*/
void delay02(uint z){uint x,y;for(x = 100; x > 0; x --){for(y = z ; y > 0; y --){}}
}void main(){while(1){// 点亮ledL = 0;//调用子函数 delay02(500)delay();// 熄灭ledL = 1;//调用子函数 delay02(500)delay();}}

编译执行
在这里插入图片描述

#include <REGX52.H>
#include <INTRINS.H>
// c语言中的宏定义,表示编写uint时相当于编写了unsigned int
#define uint unsigned int
#define uchar unsigned char
// 使用位定义的方式控制发光led管,控制第一个发光二级管
sbit L = P1^0;
// 函数的声明,主函数在调用子函数时需要进行函数的声明// 编写一个子程序不含参数,没有参数没有返回值/*void delay(){// 定义变量uint  x,y;//使用for循环让x的值自减 for(x = 200; x > 0; x--){// 嵌套调用for(y = 2000; y > 0; y--){}}}*//*含参数子程序设计
*/
void delay(uint z){uint x,y;for(x = z; x > 0; x --){for(y = 120 ; y > 0; y --){}}}
void main(){while(1){// 点亮ledL = 0;//调用子函数 ,将参数传递进去delay(100);// 熄灭ledL = 1;//调用子函数,将参数传递进去delay(100);}}

使用库函数实现流水灯_crol_
在这里插入图片描述

#include <REGX52.H>
#include <INTRINS.H>
#include <intrins.h>#define uchar unsigned char
#define uint unsigned int
sbit  Led = P1^0;
uchar temp; // 8位void delay(){// 定义变量uint  x,y;//使用for循环让x的值自减 for(x = 200; x > 0; x--){// 嵌套调用for(y = 2000; y > 0; y--){}}}void main(){/*位移函数 1010 0101  --- > 向左边移动三位往左边补0   0010 1101使用循环左移实现流水灯程序*/temp = 0xfe;P1 = temp;while(1){//调用库函数循环左移一位 temp = _crol_(temp,1);// 延时程序delay();P1 = temp;}}

控制风鸣器
在这里插入图片描述beep表示的是风鸣器口为2.3口,0表示开启
在这里插入图片描述

#include <REGX52.H>
#include <INTRINS.H>
#include <intrins.h>#define uchar unsigned char
#define uint unsigned int
sbit  Led = P1^0;
sbit  beep = P2^3;
uchar temp; // 8位void delay(){// 定义变量uint  x,y;//使用for循环让x的值自减 for(x = 200; x > 0; x--){// 嵌套调用for(y = 2000; y > 0; y--){}}}void main(){/*位移函数 1010 0101  --- > 向左边移动三位往左边补0   0010 1101使用循环左移实现流水灯程序*/temp = 0xfe;P1 = temp;//控制风鸣器响 beep = 0;while(1){//调用库函数循环左移一位 temp = _crol_(temp,1);// 延时程序delay();P1 = temp;}}

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

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

相关文章

云计算与云服务

云计算与大数据 1、虚拟化简介1.1、什么是虚拟化1.2、虚拟化的分类 2、云计算与云服务2.1、云计算2.2、云服务2.3、云计算的特点 3、云服务模式&#xff08;IaaS、PaaS、SaaS和DaaS&#xff09;4、云计算分类&#xff08;公有云、私有云和混合云&#xff09; 1、虚拟化简介 当下…

高斯分布与高斯过程

一元高斯分布 我们从最简单最常见的一元高斯分布开始&#xff0c;其概率密度函数为&#xff1a; p ( x ) 1 σ 2 π e x p ( − ( x − μ ) 2 2 σ 2 ) p(x)\frac{1}{\sigma\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2}) p(x)σ2π ​1​exp(−2σ2(x−μ)2​) 其中 μ \…

【大数据】Kafka 实战教程(一)

Kafka 实战教程&#xff08;一&#xff09; 1.Kafka 介绍1.1. 主要功能1.2. 使用场景1.3 详细介绍1.3.1 消息传输流程1.3.2 Kafka 服务器消息存储策略1.3.3 与生产者的交互1.3.4 与消费者的交互 2.Kafka 生产者3.Kafka 消费者3.1 Kafka 消费模式3.1.1 At-most-once&#xff08;…

FPGA设计FIR滤波器低通滤波器,代码及视频

名称&#xff1a;FIR滤波器低通滤波器 软件&#xff1a;Quartus 语言&#xff1a;Verilog/VHDL 本资源含有verilog及VHDL两种语言设计的工程&#xff0c;每个工程均可实现以下FIR滤波器的功能。 代码功能&#xff1a; 设计一个8阶FIR滤波器&#xff08;低通滤波器&#xff…

【试题040】多个逻辑或例题2

1.题目&#xff1a;设int n0;&#xff0c;执行表达式n ||(n-1) ||(n0)||(n1)||(n2)后n的值是 &#xff1f; 2.代码解析&#xff1a; 逻辑或 || 运算符是一个短路运算符&#xff0c;它从左到右依次计算表达式&#xff0c;如果遇到一个为真&#xff08;非零&#xff09;的值&am…

SequenceFile、元数据操作与MapReduce单词计数

文章目录 SequenceFile、元数据操作与MapReduce单词计数一、实验目标二、实验要求三、实验内容四、实验步骤附&#xff1a;系列文章 SequenceFile、元数据操作与MapReduce单词计数 一、实验目标 熟练掌握hadoop操作指令及HDFS命令行接口掌握HDFS SequenceFile读写操作掌握Map…

2021年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python编程&#xff08;1~6级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 下列代码的输出结果是&#xff1f;&#xff08; &#xff09; x 0x10print(x)A&#xff1a;2 B&#xff1a;8 C&#xff…

数据结构:二叉树(2)

二叉树的基本操作 获取树的结点总数 遍历思路&#xff1a; 每次遍历一个节点&#xff0c;遍历完nodeSize&#xff0c;然后遍历它的左右子树 如果遍历到空的节点&#xff0c;就返回0 public int nodeSize 0;int size(TreeNode root){if(root null){return 0;}nodeSize;siz…

LeetCode讲解篇之77. 组合

文章目录 题目描述题解思路题解代码 题目描述 题解思路 遍历nums&#xff0c;让当前数字添加到结果前缀中&#xff0c;递归调用&#xff0c;直到前缀的长度为k&#xff0c;然后将前缀添加到结果集 题解代码 func combine(n int, k int) [][]int {var nums make([]int, n)fo…

【MATLAB源码-第51期】基于matlab的粒子群算法(PSO)的栅格地图路径规划。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;简称PSO&#xff09;是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述&#xff1a; 基本思想&#xff1a; 鸟群在寻找食物时&#xff0c;每只鸟都会…

arrow(c++)改写empyrical系列1---用arrow读取基金净值数据并计算夏普率

用arrow c版本读取了csv中的基金净值数据&#xff0c;然后计算了夏普率&#xff0c;比较尴尬的是&#xff0c;arrow c版本计算耗费的时间却比python的empyrical版本耗费时间多。。。 arrow新手上路&#xff0c;第一次自己去实现功能&#xff0c;实现的大概率并不是最高效的方…

windows上下载github上的linux内核项目遇到的问题

问题一&#xff1a;clone的时候报错 Cloning into G:\github\linux... POST git-upload-pack (gzip 27925 to 14032 bytes) remote: Counting objects: 6012062, done. remote: Compressing objects: 100% (1031/1031), done. remote: Total 6012062 (delta 893), reused 342 (…

【Axure高保真原型】可视化图表图标

今天和粉丝们免费分享可视化图表图标原型模板&#xff0c;包括柱状图、条形图、环形图、散点图、水波图等常用的可视化图表图标。 【原型效果】 【原型预览】 https://axhub.im/ax9/d402c647c82f9185/#c1 【原型下载】 这个模板可以在 Axure高保真原型哦 小程序里免费下载哦…

0基础学习VR全景平台篇第110篇:源图像导入和镜头预设 - PTGui Pro教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 本节教程&#xff0c;我们讲述拼接软件 PTGui Pro 操作的第一步&#xff1a;导入源图像和预设镜头&画幅参数。 我们此次课堂有两个重点&#xff1a; 第一点是 培养摄影后期…

HTTPS、SSL/TLS,HTTPS运行过程,RSA加密算法,AES加密算法

1、为什么网站要使用安全证书 我们所处的网络环境是复杂多样的&#xff0c;大致分为两类&#xff0c;一类是可信的网络服务商&#xff0c;比如直接连的电信运营商的网络&#xff0c;网线&#xff0c;4G&#xff0c;5G&#xff1b;另一类是不可信的网络&#xff0c;比如WIFI&am…

会声会影2024有哪些新功能?好不好用

比如会声会影视频编辑软件&#xff0c;既加入光影、动态特效的滤镜效果&#xff0c;也提供了与色彩调整相关的LUT配置文件滤镜&#xff0c;可选择性大&#xff0c;运用起来更显灵活。会声会影在用户的陪伴下走过20余载&#xff0c;经过上百个版本的优化迭代&#xff0c;已将操作…

ubuntu20.04 nvidia显卡驱动掉了,变成开源驱动,在软件与更新里选择专有驱动,下载出错,调整ubuntu镜像源之后成功修复

驱动配置好&#xff0c;环境隔了一段时间&#xff0c;打开Ubuntu发现装好的驱动又掉了&#xff0c;软件与更新 那里&#xff0c;附加驱动&#xff0c;显示开源驱动&#xff0c;命令行输入 nvidia-smi 命令查找不到驱动。 点击上面的 nvidia-driver-470&#xff08;专有&#x…

Maven 生命周期clean default size含义

clean 负责清理工作&#xff0c;清理上一次项目构建产生的一些文件&#xff0c;如编译后的字节码文件&#xff0c;打包后的jar包文件 default 整一个项目构建的核心工作&#xff0c;如编译&#xff0c;测试&#xff0c;打包&#xff0c;安装&#xff0c;部署等等 size 生成报告…

【Mysql】B+树索引的使用(七)

前言 每个索引都对应一棵 B 树&#xff0c; B 树分为多层&#xff0c;最下边一层是叶子节点&#xff0c;其余的是内节点&#xff08;非叶子节点&#xff09;。所有用户记录都存储在 B 树的叶子节点&#xff0c;所有目录项记录都存储在内节点。 InnoDB 存储引擎会自动为主键&am…

实现Linux下Word转PDF、Java调用命令方式

使用 LibreOffice 实现 Word 转 PDF 和 Java 调用命令 1、 安装 LibreOffice 外网安装 # 一键安装 yum install -y libreoffice # 验证版本 libreoffice --version # Warning: -version is deprecated. Use --version instead. # LibreOffice 7.5.6.2 f654817fb68d6d4600d7…