1,单片机汇编语言延时函数时间该如何计算

第一个延时,mov指令一个时钟,第二个DJNZ跳转是三个时钟,不跳转两个时钟,从255(0FFH)开始每次减一,255次,共255*3-1=764次,最后一次不跳转,只有两个时钟,所以减一,再加上第一条指令的一个时钟,结果是255个时钟,如果时钟周期是一微秒,那么延时了255微秒。第二个延时程序有两个循环,结果是(765+3)*765个时钟,再乘以时钟周期就是延时时间了。自己分析吧。

单片机汇编语言延时函数时间该如何计算

2,单片机 nop和delay1延时时间是多久和晶振频率的关系是什么百

_nop_的延时时间是一个机器周期,与晶振的关系是:osc/12/1000000微秒比如12M晶振,=12*1000000/12/1000000=1usdelay(1)则不知道是多少延时时间了,这与你的子程序本身有关。比如:delay(unsigned char a)unsigned char i,j;for(i=0;i<a;i++)for(j=0;j<120;j++);}那么delay(1)则是在12M晶振的情况下延时约为1毫秒。

单片机 nop和delay1延时时间是多久和晶振频率的关系是什么百

3,单片机四个数码管动态显示的延时时间约为多少

#include <reg52.h>#include <stdlib.h>#define uint unsigned long#define uchar unsigned char sbit N1 = P1^0; sbit N2 = P1^1;sbit N3 = P1^2;sbit N4 = P1^3;uchar code table[]=uint num;int a,t1=0;void delayms(uint xms) //延时函数 uint i,j; for(i=xms;i>0;i--) for(j=10;j>0;j--);}void display(uint num) N1=0; P0=table[(num/1000)]; delayms(1); P0=0XFF; N1=1; N2=0; P0=table[(num%1000)/100]; delayms(1); P0=0XFF; N2=1; N3=0; P0=table[(num%100)/10]; delayms(1); P0=0XFF; N3=1; N4=0; P0=table[(num%10)]; delayms(1); P0=0XFF; N4=1;}void TimeAdd() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; t1++; if(t1==10) //20*50==1秒10*50=0.5秒 t1=0; num++; }}void main() TMOD=0X01; // 定时器 初始化 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; //中断总开关 ET0=1; //开定时器0 中断 TR0=1; //启动定时器0 num=6000; //初始值 while(1) display(num); }}

单片机四个数码管动态显示的延时时间约为多少


文章TAG:单片机单片机延时函数大概多少时间  单片机汇编语言延时函数时间该如何计算  
下一篇