大众信息网

如何判断52单片机一般的两个io口脉冲的输入先后顺序

关注:184  答案:2  手机版
解决时间 2021-02-26 09:13
如何判断52单片机一般的两个io口脉冲的输入先后顺序
最佳答案
通过外部中断INT0及INT1或者现在STC有些单片机具有输入捕捉模式,这样就可以判断出那个先输入。
全部回答
io口输出不同占空比的脉冲 #include #define uchar unsigned char #define uint unsigned int sbit key=p2^0; uchar flag,thp,tlp,thc,tlc; uint duty; void delaym(unsigned int n) { unsigned int i,j; for(j=n;j>0;j--) for(i=112;i>0;i--); } void hometime() { switch(flag) { case 0x00 : th0=thp;tl0=tlp;p1=0xff;break; case 0x01 : th0=thc;tl0=tlc;p1=0;break; }; } void timer0() interrupt 1 { flag=!flag; hometime(); } void mcuinti() { tmod=0x01; hometime(); tr0=1; ea=1; et0=1; } void timenum(unsigned int hometime) { unsigned int tram; tram=0xffff-hometime/duty; thc=tram>>8; tlc=tram; tram=0xffff-hometime+(hometime/duty); thp=tram>>8; tlp=tram; } void scan_key() { if(key==0) { delaym(20); if(!key) { tr0=0; duty--; if(duty<1|duty>20) { duty=20; }; timenum(5000); while(!key); tr0=1; }; }; } void main() { duty=20; timenum(5000); mcuinti(); while(1) { scan_key(); }; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!