导航:首页 > 操作系统 > 51单片机如何延迟开发

51单片机如何延迟开发

发布时间:2023-08-10 07:08:53

‘壹’ C51单片机延时程序,需要不精确延时2小时,请问大神怎么写延时代码,谢谢!

可以有很多办法,一是调整参数,使其延时5分钟或6分钟,循环24次或20次。二是将延时函数的形参改为长整型(32位)延时时间扩大65536倍。三是使用定时器,每次定时50mS,累计144000次,便是2小时,使用定时器(中断)的好处是在延时期间还可以干许多事情,例如显示剩余时间,检测设备工作状态或者调整延时时间等,而你的纯软件延时期间想干其它事情比较困难。

‘贰’ 用汇编怎么写51单片机的延时程序

DEL1S:MOV R7,#10x0dx0aD1: MOV R6,#200x0dx0aD2: MOV R5,#250x0dx0a DJNZ R5,$x0dx0a DJNZ R6,D2x0dx0a DJNZ R7,D1x0dx0a RETx0dx0ax0dx0a说明:1、如果不使用R5、R6、R7可以用别的单元替换,比如换成30H、31H、32H等等x0dx0a 2、这个程序是12M时钟,如果时钟不同,要修改数值。如6M时钟,要把MOV R7,#10 修改成:MOV R7,#5

‘叁’ 51单片机用c语言怎么写延时函数

延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算。现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环
void delay(int i){
int x,y;
for(x=i;x>0;x--){
for(y=120;y>0;y--)
}
}
参数 i 代表该函数延时多少ms

‘肆’ 51单片机的一个延时,我问下这个延时是具体怎么执行延时的

  1. 需要延时的时候,在程序中带参数调用DelayMs,参数传递给DelayMs的形式参数“unsigned char t”,t就有了数值。

  2. “while(t--);”执行t个循环后退出,t个循环用了若干时间。

  3. 连续执行两条“DelayUs2x(245);”,原理同第1,2步,也用了若干时间。

  4. 以上执行用的时间就是你延时的时间。

  5. 问题点:程序有失误,DelayMs里的while(t--)后边不能有分号,这样t个循环才能作用到下边的两条“DelayUs2x(245);”

阅读全文

与51单片机如何延迟开发相关的资料

热点内容
用纸做解压魔术 浏览:484
服务器中运行的脚本如何测试 浏览:373
手机主题包时钟文件夹 浏览:423
怎么在app上退订短号业务 浏览:978
解压迫及法老 浏览:58
pdf横竖 浏览:137
5800计算机程序和编程 浏览:29
网上报修php源码 浏览:897
魔兽宏命令老是语言提示 浏览:971
办公文件夹大全 浏览:471
单片机闪烁灯虚拟线路图 浏览:72
App显示别的国家怎么更改 浏览:154
幻塔官方服务器叫什么 浏览:196
android自定义进度框 浏览:506
linux自动联网 浏览:492
keil编写的程序怎么不能编译呢 浏览:562
ipadair2能编程吗 浏览:358
esxi查看内存命令行 浏览:79
u盘settings文件夹 浏览:649
新东方雅思写作pdf 浏览:734