1、什么是最小系统?
能让单片机正常工作的最小电路,我们称之为最小系统。
2、最下系统包含哪些电路?
①电源电路。
②晶振电路。
③复位电路。
晶振电路
晶振是为电路提供频繁基准的元器件,通常分为有源晶振和无源晶振两个大类。
无源晶振
有源晶振
复位电路
51芯片,通常在上电的瞬间需要一个短暂的时间进行内部参数的初始化,这个时候芯片无法立即进入工作状态。通常称上电初始化这些工作为复位。
复位电路的基本功能是:系统上电时提供复位信号,直至电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时(共大于两个机器周期)才撤销复位信号。
上电复位电路
开关复位电路
省电
1、为什么要省电?
①便携、耐用
2、有哪些省电途径?
①低工作电压
②省电工作方式
③内部模块的单独开关
④工作频率的设置
⑤优秀的软件设计
省电工作方式
51有两种可用软件来选择的省电方式——空闲工作方式和掉电工作方式。
寄存器PCON(电源控制寄存器)中PD(PCON.1)和IDL(PCON.0)位来控制。
SMOD | GF1 | GF0 | PD | IDL |
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个位。
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寄存器
IE1 | IT1 | IE0 | IT0 | ||||
外部中断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 #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; //进入空闲模式 } }
上一篇:玖:中断系统的原理与应用
下一篇:壹拾壹:音乐实验
推荐阅读最新更新时间:2024-11-10 08:15