[转]51、430、stm32周期和执行一条语句需要多长时间的问题

机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,
每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个
基本操作所需要的时间称为机器周期。
8051系列单片机的一个机器周期由6个S周期(状态周期)组成。
一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。
指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
专用知识:在430中,一个时钟周期 = MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us;
一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基本操作;一个指令周期 = 1~6个机器周期,具体根据具体指令而定。
stm32和430相同
51   晶振11.0592   一条语句  大约1us
430  没有设置分频,在8MHZ晶振下   那么机器周期就是1/8M=125ns, 单指令的执行时间就是125ns
(一条C语言需要多久,这里就要看他的反汇编是多少条指令周期了,如果是N条,那么执行这一条C语言需要的时间就为 N*125ns)
STM32在系统时钟没有倍频时,和430一样
---------------------
作者:helenie
来源:CSDN
原文:https://blog.csdn.net/helenie/article/details/52810046
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/tubujia/p/10028576.html

时间: 2024-10-09 05:27:28

[转]51、430、stm32周期和执行一条语句需要多长时间的问题的相关文章

嵌入式linux与51/430/STM32的嵌入式开发的区别与关联

嵌入式linux与51/430/STM32的嵌入式开发的区别与关联 总结: 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统.主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能. 微处理器系列: ARM Cortex A系列的处理器

SQL服务器在执行这条语句时会先进行运算然后执行

1.打开地址,我们可以看到是一个正常的页面. 2..然后在地址后面加上-1,变成:http://site/news.asp?id=123-1,若返回的页面和前面不同,是另一个正常的页面,则表示存在注入漏洞,而且是数字型的注入漏洞 3.若在地址后面加上 -0,变成 http://site/news.asp?id=123-0,返回的页面和之前的页面相同,然后加上-1,返回错误页面,则也表示存在注入漏洞,而且是数字型的. 4.若在地址后面加上'%2B',变为:http://site/news.asp?

C/C++中如何在main()函数之前执行一条语句?

在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数) #include <stdio.h> __attribute((constructor)) void before_main() { printf("%s/n",__FUNCTION__); } __attribute((destructor)) void after_main() { printf("%s/

Android---AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似.都有两种相似的用法:(1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service. 下面的代码详细的介绍了两种定时方式的使用: (1)在指定时长后执行某项操作 代码 //操作:发送一个广播,广播接收后Toast

Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似.都有两种相似的用法:(1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service. 下面的代码详细的介绍了两种定时方式的使用: (1)在指定时长后执行某项操作 //操作:发送一个广播,广播接收后Toast提示定

关于生命周期里执行setState

React里生命周期的哪些方法里可以执行setState,这对于很多使用React很长时间的开发都是个迷惑的问题. 先看一下完整的生命周期. 再看两篇文章 React componentDidUpdate 异步请求的回调可以使用this.setState吗? 无法理解componentDidUpdate这个生命周期是什么时候调用的? 更深入的理解,需要结合JS事件循环机制来思考.这是一个浩大的工程,放在以后写吧. 原文地址:https://www.cnblogs.com/zhansu/p/103

用Hibernate框架把hql生成可执行的sql语句-Oracle方言

引言:为什么这样的需求,源自公司项目需要,公司的项目使用java的struts2+spring2.5+oracle中间件tuxedo,数据库用的是Oracle,但由于不直接连接数据库,用中间件处理的方式,又不希望有太多服务,所以就开始网络找资料整理编码了.大概花了一个多星期完成了这个任务,现在整理出来与大家分享,也是自己知识的梳理. 1.需要导入相关的jar包: [按字母顺序排列] antlr-2.7.5H3.jar 语言转换工,Hibernate利用它实现 HQL 到 SQL的转换 asm.j

Oracle Function:当页面端有屏蔽相关字段数据函数,只有指定用户才能查看;而当前用户无法获取到相关数据插到其他表中,这时需要获取后台用户替换当前用户,执行完相关语句后再还原为当前用户。

1.该函数的作用:入库单提交/审核通过时,将相关数据插到/更新'出入库历史记录表':delivery_entering_record 由于页面端屏蔽了单价,指定的用户才能看到,故 与单价有关的数据插不进"出入库历史记录表"delivery_entering_record中,所以要用后台的用户替换当前用户,执行完相关语句后,在还原为当前用户(如代码:178~184和第208行所示):否则,插进去的数据全为0. 1 create or replace function delivery_e

C#中,一个cmd命令窗口执行多条dos命令(有修改,加入执行等待)

原文章标题:C# 程序一个cmd命令窗口执行多条dos命令 原文章地址:http://www.cnblogs.com/visibleisfalse/p/3578886.html 以下代码有修改,标出的红色代码,表示执行一条dos命令后,等待执行完成. public void DoDos(string comd1, string comd2, string comd3) { Process p = new Process();//创建进程对象 try { p.StartInfo.FileName