C51 定时器延时 堆栈

程序中不出现1ms以上的指令延时,比如delay()这样的函数,所有的长时间的延时都是用定时器延时。例如:在一个子函数中,要使用延时。那么就用定时器来作延时时间的计算.在... 程序中不出现1ms以上的指令延时,比如delay()这样的函数,所有的长时间的延时都是用定时器延时。
例如:
在一个子函数中,要使用延时。那么就用定时器来作延时时间的计算.在这个时间段内。保护现场以及寄存器,接下来让PC指针回到主函数执行其他程序,这样就做到了释放CPU。
不知道我这样理解对吗.
如果正确。那么实现这样的程序是否要用到设置堆栈?如果要用到堆栈那么C51如何压栈出栈等??

加分
展开
 我来答
dengbzh
2011-07-15
知道答主
回答量:16
采纳率:0%
帮助的人:11.5万
展开全部
如果没有用using指定你所用的寄存器组的话那么R0~R7都会入栈,当然入站的还有当前的PC,PSW等,如果想要节省入栈的时间可以指定using 0 就是用R0,只有R0会入栈,中断结束时压栈的数据会自动出栈。如果用汇编写的话就不一样了,有时候会更简单一点吧。如果你的程序里面只是用到了R0的话就是直接PUSH R0,就好了,用到什么就PUSH 什么,但是要注意POP的时候要与之对应。(PC是自己压栈的)
光派通信
2024-09-03 广告
对光传输设备进行调试和维护,需要掌握以下关键点:1. **熟悉设备性能**:深入了解OTN/DWDM等光传输产品的性能特点,确保能够熟练使用设备。2. **按规范操作**:依据产品说明书和维护手册进行调试和维护,确保操作步骤正确无误。3. ... 点击进入详情页
本回答由光派通信提供
unlorzzop
2011-07-13 · TA获得超过713个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:381万
展开全部
请问以下的题目中设置堆栈和保护现场、恢复现场有什么区别和联系吗?

MOV SP,#60H 设置堆栈是设置堆栈的起始存储单元,PUSH ACC ;保护现场 PUSH PSW PUSH DPL PUSH DPH ,就是在60H单元开始依次存储ACC、PSW、DPL、DPH
另外,中断的返回RETI是回到SJMP $吗?
不是,返回RETI是回到响应中断前PC的位置,不一定是在SJMP $
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式