请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢。。

请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢。。,第1张

1、首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示

2、然后添加c文件,接下来输入代码,先输入一个头文件命令。

3、然纯御后,进行宏定义,代码如图所示。

4、然后声明P1口,如下图所示。

5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。

6、做做岩最后,点击编译,生成HEX文件就可以了胡闷,这样51单片机延时语句就完成了。

我以2ms为例说明一下:

单片机的晶振周期为12hz,则执行一条代码为一个机器周期,为备弊稿1微妙(ua),所以2ms=10*200(ua),

对r2赋值200(4位二进制数最大卜谨值为256,所以只能取到200)即#c8h。再对r2循环20次就实现了2ms延时。至于100ms、

200ms、

1s等等方法类似,只是调整相应的初值。多设仿孝置几次循环就行。

程序代码如下:

delay:

mov

r1,#0ah

;赋值r1为10次

delay1:

mov

r2,#c8h

;赋值r2为200次

delay2:

djnz

r2,$

;r2自减到0,不到0继续等待

djnz

r1,delay1

;r2减到0后r1自减1,重新给r2赋初值后继续循环,直到r1到0为止,延时结束

ret

1.  sleep()是码嫌以毫秒计算的,延时5秒是sleep(5*1000),延时5分是sleep(5*1000*60)

2.包含的头文件看你用的什么编辑软件。

3.我用的VC++是用包含在#include<windows.h>头文件中。

#include<stdio.h>悉模稿#include<windows.h>//Sleep()的头文件  main()  {   int i

int n=10for(i=1i<=ni++)  {printf("%d",i)Sleep(5*1000*60)}  //    

这里修改延时时间,

有睁孝些人说是用#include<dos.h>做头文件你自己试下吧。

还用Sleep的S是大写的,不是小写的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12305144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存