新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > NEC單片機(jī)的FIP應(yīng)用

NEC單片機(jī)的FIP應(yīng)用

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

3.2 程序初始化

進(jìn)行顯示方式設(shè)置、I/O端口設(shè)置、中斷系統(tǒng)設(shè)置始化的具體程序段如下:

DI(); /*關(guān)中斷*/

DSPM0=0x00; /*9段顯示,段顯示方式,系統(tǒng)時(shí)鐘4.9152MHz*/

DSPM1=0xB3; /*23位顯示,亮度為2/16,顯示周期為416.7μs*/

PM12=0x0F; /*P12端口的低四位用于鍵盤回讀,設(shè)為輸出模式*/

KSIF=0; /*清除中斷請求標(biāo)志*/

KSMK=0; /*清除中斷屏蔽標(biāo)志,允許INTKS中斷*/

Khead=9; /*初始化鍵盤緩沖區(qū)*/

Krear=0; /*消抖動計(jì)數(shù)器置初值*/

Scandata=0x01; /*鍵盤掃描數(shù)據(jù)置初值*/

ScanFinish=0; /*一遍掃描結(jié)束標(biāo)志置初值*/

KeyChanged=0; /*按鍵改變標(biāo)志置初值*/

EI(); /*開中斷*/

3.3 顯示程序

下面的程序可實(shí)現(xiàn)在指定位置顯示一個(gè)數(shù)字的功能。其中能數(shù)digit為要顯示的數(shù)字,范圍是0~9;position為顯示位置,從右向左與0~11相對應(yīng)。

void DisplayDigit(char digit,char position)

{if((digit10)(digit>=0)(position>=0)(position12)

/*在顯示范圍之內(nèi)*/

{pokeb(0xFA60+position,DisplayCode[digit][1]);

/*編碼的低字節(jié)*/

{pokeb(0xFA70+position,DisplayCode[digit][0])};

/*編碼的高字節(jié)*/

}

中斷處理程序流程如圖3所示。

4 小結(jié)

在其他系統(tǒng)中,通常由軟件定時(shí)中斷來逐位刷新顯示和掃描鍵盤,這樣將增加軟件的復(fù)雜性,并且會占用較多的CPU資源。而μPD780208所具有的顯示控制/驅(qū)動器可實(shí)現(xiàn)硬件的自動顯示刷新功能,在初始位置完成后,軟件的工作只是將顯示數(shù)據(jù)按要求的格式放入顯示RAM區(qū)而無需額外編程,由于定時(shí)刷新顯示的作由硬件完成,因此在很大程序上降低了CPU的資源占用率。同時(shí),由于顯示時(shí)序中提供有鍵盤掃描時(shí)序,從而進(jìn)一步簡化了軟件編程,并且減少了定時(shí)中斷占用。這樣,在的資源并不豐富的資源條件下,F(xiàn)IP顯示控制/驅(qū)動器的優(yōu)越性得到了充分體現(xiàn)。

蜂鳴器相關(guān)文章:蜂鳴器原理

上一頁 1 2 下一頁

關(guān)鍵詞: 應(yīng)用 FIP 單片機(jī) NEC

評論


相關(guān)推薦

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

關(guān)閉