新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > CPLD在無功補(bǔ)償控制儀鍵盤設(shè)計中的應(yīng)用

CPLD在無功補(bǔ)償控制儀鍵盤設(shè)計中的應(yīng)用

作者: 時間:2012-08-23 來源:網(wǎng)絡(luò) 收藏

對復(fù)雜可編程邏輯器件()內(nèi)部邏輯功能的描述方式有多種,本系統(tǒng)采用了原理圖輸入與VHDL語言描述相結(jié)合的方式,這樣可以發(fā)揮兩者的優(yōu)勢,加快開發(fā)進(jìn)程。設(shè)計時采用層次化設(shè)計,描述系統(tǒng)總體功能的最上層使用原理圖輸入,而原理圖中的某些功能模塊采用VHDL編寫。實際原理圖如圖2:


圖2 鍵盤邏輯實際原理圖

上圖中Module 1模塊實現(xiàn)分頻功能,CLK來自單片機(jī)80C196KC的CLKOUT腳,其周期為3個時鐘振蕩周期,占空比為33%。若單片機(jī)用16M晶振,其頻率約為:16M/3=5.33M。Module 1 把頻率降至約1K,Module 2模塊以一秒的間隔使O3~O0依次循環(huán)輸出低電平進(jìn)行鍵盤掃描 。當(dāng)有鍵按下時,I3~I(xiàn)0中有一個為低電平,異或門輸出1個高電平脈沖,鎖存鍵盤狀態(tài)并向單片機(jī)申請中斷。系統(tǒng)為鍵盤分配的地址空間為0xf100~0xf1ff,在此范圍內(nèi)可讀取鍵盤的掃描碼。

由于篇幅有限,以下只給出Module 2的VHDL語句,具體如下:

LIBRARY ieee;

USE ieee.STd_logic_1164.ALL;

USE ieee.std_logic_unsigned.ALL;

ENTITY Module2 IS

PORT DD定義端口

( clk :IN std_logic;

q :OUT std_logic_vector(3 DOWNTO 0)

);

END Module2;

ARCHITECTURE Module2 of Module2 IS

BEGIN

PROCESS(clk)

VARIBLE sum:integer:=0; DD定義變量sum,初值為0

BEGIN

IF(clk’event AND clk=’1’)THEN

sum:=sum+1; DDclk為上升沿時,sum加1

IF(sum>=5)THEN

sum:=1;

END IF;

END IF;

CASE sum IS DD根據(jù)sum輸出相應(yīng)的值

WHEN 1 => q=“1110”;

WHEN 2 => q=“1101”;

WHEN 3 => q=“1011”;

WHEN 4 => q=“0111”;

WHEN THERS => q=“1111”;

END CASE;

END PROCESS;

END Module2;



評論


相關(guān)推薦

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

關(guān)閉
×

报名截止时间 12月22日
Let's do--DIY 液体流量检测仪让喝水更有乐趣,快来报名吧!