【Proteus仿真】Arduino UNO利用74LS148扩展中断

【Proteus仿真】Arduino UNO利用74LS148扩展中断


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

Arduino UNO硬件上只有2个外部中断引脚12,利用74LS148可以扩展8个外部中断,不过需要额外消耗3个数据引脚,通过中断来实现的功能比传统的端口扫描方式要节省很多CPU开支。如果将2个外部中断都进行扩展,可以扩展出16个外部中断口,而且不需要依赖其他第三方库函数来实现。

AVR操作指令相关知识

  • AVR 单片机的IO口是标准的双向端口,首先要设置IO口的状态,即:输入还是输出。

DDRx寄存器就是AVR单片机的端口方向寄存器,通过设置DDRx可以设置x端口的状态。
DDRx端口方向寄存器相应位设置为1则对应的x端口相应位为输出状态,DDRx端口方向寄存器相应位设置为0则对应的x端口相应位为输入状态。

  • 例如:

DDRA = 0xFF; //设置端口A所有口为输出状态,因为0xFF对应的二进制为11111111b
DDRA = 0x0F //设置端口A高4位为输入状态࿰

猜你喜欢

转载自blog.csdn.net/weixin_42880082/article/details/125531184