51pic单片机定时器程序在空闲模式下,定时器内的程序还会被执行吗

51单片机空闲模式问题??_百度知道
51单片机空闲模式问题??
/*定时唤醒空闲模式(进入空闲模式后四秒自动唤醒)*/
#define TIME0 TH0=(-5;TL0=(-5
sbit deng1=P1^1;
sbit deng2=P1^2;
ys(uint y)
uchar s=0;
我有更好的答案
空闲模式下可由任一个中断唤醒,你那个50MS*80的延时之前就已经唤醒了。如果想调试空闲模式可以用外部中断设置个按钮试试。
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。以下试题来自:
判断题AT89S51单片机进入空闲模式,CPU停止工作。片内的外围电路(如中断系统、串行口和定时器)仍将继续工作。 对
为您推荐的考试题库
您可能感兴趣的试卷
你可能感兴趣的试题
1.判断题 错2
A.当前正在执行指令的前一条指令的地址
B.当前正在执行指令的地址
C.当前正在执行指令的下一条指令的首地址
D.控制器中指令寄存器的地址
3.判断题 对4.判断题 对5.判断题 对stc15系列单片机如何进入掉电模式-如何唤醒_百度知道
stc15系列单片机如何进入掉电模式-如何唤醒
_nop_(); WKTCH=0,有大神可以讲解一下它的工作原理吗?~~~(单片机初始化) WKTCH=0x83;
WKTCL=0x20;
PCON =0x02;
_nop_()单片机:STC15L104W
晶振:使用单片机内部晶振如下程序看不懂
  stc15系列单片机进入掉电模式的方法如下:当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入掉电模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。可将数字万用表调节到电流档,然后串接入电路中,观察单片机在正常工作模式、休眠模式、空闲模式下流过系统的总电流变化情况,经测试可发现结果如下:正常工作电流&空闲模式电流&掉电模式电流。  唤醒的方法:看芯片资料,上电复位,或者外部中断(有些可以,有些不行)可以从掉电模式唤醒。
采纳率:66%
PCON=0X02;
就可以使芯片进入掉电模式,看芯片资料,上电复位,或者外部中断(有些可以,有些不行)可以从从掉电模式唤醒。
本回答被提问者和网友采纳
为您推荐:
其他类似问题
单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51单片机进入退出空闲模式的问题 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
51单片机进入退出空闲模式的问题
20:56:46  
我的程序想实现的效果是当上位机发送0x01时单片机进入空闲模式,当定时器计数达到大概10左右吧,就退出空闲模式。其他时间正常发送温度湿度数据。
现在测试的效果是不管我发16进制的01 还是02 都停止发送数据,等很长时间也不会苏醒(再次发送)。
求大神帮忙分析一下。
20:57:40  
补上我的程序文件
20:57 上传
点击文件名下载附件
下载积分: 积分 -1 分
58.18 KB, 下载次数: 16, 下载积分: 积分 -1 分
08:31:29  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
不应该在中断例程里面,应该在main里面操作PCON;
你的其他中断都被关掉了,你又是在定时器中断例程里面进入待机状态,而定时器中断在返回前,不管定时器是否完成计时,都不会再次产生中断,当然不会有反应了。
10:35:40  
不应该在中断例程里面,应该在main里面操作PCON;
你的其他中断都被关掉了,你又是在定时器中断例程里面进入 ...
我在main函数里把PCON该成0x00进空闲,关掉ES串行中断,没有关定时器中断。因为我看资料上说空闲模式中任何中断都会使单片机苏醒,而我又想定时让他苏醒。那我就留一个定时器,让他不停的计数,再给他一个num1,当num1计到足够的值时苏醒。考虑到定时器中断的几种情况,void Timer0_isr(void) interrupt 1
& & & & TH0 = 0xc3;
& & & & TL0 = 0x50;
& & & & num++;
& & & & num1++;
& & if(num==500)
& & & & & & & & num=0;
& & & & & & & & ReadFlag=1; //读标志位置1
& & & & if(receiveflag == 0x49 && num1 == 2000)
& & & & & & & & num1 = 0;
& & & & & & & & PCON = 0x00;
& & & & & & & & receiveflag == 0x48;
& & & & & & & & ES = 1;
& & & & else if(receiveflag == 0x48)
& & & & & & & & PCON =0x00;
& & & & else
& & & & & & & & PCON =0x01;
正常发送、
接受到休眠指令进入休眠、
正在休眠但num1计数不够不需要苏醒、计数达到,
我才在中断里头对PCON进行设置的,我还是不知道我哪里想错了,可以说的详细一点吗
17:29:57  
只要你在中断例程里面休眠了,没有更高优先级的中断发生,就不会被唤醒
18:59:42  
只要你在中断例程里面休眠了,没有更高优先级的中断发生,就不会被唤醒
那你的意思是我在主函数里加了pcon=0x01,定时器中断函数里就不该再写pcon=0x01了?那应该是怎么唤醒的?
21:11:36  
在main做一个循环,num1 & 2000 就继续休眠
while(num1 & 2000)
& && && &PCON = 0x01;
21:16:11  
在main做一个循环,num1 & 2000 就继续休眠
while(num1 & 2000)
我明天去实验室测试一下,谢谢了
21:52:47  
不过,建议你不要使用PCON = 0X01;&&而用PCON |= 1;
这样的话,不会影响PCON的其他位,比如SMOD:影响串口波特率、GF0\GF1;
还有一个问题,PCON的位0:IDL是由硬件清零的,而不是由软件清零,可以这样想:待机时啥指令都不会运行,又怎么会去清零IDL位呢?
10:35:37  
比较蒙,看着不懂
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司}

我要回帖

更多关于 单片机定时器实验程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信