/**************************************************************************************
实验现象:下载程序后,先亮D1灯,很快D1灯后灭D2灯亮,单片机进入睡眠状态,当按键K1按下后
P36口产生下降沿唤醒单片机,然后亮D1灯,很快D1灯后灭D2灯亮,单片机又进入睡眠状态,
接线说明: 1:STC8A单片机-->LED&交通灯模块
P00-->D1
P01-->D2
2:STC8A单片机-->独立按键模块
P36-->K1
注意事项: USB连接线给开发板通电下载程序,STC下载软件中内部IRC时钟选择11.0592MHZ
***************************************************************************************/
#include "STC8.H"
#include "intrins.h"
#define MAIN_Fosc 11059200L //定义主时钟
#define uint16 unsigned int
#define uint8 unsigned char
/**********************
引脚别名定义
***********************/
sbit led1=P0^0; //用IO口P00
sbit led2=P0^1; //用IO口P01
/************* 本地变量声明 **************/
uint16 msecond; //1000ms计数
uint8 SleepDelay; //唤醒后再进入睡眠所延时的时间
#define TRUE 1
/**************************************
功能描述:延时函数
入口参数:uint16 x ,该值为1时,延时1ms
返回值:无
***************************************/
void delay_ms(uint16 x)
{
uint16 j,i;
for(j=0;j<x;j++)
{
for(i=0;i<1100;i++);
}
}
/*******************************************************************************
* 函 数 名 : Int2Init()
* 函数功能 : 设置外部中断2
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Int2Init(void)
{
//设置INT2
INTCLKO |= 0x10; //使能INT2中断允许位
EA=1;//打开总中断
}
/***********************
功能描述:主函数
入口参数:无
返回值:无
************************/
int main()
{
P0M1 &= 0xFC; P0M0 &= 0xFC; //设置P00、P01为准双向口
SleepDelay = 0; //唤醒后再进入睡眠所延时的时间初始清零
while(1)
{
delay_ms(1); //延时1ms
if(++msecond >= 1000) //1秒到
{
msecond = 0; //清1000ms计数
led1=0; //点亮D1
led2=1; //熄灭D2
if(++SleepDelay >= 5) //5秒后睡眠
{
SleepDelay = 0;
if(TRUE)
{
SleepDelay = 0;
led1=1; //熄灭D1
led2=0; //点亮D2
Int2Init();
PCON |= 0x02; //Sleep睡眠模式
_nop_();
_nop_();
_nop_();
}
}
}
}
}
/**************************************
功能描述:外部中断服务程序
入口参数:无
返回值:无
***************************************/
void INT2_int() interrupt 10
{
INTCLKO &= 0xEF; //关闭INT2中断允许位
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于STC8A单片机基础实验例程源码之-单片机睡眠唤醒 - 外部中断2(下降沿方式).zip
共8个文件
uvopt:1个
template:1个
m51:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 90 浏览量
2023-11-28
20:44:39
上传
评论
收藏 23KB ZIP 举报
温馨提示
基于STC8A单片机基础实验例程源码之-单片机睡眠唤醒 - 外部中断2(下降沿方式).zip
资源推荐
资源详情
资源评论
收起资源包目录
基于STC8A单片机基础实验例程源码之-单片机睡眠唤醒 - 外部中断2(下降沿方式).zip (8个子文件)
基于STC8A单片机基础实验例程源码之-单片机睡眠唤醒 - 外部中断2(下降沿方式)
template.M51 5KB
template 19KB
template.uvgui.Administrator 132KB
template.uvproj 13KB
template_Target 1.cfg 20B
template.hex 442B
main.c 3KB
template.uvopt 6KB
共 8 条
- 1
资源评论
GJZGRB
- 粉丝: 1380
- 资源: 6168
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功