历史上的今天
返回首页

历史上的今天

今天是:2025年08月13日(星期三)

正在发生

2019年08月13日 | 拾:最小系统与省电工作方式

2019-08-13 来源:eefocus

1、什么是最小系统?
能让单片机正常工作的最小电路,我们称之为最小系统。
2、最下系统包含哪些电路?
①电源电路。
②晶振电路。
③复位电路。

晶振电路
晶振是为电路提供频繁基准的元器件,通常分为有源晶振和无源晶振两个大类。

无源晶振

有源晶振

复位电路
51芯片,通常在上电的瞬间需要一个短暂的时间进行内部参数的初始化,这个时候芯片无法立即进入工作状态。通常称上电初始化这些工作为复位。
复位电路的基本功能是:系统上电时提供复位信号,直至电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时(共大于两个机器周期)才撤销复位信号。

上电复位电路

开关复位电路

这里写图片描述

省电

1、为什么要省电?
①便携、耐用
2、有哪些省电途径?
①低工作电压
②省电工作方式
③内部模块的单独开关
④工作频率的设置
⑤优秀的软件设计

省电工作方式

51有两种可用软件来选择的省电方式——空闲工作方式和掉电工作方式。
寄存器PCON(电源控制寄存器)中PD(PCON.1)和IDL(PCON.0)位来控制。

D7
D6
D5
D4
D3
D2
D1
D0
SMOD


GF1GF0PDIDL

SMOD是串行口波特率倍增位。当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。
GF1,GF0:两个通用工作标志位,用户可以自由使用。
PD:掉电模式设定位。PD=0单片机处于正常工作状态。PD=1单片夹进入掉电(Power Down)模式,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。
IDL:空闲模式设定位。IDL=0单片机处于正常工作状态。IDL=1单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一中断或硬件复位唤醒。

外部中断使用

2个外部中断资源:外部中断0(INT0、对应P3.2引脚)和外部中断1(INT1、对应P3.3引脚)。
外部中断有两种触发方式:低电平触发方式、负跳变触发方式。

低电平触发方式

负跳变触发方式

51单片机中的每个外部中断都可以设置是否中断屏蔽、中断触发方式。当产生中断事件后,会置位相应的中断标志位。 中断允许控制寄存器IE用于设置中断源的开放和屏蔽,其中与外部中断相关的涉及到3个位。

D7
D6
D5
D4
D3
D2
D1
D0
EA



EX1
EX0

EA:中断允许总开关位。EA=1,开中断;EA=0,禁用所有中断。
EX1:外部中断1允许位。ET1=1,开INT1中断;ET1=0,关INT1中断。
EX0:外部中断0允许位。ET0=1,开INT0中断;ET0=0,关INT0中断。
还有一个中断优先级控制寄存器IP可设置某个中断源为高优先级还是低优先级中断,一般情况下不需要设置。

TCON寄存器

D7
D6
D5
D4
D3
D2
D1
D0




IE1IT1IE0IT0




外部中断1外部中断1外部中断0外部中断0

IT1:外部中断1中断触发方式设置位。IT1=0,为低电平触发方式;IT1=1,为下降沿(负跳变)触发方式。 IE1:外部中断1中断请求标志位。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断请求标志。 IT0:外部中断0中断触发方式设置位,其意义和功能与IT1类似。 IE0:外部中断0中断请求标志位。

实验

这里写图片描述


汇编代码


******************************************************************/ 

*   【课程11】 ****单片机的省电工作模式***********

*   【说  明】 ****让单片机工作在省电模式,

*   【描  述】 ****让单片机工作在省电模式,通过外部中断推出省电模式

******************************************************************/       


        ORG 0000H

JMP MAIN

ORG 0003H

MOV PCON,#00H

RETI


ORG  0030H

MAIN: SETB IT0 ;设置边沿触发

      SETB EA ;开总中断开关

      SETB EX0 ;开中断0

      MOV  R2,#10

JX: CLR  P1.0 ;控制LED灯闪烁10次

CALL DELAY

SETB  P1.0

CALL DELAY

DJNZ R2,JX

MOV  PCON,#01H ;进入省电模式

JMP  MAIN


DELAY:    ;延时子函数

         MOV    R7,#0FFH  ;延时程序

W1:      MOV    R6,#0fFH

W2:      DJNZ   R6,W2

         DJNZ   R7,W1

RET

END


C代码


******************************************************************/

*   【课程11】 ****单片机的省电工作模式***********

*   【说  明】 ****让单片机工作在省电模式,

*   【描  述】 ****让单片机工作在省电模式,通过外部中断推出省电模式

******************************************************************/

#include //51头文件,

#include


//---------常用的两个宏定义-------------- 

#define uint8 unsigned char

#define uint16  unsigned int


sbit LED=P1^0; //发光二极管引脚定义

/*----------------------------------

函数名:INT0_i()

功能: 中断服务程序

-------------------------------------*/

void INT0_i()    interrupt 0

{

PCON=0x00; //退出省电模式

}


/*----------------------------------

函数名:main()

功能: 主程序

-------------------------------------*/

void main()

{

uint16 i,j;


IT0=1; //选择外部中断0为下降沿触发

EX0=1; //开启外部中断0

EA=1; //开启总中断


LED=1;

while(1)

{

for(i=0;i<20;i++)

{

for(j=0;j<30000;j++)   //延时一段时间

_nop_();

LED=~LED;        //让LED灯闪烁

}

PCON=0x01;                //进入空闲模式

}

}



推荐阅读

史海拾趣

问答坊 | AI 解惑

??键盘虚拟码的问题

我用的开发板上只有6个按键--“上,下,左,右,确定,退出”,各自的扫描码scan_code好像跟硬件没什么关系,我看了键盘的驱动,6个按键通过外部中断触发相应的事件。 在执行相应功能前,程序先给scan_code赋一个对应的值,比如0x6f,然后两次触发 ...…

查看全部问答>

KEIL环境开发。 MAP中A函数的地址以及仿真时对A函数右键看的地址不一样,为什么?

KEIL环境开发。 MAP中A函数的地址以及仿真时对A函数右键看的地址不一样,为什么?…

查看全部问答>

急,,,,IAR Embedded IDE界面成日文了........在哪改回英文

   安装好后,好像选的是英文,结果进去一看是日文,傻眼了,卸了重新装,再进去还是没有语言选择,直接就进日文界面了......    在哪设置可以改回来呀?网上也没搜到......    万分感谢......…

查看全部问答>

过年了,没啥事,散点分给大家吧!

祝大家牛年进步! 为了提倡环保,节省纸张,在春节千万别送我贺卡,请在尽可能大的人民币上写下祝福的话送我就可以了,节约是美德,祝春节快乐!…

查看全部问答>

想得到一个合理的值,大家帮帮忙吧

首先说一下提这个问题的原因: 我在做一个文件系统,做完后需要对这个系统的性能进行一下评测,比如,往硬盘写1M文件需要多少时间,但我对这个时间也没有概念,不知道多少时间算是比较优异的,因此,想看看windows的文件系统性能,再与我的进行对 ...…

查看全部问答>

关于控件的几个问题

做的一个应用程序,转换成控件: 应用程序里需要创建窗口,在控件里怎么实现啊? 另外,应用程序里的消息处理 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam),在控件里怎么实现啊?…

查看全部问答>

大家有没有在pb5.0定制支持游戏的系统。

最近想在开发板编译个可以玩游戏(格式如:.jar)的系统, pb上可以定制自带的字牌游戏, 各位有没有人编过这样的系统。…

查看全部问答>

总体抖动的算法

总体抖动的算法…

查看全部问答>

单片机开发工程师所需技能总结

   单片机的重要性在后PC时代逐渐加重了,现在更多的电子设计者和爱好者讨论最多的话题莫过于嵌入式系统的设计,C51、VHDL、RTOS、CPLD、FPGA、DSP、ARM已是当今挂在电子工程师嘴边最多的几个词,由于工艺的进步,家庭智能化已不是空中楼 ...…

查看全部问答>