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>
#include <reg51.h>
//延时函数
void delayms(unsigned int x)
{
unsigned char i;
while(x--)
{
for(i = 0;i < 120;i++);
}
}
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);
}
}
void main(void)
{
P2 = 0x00; //
while(1)
{
P2 = (P2 + 1) % 8; //输出3位码
delayms(500);
}
}
3、在proteus中新建仿真文件ex61.dsn,电路原理图如下所示
4、将ex61.hex文件载入at89c51中,启动仿真,按动拨码开关,观察运行结果。下图是某一时刻程序运行结果。