标题: 用单片机外中断INT0的中断测量外部负脉冲宽度 [打印本页]

作者: yangxing    时间: 2017-6-4 23:39
标题: 用单片机外中断INT0的中断测量外部负脉冲宽度
下面是原理图:


提供2个单片机的程序

单片机源程序:
1.产生负脉冲的程序设计
  1. #include <reg51.h>
  2. sbit u = P1^4;
  3. void main(void)
  4. {
  5. TMOD = 0x02;
  6. EA = 1;
  7. ET0 = 1;
  8. TH0 = 256 - 200;
  9. TL0 = 256 - 200;
  10. TR0 = 1;
  11. while(1)
  12. ;
  13. }
  14. void Time0(void) interrupt 1 using 0
  15. {
  16. u = ~ u;
  17. }
复制代码


2.测量负脉冲宽度的程序设计

  1. #include <reg51.h>
  2. sbit u = P3^2;
  3. void main(void)
  4. {
  5. TMOD = 0x02;
  6. EA = 1;
  7. EX0 = 1;
  8. IT0 = 1;
  9. ET0 = 1;
  10. TH0 = 0;
  11. TL0 = 0;
  12. TR0 = 0;
  13. while(1)
  14.   ;
  15. }
  16. void int0(void) interrupt 0 using 0
  17. {
  18. TR0 = 1;
  19. TL0 = 0;
  20. while(u == 0)
  21.   ;
  22. P0 = TL0;
  23. TR0 = 0;
  24. }
复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1