集成电路中真正单片化的单片机解析方案
**************宏定义**************
#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语言)对单片机进行开发的工具日臻完善。更为快速高效的开发应用提供了良好的条件和环境。低功耗的节能单片机应用系统将会带来很好的社会效益和经济效益
- 基于TI最新多核DSP SoC架构解析(05-12)
- ARM linux解析之压缩内核zImage的启动过程(11-10)
- 基于Xilinx V5的DDR2数据解析功能实现(09-12)
- 网站出现“register_globals must is Off”解析(09-12)
- SAX PULL DOCUMENT解析XML总结(09-12)
- 两起西门子PROFIBUS-DP网络干扰故障解析(09-12)