找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4309|回复: 0
打印 上一主题 下一主题
收起左侧

用单片机外中断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. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表