一、 介绍
普通的微处理器(例如单片机)对数字量输入信号的处理一般采用扫描轮询和中断处理的方式。采用扫描轮询的方式很大程序上取决于单片机的扫描周期,只有执行完一个while循环之后才会进行下一次读输入口状态的操作,可能会造成信号遗漏或者延时采集。采用中断处理的方式是比较好一点的选择,一旦有外部中断信号输入就能触发中断程序,但是一般单片机只有2个外部中断接口,例如普通的51单片机。假如多于2个探头的信号需要及时处理,单片机就显得力不从心。本文利用逻辑门芯片扩展单片机外部中断口,达到缩短单片机IO口识别时间的目的。
>>更多精彩,欢迎关注微信公众号“永珂在线”
>>控制器、工控自动化、电路板、仪器、软件、APP开发定制,业务QQ2531263726
二、 一种解决方法
如图1所示,假设有两个探头需要被单片机及时采集信号,而单片机只有一个外部中断接口,有多个普通IO口。这时单片机外部中断口就不够用,假如使用普通IO口又有可能造成外部信号漏采或者延时。
一个比较可行的方法如图1 所示,将探头1和探头2的输出信号分为两路,一路接入逻辑门芯片(与门或者或门等芯片),另一路接入单片机的普通IO口。逻辑门芯片的输出接入单片机的外部中断接口。
接下来在程序中进行这样的处理:根据探头1、2的变化规律选择合适的逻辑门芯片,保证探头1或者探头2任意一个电平发生变化,都会导致逻辑门芯片输出的变化会触发单片机外部中断。一旦触发外部中断,接着在外部中断程序中读取并识别连接探头1、2的普通IO口的状态,并执行对应的处理程序。这样就大大缩短了单片机识别多个探头信号变化的时间,达到类似扩展外部中断的目的。
更多输入信号的处理方式以此类推。
|