通用I/O数字输入接口设计

1940天前 · AVR单片机 · 318次阅读

通用I/O数字输入接口设计

I/O输入接口硬件设计要点

根据系统外围电路输入的电信号形式,可以把输入信号分为以下几种形式。

  • 模拟信号和数字信号

传感器将某个外部参数的变化转换为电信号。如果传感器输出电信号的幅度变化特征代表了外部参数的变化,例如电压的升高/下降表示温度高/低变化,那么这个传感器就是模拟传感器,它产生的是模拟信号。由于MCU是数字化的,因此模拟信号要转换成数字信号才能由MCU处理。这个转换电路称为模/数转换。A/D转换是嵌入式系统重要的外围接口电路之一,用途广泛。在系统硬件设计中,可以选取专用的A/D转换芯片作为模拟传感器与单片机之间的接口,也可以选取片内A/D转换功能的单片机,以简化硬件电路的设计。大多数型号的AVR单片机在片内都集成有A/D接口。

  • 电压信号和电流信号
  • 单次信号和连续信号

I/O输入信号软件设计要点

  • 正确使用AVR的I/O口要注意:先正确设置DDRx方向寄存器,再进行I/O口的读写操作。
  • AVR的I/O口复位后的初始状态全部为输入工作方式,内部上拉电阻无效。因此,外部引脚呈现三态高阻输入状态。
  • 用户程序需要首先对要使用的I/O口进行初始化设置,根据实际需要设定使用I/O口的工作方式(输出还是输入),当设定为输入方式时,还要考虑是否使用内部上拉电阻。
  • 在硬件电路设计时,如果能利用AVR内部I/O口的上拉电阻,则可以节省对外部的上拉电阻。
  • I/O口用于输出时,应设置DDRx = 1或DDRx,n = 1,输出值写入PORTx或PORTx,n中。
  • I/O口用于输入时,应设置DDRx = 0或DDRx,n = 0,读取外部引脚电平时,应读取PINx,n的值,而不是PORTx,n的值,此时PORTx,n = 1表示该I/O内部的上拉电阻有效,而PORTx,n=0表示不使用内部上拉电阻,外部引脚呈现三态高阻输入状态。
  • 一旦将I/O口的工作方式由输出设置成输入方式后,必须等待1个时钟周期后才能正确读到外部引脚PINx,n的值。
👍 0

none

最后修改于1940天前

评论

贴吧 狗头 原神 小黄脸
收起

贴吧

狗头

原神

小黄脸

目录

avatar

未末

迷失

126

文章数

275

评论数

7

分类