如何用单片机普通I/O口检测上升沿或下降沿
2个回答
展开全部
您是问硬件的方式?还是软件的方式?
如果是硬件的方式,那么,各种单片机很不相同,需要具体看它的资料。
一般来说,某些引脚,例如:外中断引脚、定时器的计数触发引脚、捕获引脚等等,都可以用来检测上升沿与下降沿。
以捕获(有的单片机资料如80196,将它称作“高速输入”)引脚为例:
捕获引脚可以与某个定时器相关联,在捕获引脚上遇到上升沿或下降沿时,硬件就自动记录下当时定时器的读数,并产生中断请求。您可以在中断服务程序中做所需的相应操作。
至于是上升沿捕获,还是下降沿捕获,还是二者都能捕获,可以由用户自己选择配置。
如果是用软件的方式来检测,那道理就简单了。用查询方式:只要将要检测的信号接到某个输入端口的某个位,在程序中反复读取该位的输入,一旦遇到“上次是0此次是1”的情况,就说明检测到了上升沿,遇到“上次是1此次是0”的情况,就说明检测到了下降沿。
如果是硬件的方式,那么,各种单片机很不相同,需要具体看它的资料。
一般来说,某些引脚,例如:外中断引脚、定时器的计数触发引脚、捕获引脚等等,都可以用来检测上升沿与下降沿。
以捕获(有的单片机资料如80196,将它称作“高速输入”)引脚为例:
捕获引脚可以与某个定时器相关联,在捕获引脚上遇到上升沿或下降沿时,硬件就自动记录下当时定时器的读数,并产生中断请求。您可以在中断服务程序中做所需的相应操作。
至于是上升沿捕获,还是下降沿捕获,还是二者都能捕获,可以由用户自己选择配置。
如果是用软件的方式来检测,那道理就简单了。用查询方式:只要将要检测的信号接到某个输入端口的某个位,在程序中反复读取该位的输入,一旦遇到“上次是0此次是1”的情况,就说明检测到了上升沿,遇到“上次是1此次是0”的情况,就说明检测到了下降沿。
厦门鲎试剂生物科技股份有限公司
2023-08-01 广告
2023-08-01 广告
计算过程如下:首先,计算4个数值的和:∑Xs = 0.3 + 0.2 + 0.4 + 0.1 = 1然后,计算 lg-1(∑Xs/4):lg-1(∑Xs/4) = lg-1(1/4) = -1其中,lg表示以10为底的对数,即 log10。...
点击进入详情页
本回答由厦门鲎试剂生物科技股份有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |