計(jì)數(shù)器模塊的作用是對兩個(gè)端口模塊進(jìn)行輪詢,使兩個(gè)端口模塊能夠依次啟動(dòng),并最終讓存儲模塊依次接收到溫度,濕度以及氣壓的數(shù)據(jù)。
具體方法為:計(jì)數(shù)器模塊內(nèi)部是一個(gè) 0 到 150 循環(huán)計(jì)數(shù)的計(jì)數(shù)器。計(jì)數(shù)器接收輸入的時(shí)鐘信號,使計(jì)數(shù)器在時(shí)鐘上升沿到來時(shí)啟動(dòng)一次。
當(dāng) N=1 時(shí),計(jì)數(shù)器向溫濕度端口模塊發(fā)送啟動(dòng)溫度檢測的指令。接下來計(jì)數(shù)器開始計(jì)數(shù),即 N 開始自加。
在 1《=N《50 的時(shí)間里,計(jì)數(shù)器無任何新指令,這是給溫濕度端口模塊充足的時(shí)間,使其能完成其內(nèi)部功能(既接對溫濕度傳感器發(fā)送溫度檢測指令,收溫濕度傳感器發(fā)送的溫度數(shù)據(jù),并將其傳送給存儲模塊)。
類似于溫度指令的處理方法,在 N=50 時(shí)計(jì)數(shù)器 向溫濕度端口模塊發(fā)送濕度檢測指令,并在 50
在 N=151 時(shí),溫度,濕度以及氣壓的測量數(shù)據(jù) 都已經(jīng)存儲在儲存模塊當(dāng)中了,這時(shí)將 N 置 0,開始新一輪的輪詢。
相關(guān)程序?yàn)椋?/p>
entity count is
Port ( clk1 : in STD_LOGIC;
com1 : out STD_LOGIC_VECTOR (1 downto 0); --向溫濕度接口模
--塊發(fā)送啟動(dòng)指令的端口
com2 : out STD_LOGIC); --向氣壓接口模塊發(fā)送啟動(dòng)指令的端口
end count;
architecture Behavioral of count is
begin
process(clk1)
variable n:integer range 0 to 200:=0;
begin
if(rising_edge(clk1))then
if(n=151)then
n:=0; --在 n=151 時(shí)將 N 置 0,開始新一次的輪詢
com1《=“11”;
com2《=‘1’;
else n:=n+1;
end if;
if(n=1)then --在 n=1 時(shí),發(fā)送溫度檢測指令
com1《=“01”;
com2《=‘1’;
--等待,保證端口功能的實(shí)現(xiàn)
elsif(n=50)then --發(fā)送濕度檢測指令
com1《=“10”;
com2《=‘1’;
--等待,保證端口功能的實(shí)現(xiàn)
elsif(n=100)then --發(fā)送氣壓檢測指令
com1《=“11”;
com2《=‘0’;
--等待,保證端口功能的實(shí)現(xiàn)
end if;
end if;
end process;
end Behavioral;
電子發(fā)燒友App











評論