單片機+CPLD結構體系在電子設計中的應用
單片機程序
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;
通過程序單片機/CPLD可以看出,利用CLK和SEND線發(fā)送控制信號;利用END作為結束位,無論什么情況,如果沒有結束位的下降沿脈沖,PLD的輸出端口不會改變,這樣可確保輸出信號的穩(wěn)定。這種輸出鎖存使單片機在死機復位時依然不影響繼電器原輸出。PLD在接收到單片機的控制信號后首先暫存,直到收到END的下降沿脈沖時再把數(shù)據(jù)輸出,作出相應的置高低電平的動作。
由上述設計可以看出,單片機和PLD在使用上有很強的互補性:在邏輯運算、智能控制方面,單片機具有不可替代的優(yōu)越性;而在高速穩(wěn)定等方面,PLD無疑是首選。因此,在目前的電子設計中,充分利用單片機+PLD結構將起到事半功倍的效果。
評論