南京晰视电子

stc12c5a60s2标准延时(c51延时100ms)

本篇目录:

STC12C5A60S2单片机的各指令周期是多少?怎样精确定时?

各指令周期可以参考STC12C5A的数据手册,上面有明确说明。精确延时在C51中是很难实现的,如要求严格应使用汇编。C51中实现延时一般使用示波器进行校对,也可使用 单片机小精灵 V3 自动生成。

比普通的快十二倍。普通的一个机器周期需要十二个时钟周期,就是晶振周期。而12c是以机器周期对应一个晶振周期,算时间的时候直接晶振周期的倒数就行了,不用像原来的需要吧晶振频率除12再倒数。

stc12c5a60s2标准延时(c51延时100ms)-图1

如果我们用的系统是STC12C5A60S2,工作于31776MHz下,一个机器周期是0.0301个us,定时器200us中断一次,那么,我们可以有 200 - 38*0.0301 = 1985us,即6597个机器周期去处理别的事情。

MHz晶振下,一个机器指令周期 t=((1*12)/11059200) = 0850694us,也就是一个空指令也要0850694us,所以5us的延时只能是5个空指令周期,并且误差很大,写成延迟函数误差更大。

建议你去下载个《单片机小精灵》小软件里面有计算器可以直接计算出你要的时间并生成C代码或汇编代码。

stc12c5a60s2标准延时(c51延时100ms)-图2

一般采用定时50ms 然后在中断定义一个变量,每中断一次+1。到20之后就是1秒的延时。

15单片机的1us延时,要精确,11.0592MHZ,1T的,就是蓝桥杯的那个板子,谢谢...

1、这个软件延时是有点误差,1us左右,想要精准,还是用定时器吧。

2、进考场后,会发一块单片机开发板。电脑桌面上有一个加密的压缩包,开考后密码才会告知,解压后里面有下载软件,datasheet,参考程序。

stc12c5a60s2标准延时(c51延时100ms)-图3

3、代码不报错,只能说明没有语法错误。但不等于程序就是对的。DS18B20读取温度时的时序要求是非常严格的,与晶振频率有关的。

stc12c5a60s2单片机,11.0592MHz晶振。5us和5ms精确延时函数

1、MHz晶振下,一个机器指令周期 t=((1*12)/11059200) = 0850694us,也就是一个空指令也要0850694us,所以5us的延时只能是5个空指令周期,并且误差很大,写成延迟函数误差更大。

2、建议你去下载个《单片机小精灵》小软件里面有计算器可以直接计算出你要的时间并生成C代码或汇编代码。

3、纠正一下,STC12C5A60S2内核是1T的,默认是没有进行12分频的,10592晶振,那么机器周期=时钟周期=1/10592=0.09042us 这个软件延时是有点误差,1us左右,想要精准,还是用定时器吧。

4、(2)数字显示小时、分钟,有AM、PM指示器,闹钟就绪灯,蜂鸣器。 (3)键盘切换现场环境温度显示。

请问STC12C5A60S2单片机的各指令周期是多少?怎样精确延时?具体计算方法...

各指令周期可以在芯片手册里查,但STC的芯片采用了流水线,即当前一个指令执行时,后一条指令处理预处理中了,但如果前一条指令是跳转指令,这个时间就会变长。所以单纯的计算机器周期,比较难精确定时 。

MHz晶振下,一个机器指令周期 t=((1*12)/11059200) = 0850694us,也就是一个空指令也要0850694us,所以5us的延时只能是5个空指令周期,并且误差很大,写成延迟函数误差更大。

一个机器周期=1/21184us=0.0452us 所以执行一条指令时间=指令周期*0.0452us。

一般采用定时50ms 然后在中断定义一个变量,每中断一次+1。到20之后就是1秒的延时。

建议你去下载个《单片机小精灵》小软件里面有计算器可以直接计算出你要的时间并生成C代码或汇编代码。

求STC12C5A60S2单片机在11.0592M晶振下的延时100us的程序

首先,你得知道晶振。机器周期=1*12/晶振频率。假设晶振12MHz,机器周期就是1us。一条DJNZ指令为两个机器周期,也就是2us。

include intrins.h void _nop_ (void);用 _nop_(); 来延时,一个 _nop_(); 是一个 硬件 周期。US 是 什么单位? 1/1000000 秒?按 10592M的晶振 你可以 估计要多少周期,再决定 循环多少次。

MHz晶振下,一个机器指令周期 t=((1*12)/11059200) = 0850694us,也就是一个空指令也要0850694us,所以5us的延时只能是5个空指令周期,并且误差很大,写成延迟函数误差更大。

纠正一下,STC12C5A60S2内核是1T的,默认是没有进行12分频的,10592晶振,那么机器周期=时钟周期=1/10592=0.09042us 这个软件延时是有点误差,1us左右,想要精准,还是用定时器吧。

到此,以上就是小编对于c51延时100ms的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇