微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 集成电路中真正单片化的单片机解析方案

集成电路中真正单片化的单片机解析方案

时间:06-19 来源:互联网 点击:

**************宏定义**************

#define PCCMODEM 0x00 //CPU时钟控制寄存器PCC

//定义为选主系统时钟

#define PCCMODES 0xf0 //CPU时钟控制寄存器PCC

//定义为选副系统时钟

#define PORT60 1 /P6口位0赋初值/

#define PORTM600 //P6口位0设为输出

#define INTM0M 0x00 //定义外部中断INTP1的

//中断触发沿为下降沿

//*****单片机内部功能使用的定义*****

#pragma sfr //使用特殊功能寄存器

#pragma HALT //使用HALT功能

#pragma interrupt INTP1 inter RB1 //使用中断功能

#pragma DI //使用关中断功能

#pragma EI //使用开中断功能

//*************变量定义*************

unsigned int b; //定义软件延时计数变量

char msflag; //定义主、副时钟切换标志

//**************主函数**************

void main()

{

PCC=PCCMODEM; //CPU用主系统时钟

P6.0=PORTM60; //P6口的位0赋初值

PM6.0=PORTM60; //P6口的位0为输出

INTM0=INTM0M; //INTP1下降沿触发

PMK1=0; //清除INTP1中断屏蔽

Msflag=0; //选用主副时钟的标志

EI(); //开中断

While(1)

{

if(msflag= =0) //时钟切换标志为0时

msflag=1; //标志变为1

else msflag=0; //否则标志变为0

P6.0=0; //点亮LED灯

b=0; //软件延时的计数值赋初值

while(b=10000)

{

b++; //软件延时(注意系统时钟为)

//主时钟与副时钟延时

//时间的长短是不同的)

}

P6.0=1; //熄灭LED灯

HALT(); //进入HALT状态

}

}

//************中断服务函数************

void inter(void)

{

if(msflag= =0) //若时钟切换标志为0

PCC=PCCMODES; //CPU使用副时钟

Else //否则

PCC=PCCMODEM; //CPU使用主时钟

}

低功耗单片机的应用使电子产品、控制系统更符合当今时钟的要求,达到便携、低功耗和高可靠性。加之用高级语言(如C语言)对单片机进行开发的工具日臻完善。更为快速高效的开发应用提供了良好的条件和环境。低功耗的节能单片机应用系统将会带来很好的社会效益和经济效益

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top