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,电路原理图如下所示
基于proteus的51单片机仿真实例七十三、3-8译码器74HC138应用实例
4、将ex61.hex文件载入at89c51中,启动仿真,按动拨码开关,观察运行结果。下图是某一时刻程序运行结果。
基于proteus的51单片机仿真实例七十三、3-8译码器74HC138应用实例

相关文章: