51单片机用74ls138译码器编写程序
时间: 2023-07-24 12:43:53 浏览: 107
以下是一个简单的51单片机使用74ls138译码器的程序示例:
```
#include <reg51.h>
sbit A0 = P0^0; //定义控制引脚A0
sbit A1 = P0^1; //定义控制引脚A1
sbit A2 = P0^2; //定义控制引脚A2
sbit D0 = P2^0; //定义输出引脚D0
sbit D1 = P2^1; //定义输出引脚D1
sbit D2 = P2^2; //定义输出引脚D2
void main()
{
unsigned char i;
while(1)
{
for(i=0; i<8; i++) //循环输出0-7
{
switch(i)
{
case 0:
A0 = 0;
A1 = 0;
A2 = 0;
break;
case 1:
A0 = 1;
A1 = 0;
A2 = 0;
break;
case 2:
A0 = 0;
A1 = 1;
A2 = 0;
break;
case 3:
A0 = 1;
A1 = 1;
A2 = 0;
break;
case 4:
A0 = 0;
A1 = 0;
A2 = 1;
break;
case 5:
A0 = 1;
A1 = 0;
A2 = 1;
break;
case 6:
A0 = 0;
A1 = 1;
A2 = 1;
break;
case 7:
A0 = 1;
A1 = 1;
A2 = 1;
break;
}
P2 = i; //输出i到P2口
delay(1000); //延时1秒
}
}
}
void delay(unsigned int i) //延时函数
{
unsigned int j, k;
for(j=0; j<i; j++)
for(k=0; k<125; k++);
}
```
在这个程序中,我们使用了P0口的3个引脚作为74ls138译码器的控制引脚,以控制74ls138译码器的输出。我们还使用了P2口的3个引脚作为74ls138译码器的输出引脚,以输出0-7的数字。在程序中,我们使用了一个循环来循环输出0-7的数字,并使用switch语句来根据不同的数字设置控制引脚的状态。最后,我们使用一个delay函数来用于延时,以便我们可以看到数字在不同的输出引脚上输出的效果。