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

热点内容
英文桌面文件夹命名 浏览:148
如何克隆加密的硬盘 浏览:577
中国地图册pdf 浏览:119
windows运行exe命令 浏览:918
破解pdf权限 浏览:643
基础轻松入门python小课 浏览:585
湖北黄石移动dns服务器地址 浏览:42
稳定币会加密货币吗 浏览:782
python生成订单数据 浏览:361
安卓手机正面视频怎么调整为左边 浏览:921
java定义整数 浏览:372
怎么添加数据透视表命令 浏览:800
hk4100f与单片机连接 浏览:862
门禁钥匙加密可以复制吗 浏览:195
单片机ad采样交流信号 浏览:162
龙门铣外圆编程 浏览:519
gal编程工具 浏览:402
浙大翁恺老师用的什么编译器 浏览:593
gs5发动机压缩比 浏览:717
税控盘插上显示未检测加密盘 浏览:306