资源简介
为了降低系统的功耗,我们经常应用到单片机空闲和掉电模式
代码片段和文件信息
/************************************************************************
作者:淋哥电子
说明:开启两个外部中断,设置低电平触发中断,
用定时器计数并且显示在数码管的前两位,当计到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
相关资源
- 80C52单片机最小系统
- 利用51单片机计数器测频率最简程序
- 基于单片机的门禁系统毕业设计
- 单片机课程设计 出租车计费
- 51单片机驱动继电器例程+pretues仿真
- 51单片机A4988驱动源码
- DHT11温湿度 1602显示 89C52单片机
- 51单片机ADC0832_1602 proteus仿真源程序加
- 51单片机ADC0832电压测量液晶1602显示的
- STC89C52单片机最小系统原理图、PCB文件
- 基于通讯的多路开关量控制板的设计
- 单片机 公交车报站系统源程序
- 51单片机 MPU6050读取并通过串口输出
- nrf24L01双向通信程序51单片机
- 12位AD转换器TLC2543与51系列单片机接口
- 基于单片机的多路压力测量仪设计
- 基于单片机的多路数据采集系统的设
- 基于AT89C51单片机的电子计价秤的设计
- pic汇编程序,主要是供初学者学习p
- 51单片机用433M无线模块控制程序
- 单片机数字钟实训报告(完整版)
- 基于AT89S52单片机的数字温度计
- 基于DSP单片机的多功能汽车防撞雷达
- dspic单片机电机控制
- USB调试助手(单片机多功能调试助手
- at89c51单片机开发板原理图
- 51单片机可显示频谱电子琴
- 大气压强传感器BMP280单片机程序
- 基于51单片机的modbus rtu 通信测试程序
- 51单片机交通灯汇编程序
评论
共有 条评论