delay函数转换为汇编后是这样的
MOV Rn,#data 为1个周期
DJNZ Rn,rel为2个周期
总共为401个周期
如果按照12MHz晶振来算就是401us(包括调用时间为403us)
只是普通的延时
一般是用于一些低速总线上,从设备的通讯速率较低才采用延时的方法。
可以有很多办法,一是调整参数,使其延时5分钟或6分钟,循环24次或20次。二是将延时函数的形参改为长整型(32位)延时时间扩大65536倍。三是使用定时器,每次定时50mS,累计144000次,便是2小时,使用定时器(中断)的好处是在延时期间还可以干许多事情,例如显示剩余时间,检测设备工作状态或者调整延时时间等,而你的纯软件延时期间想干其它事情比较困难。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)