导航:首页 > 操作系统 > 51单片机空闲指令

51单片机空闲指令

发布时间:2024-01-12 13:55:06

① 51单片机怎么休眠

呵呵,最近刚好研究了一下这个问题 x0dx0ax0dx0a51单片机空闲和掉电模式应用x0dx0a 我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。x0dx0a 1. 空闲模式 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。???? 让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。x0dx0a2.?? 休眠模式 当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。【例】:开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。程序代码如下:x0dx0a/************************************************************************x0dx0a************************************************************************/x0dx0a #define IdleMode() PCON |=0x01 //01为空闲模式x0dx0a // 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状x0dx0a //芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。x0dx0a //但假若定时器正在运行,那么计数器寄存器中的值还将会增加。x0dx0a //单片机在空闲模式下可由任一个中断或硬件复位唤醒,x0dx0a //需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。x0dx0a #define PowerOFF() PCON |=0x02 //02掉电模式x0dx0a //进入掉电模式,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作x0dx0a //使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令x0dx0a //进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。x0dx0a //可通过外部中断唤醒,proteus仿真时无法唤醒x0dx0a #define EXT0_Init() EX0=1;EA=1 //打开外部中断,以方便唤醒。唤醒后程序从原来停止处继续运行x0dx0a //电源管理模板程序 x0dx0a main()x0dx0a{x0dx0a EXT0_Init();x0dx0a while(1) // x0dx0a {x0dx0a if(time.sec==0){time.sec++;PowerOFF();}x0dx0a //x0dx0a } x0dx0a}x0dx0a void EX0ISR(void) interrupt 0x0dx0a{x0dx0a //PCON&=0xfc; //清除之前的掉电(空闲)模式x0dx0a}

② 51单片机c语言 _nop_()是一个空指令短时间延时的空几个机器周期

这个_nop_()等效与汇编里面的,NOP指令,也就是空一个机器周期,如果是传统51单片机的话,等于空12个时钟周期【即一个机器周期】,操作方法如下:

1、首先,可以利用keil来进行模拟实验,观察软件所显示的数值,然后再进行相关的运算,即可得出结果。

阅读全文

与51单片机空闲指令相关的资料

热点内容
产品经理和程序员待遇 浏览:439
解忧程序员免费阅读 浏览:106
录像免压缩 浏览:504
总结所学过的简便算法 浏览:360
南昌哪些地方需要程序员 浏览:759
三台服务器配置IP地址 浏览:173
如何用命令方块连续对话 浏览:278
win7linux共享文件夹 浏览:304
命令符打开本地服务 浏览:599
android应用程序源码 浏览:703
安卓开发工程师简历怎么写 浏览:61
热水器水量服务器是什么意思 浏览:117
stk卫星编译 浏览:480
对后台程序员的要求 浏览:761
ios大文件夹图标 浏览:626
生的计划pdf 浏览:714
oppoa93加密便签在哪查找 浏览:21
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297