1、本例在單片機的P2端口的低三位(P2.0-P2.2)上連接3-8譯碼器74HC138的3線輸入端,然後在8線輸出端連接8個LED,通過譯碼器控制8個LED循環點亮。
具體操作需要參照74HC138的真值表來進行。
2、在keil c51中新建工程ex61,編寫如下程序代碼,編譯並生成ex61.hex文件
// 3-8譯碼器74HC138應用實例
#include <reg51.h>
//延時函數
void delayms(unsigned int x)
{
unsigned char i;
while(x--)
{
for(i = 0;i < 120;i++);
}
}
//主函數
void main(void)
{
P2 = 0x00; //
while(1)
{
P2 = (P2 + 1) % 8; //輸出3位碼
delayms(500);
}
}
3、在proteus中新建仿真文件ex61.dsn,電路原理圖如下所示
4、將ex61.hex文件載入at89c51中,啓動仿真,按動撥碼開關,觀察運行結果。下圖是某一時刻程序運行結果。