集成电路中真正单片化的单片机解析方案
3 在线改变CPU的时钟频率以降低功力量的C语言程序举例
CPU在不需要高速运行时,可设置在较低的时钟频率下工作,在运行过程中可根据需要在线改变CPU的时钟频率。下面是一个通过按键产生外部中断信号改变NCE单片机μPD780058的CPU时钟频率的程序,它使CPU在主、副时钟切换运行。通过I/O口P6的位0引脚连接1个LED小灯,每按下一次按键就使CPU的时钟频率改变。在主时钟和副时钟频率下工作时,用同样的软件延时程序控制小灯点亮的时间,以此观察CPU的运行速度。
程序清单:
//**************宏定义**************
#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; //定义主、副时钟切换标志
评论