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