單片機(jī)+CPLD在電子設(shè)計(jì)中的應(yīng)用
單片機(jī)程序
sdosend:
setb clk
setb end
mov r7,#06h
ssend:
rrc a
mov send,c
nop
nop
clr clk
nop
nop
setb clk
djnz r7,ssend
nop
nop
clr end
nop
nop
setb end
ret
VHDL 語言程序
Library ieee;
Use ieee.STd_logic_1164.all;
Entity pldse1 is
Port
(
so,clk,send :in std_logic
);
end pldse1;
architecture io1 of pldse 1 is
begin
process(cs)
begin
if(cs='0')then
casep qout is
when "000000"=>
when "000001"=>
when "000010"=>
··················
when "000100"=>
when "000101"=>
when others=>null;
end case;
else null;
end if;
end procESS;
process(clk)
begin
if(clk'event and clk='0')then
qout=data qout(5 downto 1)
else null;
end if;
end process;
end io 1;
通過程序單片機(jī)/CPLD可以看出,利用CLK和SEND線發(fā)送控制信號(hào);利用END作為結(jié)束位,無論什么情況,如果沒有結(jié)束位的下降沿脈沖,PLD的輸出端口不會(huì)改變,這樣可確保輸出信號(hào)的穩(wěn)定。這種輸出鎖存使單片機(jī)在死機(jī)復(fù)位時(shí)依然不影響繼電器原輸出。PLD在接收到單片機(jī)的控制信號(hào)后首先暫存,直到收到END的下降沿脈沖時(shí)再把數(shù)據(jù)輸出,作出相應(yīng)的置高低電平的動(dòng)作。
由上述設(shè)計(jì)可以看出,單片機(jī)和PLD在使用上有很強(qiáng)的互補(bǔ)性:在邏輯運(yùn)算、智能控制方面,單片機(jī)具有不可替代的優(yōu)越性;而在高速穩(wěn)定等方面,PLD無疑是首選。因此,在目前的電子設(shè)計(jì)中,充分利用單片機(jī)+PLD結(jié)構(gòu)將起到事半功倍的效果。
評(píng)論