當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1 概述日本NEC公司生產(chǎn)的μPD780208系列8位單片機(jī)屬于78K/0家庭中功能較強(qiáng)的一種系列。根據(jù)內(nèi)部集成的ROM和RAM容量的不同,μPD780208系列分為5個(gè)型號(hào),μPD780208芯片是最高型號(hào)。該芯片內(nèi)部集成了8位78K0CPU

1 概述

日本NEC公司生產(chǎn)的μPD780208系列8位單片機(jī)屬于78K/0家庭中功能較強(qiáng)的一種系列。根據(jù)內(nèi)部集成的ROM和RAM容量的不同,μPD780208系列分為5個(gè)型號(hào),μPD780208芯片是最高型號(hào)。該芯片內(nèi)部集成了8位78K0CPU內(nèi)核、60kB的ROM和2192B的RAM之外,還有1個(gè)FIP顯示驅(qū)動(dòng)/控制器、8位A/D轉(zhuǎn)換器、2個(gè)串行I/O口、5個(gè)定時(shí)/計(jì)數(shù)器、3個(gè)定時(shí)器輸出、1個(gè)可編程時(shí)鐘輸出、1個(gè)可編程蜂鳴器輸出、4個(gè)外部中斷源、12個(gè)內(nèi)部中斷源和1個(gè)測(cè)試輸入。ΜPD780208支持雙時(shí)鐘,其電源電壓范圍為2.7~5.5V,可設(shè)定2種待機(jī)模式。其中的FIP(Fluorescent

Indicator Panel)顯示控制/驅(qū)動(dòng)器是μPD780208系列所特有的,它的主要功能有自動(dòng)讀取顯示數(shù)據(jù),以實(shí)現(xiàn)硬件自動(dòng)顯示刷新功能;控制顯示9~40段和2~16位FIP;通過(guò)編程自由設(shè)定位信號(hào)輸出時(shí)序;并可編程調(diào)節(jié)8級(jí)顯示亮度。另外,μPD780208的顯示時(shí)序中還包含有鍵盤掃描時(shí)序,可輸出鍵盤掃描信號(hào);并具有較高的驅(qū)動(dòng)能力,可直接驅(qū)動(dòng)FIP顯示器。

 

本文主要通過(guò)筆者在項(xiàng)目中的實(shí)際應(yīng)用,給出將μPD780208中的FIP顯示控制/驅(qū)動(dòng)器用于顯示和鍵盤掃描結(jié)合的應(yīng)用方案。

2 設(shè)計(jì)方案

在筆者設(shè)計(jì)的項(xiàng)目中,要求μPD780208硬件平臺(tái)有12位的9段VFD顯示器和8×4的鍵盤輸入,如果按照常規(guī)設(shè)計(jì)方案,由于顯示控制與鍵盤掃描控制是相互獨(dú)立的,鍵盤掃描需占有一個(gè)定時(shí)器。而本方案則使用顯示控制/驅(qū)動(dòng)器提供的鍵盤掃描時(shí)序來(lái)掃描鍵盤,因而不占用定時(shí)資源。這使是該設(shè)計(jì)方案的優(yōu)點(diǎn)所在。(系統(tǒng)所用的晶振頻率為4.9152MHz)。

2.1 硬件連接

圖1所示是μPD780208的FIP顯示電路的結(jié)構(gòu)原理圖。應(yīng)用時(shí)將顯示端口FIP0~FIP11接VFD顯示器的位控制器T0~T11,F(xiàn)IP12和P80~P87接VFD顯示器的段控制端S0~S8。μPD780208的顯示驅(qū)動(dòng)器的驅(qū)動(dòng)能力很強(qiáng),因而可以直接連接VFD而無(wú)需驅(qū)動(dòng)電路。端口P110~P117接鍵盤的8根掃描線,端口P120~P123接鍵盤的4根回讀線。

2.2 初始化設(shè)置與資源分配

合理地設(shè)置顯示模式寄存器DSPM0和DSPM1可將顯示方式設(shè)置為12位9段模式,這時(shí)FIP顯示RAM地址為FA60H~FA6BH和FA70H~FA7BH。FIP控制器的時(shí)序圖如圖2所示。圖中n=11,TDSP為1位顯示周期(2048/4.9152MHz=416.7μs),TKS為鍵盤掃描周期(TKS=TDSP),TCYT為完整顯示周期(TCYT=TDSP×(12+1)),TDIG為位信號(hào)脈沖寬度(可編程改變)。

在FIP顯示周期中,當(dāng)處在鍵盤時(shí)序時(shí),鍵盤掃描標(biāo)志KSF被置1,其它時(shí)間被清零。當(dāng)KSF置1時(shí),將產(chǎn)生鍵盤掃描中斷INTKS。在中斷處理程序中進(jìn)行鍵盤掃描和回讀可用軟件來(lái)設(shè)計(jì)。鍵盤掃描必須在KSF為1時(shí)進(jìn)行,否則會(huì)造成顯示混亂。1次INTKS的時(shí)間是416.7μs,這段時(shí)間可能來(lái)不及掃描完所有鍵。因此,該方案采用1次中斷掃描一半鍵盤,2次中斷完成一遍掃描的方式。

鍵盤的消抖動(dòng)問(wèn)題在掃描中解決,方法是當(dāng)同一位置連續(xù)3次檢測(cè)到信號(hào),即在4個(gè)TCYT間隔(4×TCYT=21.667ms)中信號(hào)一直有效時(shí),才判斷該鍵被按下,否則判為抖動(dòng)干擾。

3 軟件設(shè)計(jì)

3.1 相關(guān)的數(shù)據(jù)結(jié)構(gòu)和變量

使用的數(shù)據(jù)結(jié)構(gòu)和變量的定義說(shuō)明如下:

char PreKeyStatus[8]; /*前一次8列鍵的狀態(tài)存入數(shù)組的低4位*/

char CurKeyStatus[8]; /*當(dāng)有8列鍵的狀態(tài)存入數(shù)組的低4位*/

char ScanData; /*當(dāng)前用于掃描的數(shù)據(jù)*/

char RetData; /*臨時(shí)存儲(chǔ)回讀的數(shù)據(jù)*/

 

char KeyBuff[10]; /*鍵盤緩沖區(qū)*/

char Khead; /*鍵盤緩沖區(qū)頭指針*/

char Krear; /*鍵盤緩沖區(qū)尾指針*/

char ChatterCount; /*消抖動(dòng)計(jì)數(shù)器*/

char ScanEnd; /*一遍掃描結(jié)束標(biāo)志*/

char KeyChanged; /*按鍵改變標(biāo)志*/

const char DisplayCode[0][2]; /*0~9的顯示編碼,每個(gè)編碼占2字節(jié)*/

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; /*清除中斷請(qǐng)求標(biāo)志*/

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

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

Krear=0; /*消抖動(dòng)計(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相對(duì)應(yīng)。

void DisplayDigit(char digit,char position)

{if((digit<10)&&(digit>=0)&&(position>=0)&&(position<12)

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

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

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

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

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

}

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

 

center>

 

4 小結(jié)

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉