51单片机:74LS138译码实验

一、实验内容

通过单片机P1.2P1.0控制74LS138译码器的使能及译码输入端口,控制其译码输出端口(Y7Y0)。
(74LS138译码单元C、B、A分别连接P1.2、P1.1、P1.0。)
把译码输出端口Y7Y0连接到L7L0八位LED电平指示输入端口,验证74LS138的逻辑译码功能。
二、仿真图

三、代码
C语言实现:

在这里插入代码片
```#include <reg52.h>
#include <intrins.h>

void delay1s(void);
	
void main()
{
  char num;
	while(1)
	{
	for(num=0;num<8;num++)
		{
		P1=num;
		delay1s();
		}
	}
}

void delay1s(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_();  //if Keil,require use intrins.h
}


汇编实现:

```c
		ORG 0000H
        LJMP START
        ORG 0030H
START:  MOV SP, #60H
ST1:    CLR A		 ;累加器清零
LOOP:   MOV P1,A
        CALL DELAY1S
        INC A
        JNB ACC.3,LOOP	;ACC.3=1时 向下执行
        SJMP  ST1
		
DELAY1S:   ;误差 0us
        MOV R7,#0A7H
DL1:
        MOV R6,#0ABH
DL0:
	    MOV R5,#10H
	    DJNZ R5,$
	    DJNZ R6,DL0
	    DJNZ R7,DL1
	    NOP
	    RET