导航:首页 > 操作系统 > 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单片机如何延迟开发相关的资料

热点内容
服务器地址缺少端口号什么意思 浏览:526
下载需要解压的小说用哪个软件 浏览:530
广东分布式服务器云主机 浏览:579
服务器忙打不开怎么办 浏览:11
tif压缩软件 浏览:409
程序员那么可爱陆漓上班第1天 浏览:950
macbookair自带什么app 浏览:697
如何关了加密的软件 浏览:578
程序员p2p待遇 浏览:920
ipd编译要求 浏览:934
压缩解压王怎么用 浏览:32
服务器共享文件如何备份 浏览:756
买安卓手机怎么在官网买 浏览:124
诗词入门PDF 浏览:362
毒app是什么单位 浏览:65
如何自己编译android系统 浏览:793
phpmysqlpdomysqli 浏览:809
php修改sql语句 浏览:721
android有道api 浏览:389
挠耳营水表用的什么app 浏览:56