单片机C语言编程中延时函数和定时器中断有何关系

单片机C语言编程中延时函数和定时器中断有何关系,第1张

延时函数(延时子程序)是主程序正常运行时执行的,

---主程序运行的时间即是延时函数的延时时间。

定时器中断是在主程序中插入的事件,是在主程序的某个时间点,跳出主程序去执行定时器中断要做的事情。

所以如果一个延时子程序不停地被中断(包括定时器中断或者其他中断)打断,

就没有时间完成自身运行一次所需的那些语句。

等到它自身运行完一次,可能原定延时时间的很多倍已经过去了。

Delay函数应该没错的。

编译有报错吗?conrtalcar(1)后面没有;

conrtalcar(2)后面的分号是中文格式的吧。

不对,我读不懂了。你这整一个是都在Delay函数里的吗?是这样的话,就好像是死循环了。是不是这样?

void Delay() //定义机器人调转子时间子程序

{

unsigned int DelayTime=50000; //定义机器人转弯时间变量

while(DelayTime--);

}

void main()

{

conrtalcar(1);

Delay() ;

conrtalcar(2);

}

1.子程序的定义

在编制加工程序中,有时会遇到一组程序段在-个程序中多次出现,或者在几个程序中都要使用它。这个典型的加工程序可以做成固定程序,并单独加以命名,这组程序段就称为子程序。

2使用子程序的目的和作用

使用子程序可以减少不必要的编程重复,从而达到减化编程的目的。主程序可以调用子程序,一个子程序也可以调用下一级的子程序。子程序必须在主程序结束指令后建立,其作用相当于一个固定循环。

3.子程序的调用

在主程序中,调用子程序的指令是一个程序段,其格式随具体的数控系统而定,FANUC-6T系统子程序调用格式为

M98 P--L--

式中M98--子程序调用字;

p--子程序号;

L--子程序重复调用次数。

由此可见,子程序由程序调用字、子程序号和调用次数组成。

4.子程序的返回

子程序返回主程序用指令M99,它表示子程序运行结束,请返回到主程序。

5.子程序的嵌套子程序调用下一级子程序称为嵌套。上一级子程序与下一级于程序的关系,与主程序与第一层子程序的关系相同。子程序可以嵌套多少层由具体的数控系统决定,在FANUC-6T系统中,只能有两次嵌套。

这个代码其实还是很清楚明了的。

DELY1: PUSH AX ;延时子程序,这里PUSH AX 其实可以不要的,因为AX没有做任何改动

PUSH CX ; 因为使用了CX来计数,所以先保存CX进堆栈

MOV CX,30H ; 循环30H也就是48次

DLY1: CALL DELY2 ; 在次调用一个延时子程序

LOOP DLY1 ; 循环,48次,不到次数则继续循环

POP CX ; 恢复被保护的原来CX的值

POP AX ; 恢复被保护的原来AX的值

RET ; 过程返回

DELY2: PUSH CX ; 内部调用的过程,也需要把CX当前的值保护进堆栈

MOV CX,8000H ; 循环8000H也就是32768次

LOOP $ ; $ 表示当前地址,也就是自己的地址,32768次循环不到则原地踏步

POP CX ; 恢复被保护的CX的值

RET ; 过程返回

分析寄存器r1r2对延时程序的影响是DELAY后面到RET都是延时子程序,RET是子程序返回指令,RO-R7都是单片机的通用寄存器;整段程序的作用就是产生一个周期04秒的方波。

分析寄存器电阻变大,C充电到2/3 vcc时间较长,555设计是当6脚电位达到2/3vcc时3脚输出转低电平,在计时器电路,6 7脚相连一起,这个2/3vcc再由7脚放电,再等待下一个计时信号由2脚输入。

分析寄存器通用寄存器组:

通用寄存器组包括AX、BX、CX、DX4个16位寄存器,用以存放16位数据或地址。也可用作8位寄存器。用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。只能存放8位数据,不能存放地址。

分析寄存器它们分别是AX、BX、CX、DX的高八位和低八位。若AX=1234H,则AH=12H,AL=34H。通用寄存器通用性强,对任何指令,它们具有相同的功能。为了缩短指令代码的长度,在8086中,某些通用寄存器用作专门用途。

以上就是关于单片机C语言编程中延时函数和定时器中断有何关系全部的内容,包括:单片机C语言编程中延时函数和定时器中断有何关系、51单片机C语言程序中延时函数delay的作用、plc如何在子程序中实现延时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9490302.html

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

发表评论

登录后才能评论

评论列表(0条)

保存