如何写一个单片机输入上升沿和下降沿的脉冲输出信号的c语言程序

如何写一个单片机输入上升沿和下降沿的脉冲输出信号的c语言程序,第1张

如果是循环中查询的话我一般这样做, 定义一个变量比如keyLastStatus来记录上一次扫描周期的状态

sbit key=P2.0char keyLastStatus=0

keyLastStatus=key //初始化

while (1)

{

if(key==1 &&keyLastStatus!=key) Todo()//上升沿

if(key==0 &&keyLastStatus!=key) Todo()//下降沿

keyLastStatus=key //记录上一次的状态

}

上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。工作原理:SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和清零端,低电平有效。当SD=0且RD=1时,不论输入端D为何种状态。都会使Q=1,Q=0,即触发器置1;当SD=1且RD=0时,触发器的状态为0,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。电路结构 : 该触发器由6个与非门组成,其中G1和G2构成基本RS触发器。工作过程如下:CP=0时,与非门G3和G4封锁,其输出Q3=Q4=1,触发器的状态不变。同时,由于Q3至Q5和Q4至Q6的反馈信号将这两个门打开,因此可接收输入信号D,Q5=D,Q6=Q5=D。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11422496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存