高手们,简单又绕人的3步逻辑,要用51单片机实现,如何...

2020-02-03 10:13发布

本帖最后由 sunoracle 于 2012-10-9 08:36 编辑

untitled.JPG (82.06 KB, 下载次数: 0) 下载附件 2012-10-9 08:17 上传

(1)单片机的一个io口 收到一个低电频,就使能Y轴的脉冲计数。
(2)Y轴向的脉冲输入中断P3^2。当脉冲计数等于1000个时。使能X轴向的脉冲中断计数。
(3)X轴向的脉冲输入中断P3^3。当这个X轴向的脉冲停止2秒后,给其中一个IO口一个低电平。

请问用C语言如何写?

伪代码:
(1) if(0 == P1.0) then EX0 = 1;// 如果io口 收到一个低电频,就使能Y轴的脉冲计数。Y相脉冲和P3^2连。
(2) Ex0_interrupt interrupt 0  
                 if ( 1000 == count)   
                     then EX1 = 1;   // Y轴向的脉冲输入数量等于1000时。使能X轴向的脉冲计数中断。 X相脉冲和P3^3连。
(3) EX1_interrupt interrupt 2
                 enable TR0 = 1; //使用计时器是否为计算2秒钟。
(4) time_calculate interrupt 1
                 ++timecount; // 每次中断50ms。
                 if (40 == timeCount)  //如果最后一个跳变脉冲后,计时器达到40次,40*50ms=2s,就使一个IO口输出低电平。
             P1.1 = 0;
           这样写的难点是如何让每次X轴脉冲跳变之后,都能初始化timecount为0呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。