齐芯单片机使用中时常碰到IO口不够用的时候,我们会采用IO口复用的方法,将io口同时既作为输入口驱动led灯,同时又作驱动数码管,又将按键也复用下面看下这个图
当我们需要同时点亮led灯,数码管,同时需要判断按键的时候我们就必需合理处理它们之间的关系,在扫描led灯的时候我们可以设定扫描周期为1ms扫描一次,每次扫描led灯的时候,需要初始化led灯的口线状态,扫描完led灯再扫描数码管,设定数码管的扫描周期为3ms,同时需要初始化数码管的口线,为输出模式同时为输出为1。最后是扫描按键,在扫描按键的时候我们设定按键为输入上拉电阻模式。扫描的周期为5ms,由于程序运行时间即短,所以它们之间不会相互影响。
上面的按键公共端接地,连接单片机的这端必需接个10k的上拉电阻,这样按键按下或按键长按的时候不会影响数码管的亮度,或者可以将数码管的公共接地端改为直接接单片机的io口,扫描按键的时候io口输出为0,扫描数码管的时候设定为输入模式,按键按下或长按时,这样不会影响数码管的亮度。