集成電路中真正單片化的單片機(jī)解析方案
3 在線改變CPU的時(shí)鐘頻率以降低功力量的C語言程序舉例
CPU在不需要高速運(yùn)行時(shí),可設(shè)置在較低的時(shí)鐘頻率下工作,在運(yùn)行過程中可根據(jù)需要在線改變CPU的時(shí)鐘頻率。下面是一個(gè)通過按鍵產(chǎn)生外部中斷信號(hào)改變NCE單片機(jī)μPD780058的CPU時(shí)鐘頻率的程序,它使CPU在主、副時(shí)鐘切換運(yùn)行。通過I/O口P6的位0引腳連接1個(gè)LED小燈,每按下一次按鍵就使CPU的時(shí)鐘頻率改變。在主時(shí)鐘和副時(shí)鐘頻率下工作時(shí),用同樣的軟件延時(shí)程序控制小燈點(diǎn)亮的時(shí)間,以此觀察CPU的運(yùn)行速度。
程序清單:
//**************宏定義**************
#define PCCMODEM 0x00 //CPU時(shí)鐘控制寄存器PCC
//定義為選主系統(tǒng)時(shí)鐘
#define PCCMODES 0xf0 //CPU時(shí)鐘控制寄存器PCC
//定義為選副系統(tǒng)時(shí)鐘
#define PORT60 1 /P6口位0賦初值/
#define PORTM600 //P6口位0設(shè)為輸出
#define INTM0M 0x00 //定義外部中斷INTP1的
//中斷觸發(fā)沿為下降沿
//*****單片機(jī)內(nèi)部功能使用的定義*****
#pragma sfr //使用特殊功能寄存器
#pragma HALT //使用HALT功能
#pragma interrupt INTP1 inter RB1 //使用中斷功能
#pragma DI //使用關(guān)中斷功能
#pragma EI //使用開中斷功能
//*************變量定義*************
unsigned int b; //定義軟件延時(shí)計(jì)數(shù)變量
char msflag; //定義主、副時(shí)鐘切換標(biāo)志
評(píng)論