资源简介
为了降低系统的功耗,我们经常应用到单片机空闲和掉电模式

代码片段和文件信息
/************************************************************************
作者:淋哥电子
说明:开启两个外部中断,设置低电平触发中断,
用定时器计数并且显示在数码管的前两位,当计到5时,
使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,
从空闲(休眠)模式返回,同时开启定时器
************************************************************************/
/*************头文件专区*************/
#include //单片机52头文件存放着单片机的寄存器
/*************宏定义专区*************/
#define uint unsigned int
#define uchar unsigned char
/*************变量定义专区*************/
uchar code table0[16]={0xc00xf90xa40xb00x990x920x820xf80x800x900x880x830xc60xa10x860x8e}; //数码管字型码
uchar code table1[6]={0xf80xf40xec0xdc0xbc0x7c}; //位选数码管数组
uchar num;//定时计数
/*************函数申明专区*************/
void delay_ms(uint z); //1ms延时
void timer0_init(void); //定时器初始化函数
void EX_init(void); //外部中断初始化函数
void display(uchar shiuchar ge); //数码管显示
/********************************
*函数名称:main
*输入:无
*输出:无
*功能说明:主函数
*********************************/
void main(void)
{
uchar num1ab; //定义局部变量
timer0_init(); //定时器初始化
EX_init(); //外部中断初始化
EA=1; //开总中断
while(1)
{
if(++num>=100)
{
num=0;
num1++;
if(num1==6)
{
ET0=0; //关定时器
PCON=0X02; //PD=1进入掉电模式
//或 PCON=0X01;//IDL=1,进入空闲模式
}
a=num1/10; //十位
b=num1%10; //个位
}
display(ab); //显示
}
}
/********************************
*函数名称:delay_ms
*输入:uint z延时时间
*输出:无
*功能说明:毫秒级延时
*********************************/
void delay_ms(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/********************************
*函数名称:display
*输入:shi 十位,ge 个位
*输出:无
*功能说明:数码管显示计数值
*********************************/
void display(uchar shiuchar ge)
{
P2=table1[1]; //显示位
P0=table0[shi]; //显示百位
delay_ms(3);
P2=table1[0]; //显示位
P0=table0[ge]; //显示百位
delay_ms(3);
}
/********************************
*函数名称:time0_int
*输入:无
*输出:无
*功能说明:定时器0初始化,50ms
*********************************/
void timer0_init(void)
{
TMOD=0X01; //定时器工作方式设置为,定时器0,方式1
TH0=(65536-50000)/256; //计数寄存器高8位
TL0=(65536-50000)%256; //计数寄存器低8位
TR0=1; //开启定时器0运行
ET0=1; //开定时器0中断
}
/********************************
*函数名称:EX_init
*输入:无
*输出:无
*功能说明:外部中断初始化
*********************************/
void EX_init(void)
{
EX0=1; //开外部中断0
EX1=1; //开外部中断1
}
/********************************
*函数名称:EX0_IRQ
*输入:无
*输出:无
*功能说明:外部中断0中断服务程序
*********************************/
void EX0_IRQ(void) interrupt 0
{
PCON=0;//清除之前的掉电(空闲)模式
ET0=1; //开定时器0
}
/********************************
*函数名称:EX1_IRQ
*输入:无
*输出:无
*功能说明:外部中断1中断服务程序
*********************************/
void EX1_IRQ(void) interrupt 2
{
PCON=0; //清除之前的掉电(空闲)模式
ET0=1; //开定时器0
}
/********************************
*函数名称:Time0_IRQ
*输入:无
*输出:无
*功能说明:定时器0中断服务程序
*********************************/
void Time0_IRQ(void) interrupt 1
{
TH0=(65536-50000)/256; //计数寄存器高8位重载
TL0=(65536-50000)%256; //计数寄存器低8位
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 38400 2010-03-16 22:04 空闲与掉电\51单片机空闲和掉电模式应用.doc
文件 5255 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down
文件 3577 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down.c
文件 735 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down.hex
文件 68 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down.lnp
文件 7360 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down.LST
文件 9548 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down.M51
文件 5574 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\Power-down.OBJ
文件 3637 2010-03-16 20:48 空闲与掉电\空闲与掉电—程序\Power-down.plg
文件 0 2010-03-16 20:48 空闲与掉电\空闲与掉电—程序\Power-down.uv2
文件 6376 2005-03-22 15:22 空闲与掉电\空闲与掉电—程序\STARTUP.A51
文件 14048 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\STARTUP.LST
文件 758 2010-03-16 22:01 空闲与掉电\空闲与掉电—程序\STARTUP.OBJ
目录 0 2010-03-16 22:10 空闲与掉电\空闲与掉电—程序
目录 0 2010-04-23 12:07 空闲与掉电
----------- --------- ---------- ----- ----
95336 15
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论