51单片机 74LS148扩展中断+ Proteus仿真

51单片机 74LS148扩展中断+ Proteus仿真


  • 🎬Proteus仿真
    在这里插入图片描述

  • 🔖74LS148:8 线-3 线优先编码器

74LS148是带有扩展功能的8-3线优先编码器,它有8个信号输入端,3个二进制码输出端,一个输入使能端,一个选通输出端和一个扩展端。

在这里插入图片描述

  • 0-7 编码输入端(低电平有效)
  • EI 选通输入端(低电平有效)
  • A0、A1、A2 三位二进制编码输出信号即编码 输 出 端(低电平有效)
  • GS 片优先编码输出端即宽展端(低电平有效)
  • EO 选通输出端,即使能输出端.

📓中断扩展实现

74LS148GS引脚,接到单片机的外部中断引脚上。

📝程序代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit LED = P1^0;
void EX\_INT0() interrupt 0
{
uchar bi = P2 & 0x07;//获取P2端口低3位:P20 - P22 数据
// P0 = \_cror\_(0x7f,bi); //右移
P0 ^=1<< bi; //与上面的等价,可以不用包含一个头文件intrins.h
}

void main()
{
uint i;
IE = 0x81;
IT0 = 0;//set INT0 int type (1:下降沿触发 0:低电平触发)
while(1)
{
LED = !LED;
for(i=0;i<30000;i++);
if(INT0 == 1)
P0 = 0xff;
}
}

📚程序源码和仿真资源

1
2
3
链接:https://pan.baidu.com/s/1dEhv7Mop5FSWQsor\_aRchQ 
提取码:4cud


宝剑锋从磨砺出,梅花香自苦寒来。