您的位置 首页 分销

stc12c单片机掉电形式

POF:是判断是上电复位还是中断复位和看门狗复位;PD:置1时,进入powerdown模式,可由外部中断低电平触发或下降沿触发中断模式唤醒,也…

POF:是判别是上电复位仍是中止复位和看门狗复位;

PD:置1时,进入power down形式,可由外部中止低电平触发或下降沿触发中止形式唤醒,也可发动掉电唤醒专用定时器唤醒。唤醒引脚有:INT0/P3.2 ,INT1/P3.3 ,INT/T0/P3.4 ,INT/T1/P3.5 ,/INT/RXD/P3.0 …
IDL:置位,进入IDLE形式,除CPU不作业外,其他持续作业,可由任何一个中止唤醒
GF1,GF0:两个通用作业标志位,用户可由恣意运用
SMOD:波特率倍速位,置1,串口通讯波特率快一倍
外部中止唤醒:
#include
uchar temp=0xf0; //指示标志
//外部中止初始化
void InitInterrupt()
{
EX0=1;
IT0=1;
IT1=1;
EX1=1;
EA=1;
}
//延时函数1s
void delay(void) //差错 0us
{
unsigned char a,b,c;
for(c=167;c>0;c–)
for(b=171;b>0;b–)
for(a=86;a>0;a–);
// _nop_; //if Keil,require use intrins.h
}
//主函数
void main()
{

uchar num; //指示变量,用于赋值给p2口
InitInterrupt(); //中止初始化
while(1)
{
num++; //每次睡觉唤醒加1
P2=~num; //用p2口显示出来
PCON=0X02; //进入睡觉形式

}
}
//外部中止0
void inter0() interrupt 0
{
temp=~temp;
P1=temp;
delay();
}
//外部中止1
void inter1() interrupt 1
{
temp=~temp;
P1=temp;
delay();
}
//作业在闲暇形式,能够运用定时器
#include
uchar temp=0xf0; //指示标志
//外部中止初始化
//延时函数1s
void delay(void) //差错 0us
{
unsigned char a,b,c;
for(c=167;c>0;c–)
for(b=171;b>0;b–)
for(a=86;a>0;a–);
// _nop_; //if Keil,require use intrins.h
}
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x4C;
TL0 = 0x00;
EA = 1;
ET0 = 1;
TR0 = 1;
}
//主函数
void main()
{

uchar num; //指示变量,用于赋值给p2口
InitTimer0();
while(1)
{
num++; //每次睡觉唤醒加1
P2=~num; //用p2口显示出来
PCON=0X01; //进入睡觉形式

}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x4C;
TL0 = 0x00;
temp=~temp;
P1=temp;
delay();
//add your code here!
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/252420.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部