晶振18.432MHz延时函数(12m晶振的延时函数)

海潮机械 2023-01-21 13:24 编辑:admin 92阅读

1. 晶振18.432MHz延时函数

12M晶振普通51单片机。 void delay(void) //误差 0us { unsigned char a,b,c; for(c=19;c>0;c--) for(b=20;b>0;b--) for(a=130;a>0;a--); } 包准。

2. 12m晶振的延时函数

时钟周期就是时钟振荡周期=1/12M=0.083us机器周期=12*时钟周期=12/12M=1us

机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由 若干个S周期(状态周期)组成。通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是 计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间)),它一般由12个时钟周期(振荡周期)组成,也是由6个状态周期组成。而振荡周期=1秒/晶振频率,因此单片机的机器周期=12秒/晶振频率

3. 12m晶振延时计算方法

若采用12M晶振则 51单片机如89C51的一个机器周期为12个时钟周期,即1uS DJNZ指令为两个机器周期,你可以自己查 DL10MS: MOV R6,#0C8H ;循环200次,200*50uS=10ms DL1: MOV R7,#19H ;25*2个机器周期 DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

4. 11.0592晶振延时函数

一、延时函数delay怎么算

1、DelayMS(300)表示希望系统delay 300毫秒,系统有自己的RTC,根据硬件的晶振(Hz)可以计算出一次振荡大约多少耗时,这样就能大约算出1ms需要多少次振荡;

2、简单比喻一次振荡需要1us,那1ms就是1000次振荡,300ms就是300x1000次振荡,这样就能大概的计算出300ms delay;

3、这得看你的CPU运行一条指令得多久,像单片机89C51一般一条1us。

5. 24MHz晶振

你需要说一下 时钟周期,和机器周期代表什么? 如果你拿6M晶振作为时钟,时钟周期就是1/6M s, 大概167ns 机器周期的话,大概这是个什么芯片把。

就看你处理器频率跟主频的关系了,分频或是倍频的。总之是跟6M有一定关系。当然你也可以拿6MHz作为机器周期。

6. 24mhz晶振的振荡周期

stc15f2k60s2这个单片机性能算是比较强悍的了,这个需要看你使用1T模式还是12T模式了。12T模式指一个机器周期=12个时钟周期1T模式指的是一个机器周期=1个时钟周期比如对于常用的12M晶振来说:12T模式,一个机器周期为1us1T模式,一个机器周期为1/12us.时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。

7. 晶振12mhz 设计延时1s 汇编

delay1000ms:(HT46R65的单片机)(注意不要开启计时中断允许位)

mov a,10000111b (设置频率和记数方式)(上升记数还是下降记数)

mov tmr0c,a (tmr0c 计数器的控制寄存器)

mov a,low(65536-31250) (设置的频率就是1S上升31250)因此是DELAY1S mov TMR0L,a (计数器的赋予初始值的低位寄存器)

mov a,high(65536-31250) mov TMR0h,a(计数器的赋予初始值的高位寄存器)

set tmr0c.4 (打开记数)

snz intc0.6 (是否有中断请求标志)(有就跳过)

jmp $-1 (退回一步)

clr tmr0c.4 (关闭记数)

clr intc0.6 (清除中断标志)

ret