输入:I/O引脚进入接两个保护二极管,一个接VDD(高于从这个引脚出), 一个接VSS(低于GND从这个引脚进)使输入电压在VDD-VSS之间;进入连接了一个上拉电阻和下拉电阻,控制上拉输入和下拉输入,两个阻值较大,弱拉
施密特触发器:使输入电压高于上限或者低于下限时输出高或者低,在中间状态时不变,避免因为信号波动造成的输出抖动现象
最后写入输入数据寄存器,以及复用功能输入(数字量在其后面,连接到其他需要读取端口的外设上,例如串口等),模拟输入不经过施密特触发器直接接出(模拟量)
输出:数字部分可以由输出数据寄存器(同时控制16个端口且只能整体读写,单独控制某一个端口不影响其他端口用位设置/清除寄存器)或者片上外设控制(复用功能输出),两种控制方式通过数据选择器连接到输出控制部分,之后接到两个MOS管可以设置
推挽:P/N-MOS均有效,数据寄存器为1 时,上管导通下管断开,输出直接接到VDD,输出为高,数据寄存