PLD的PROTEUS電路仿真
圖4 16V8元件屬性由前面PLD的設計可得3-8譯碼器的真值表:輸入信號輸出信號I3 I2 I1 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1表1 3-8譯碼器真值表為了觀(guān)察16V8的輸入與輸出的對應關(guān)系,我們在A(yíng)T89C52的程序(程序見(jiàn)附錄)中將與I3、I2、I1相連的P2_2、P2_1、P2_0三個(gè)端口按真值表中的順序依次改變,觀(guān)察LED燈是否由IO0至IO7依附點(diǎn)亮。
將單片機的程序加入AT89C52后,在Proteus中點(diǎn)擊Play鍵觀(guān)看電路仿真結果:當輸入端的I1、I2、I3值按程序設定按真值表中的000—111依附改變時(shí),輸出端對應LED燈按真值表中的對應關(guān)系由IO0至IO7依次點(diǎn)亮,如下圖。說(shuō)明PLD器件16V8設計的三八譯碼器譯碼正確。

圖5譯碼電路對應輸入/輸出截圖
4.結語(yǔ)
單片機與PLD的結合是當前嵌入式設計經(jīng)常采用一的種方式。但如果要進(jìn)行硬件電路測試和系統調試則比較麻煩,因為要進(jìn)行這兩個(gè)過(guò)程必須在電路板制作完成、元器件焊接完畢之后進(jìn)行。而電路板的制作、元器件的安裝、焊接是費時(shí)費力的,如果采用作為單片機系統的仿真工具PROTEUS進(jìn)行單片機和PLD的仿真,則不用制作具體的電路板也能夠完成以上工作。在使用PROTEUS運行系統虛擬開(kāi)發(fā)成功之后再進(jìn)行實(shí)際制作,可以直觀(guān)得觀(guān)察電路的運行情況,提前發(fā)現設計的錯誤,可以極大的提高開(kāi)發(fā)效率、降低開(kāi)發(fā)成本、提高開(kāi)發(fā)速度。
程序附錄:
#include sbit P2_0=P2^0;sbit P2_1=P2^1;sbit P2_2=P2^2;
void delaytime(int count);void main(void)
{ while(1)
{ P2_2=0;P2_1=0;P2_0=0;delaytime(500);P2_2=0;P2_1=0;P2_0=1;delaytime(500);P2_2=0;P2_1=1;P2_0=0;delaytime(500);P2_2=0;P2_1=1;P2_0=1;delaytime(500);P2_2=1;P2_1=0;P2_0=0;delaytime(500);P2_2=1;P2_1=0;P2_0=1;delaytime(500);P2_2=1;P2_1=1;P2_0=0;delaytime(500);P2_2=1;P2_1=1;P2_0=1;delaytime(500);
}
void delaytime(int count)
{
int j,k;
while(count-- !=0)
{
for(j=0;j10;j++)
for(k=0;k72;k++)
;
}
}
評論