新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 集成電路中真正單片化的單片機(jī)解析方案

集成電路中真正單片化的單片機(jī)解析方案

作者: 時(shí)間:2012-06-19 來源:網(wǎng)絡(luò) 收藏

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)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉