找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助!单片机中断计数的问题

[复制链接]
跳转到指定楼层
楼主
本帖最后由 asyxl 于 2017-8-29 15:02 编辑

利用两个按键模拟传感器计数为a和b,当a大于b是亮一个灯,a等于b时亮另一个灯。
道理我懂,但是为什么程序写出来后仿真却不计数呢?请各位大神帮忙看一下

  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit out1=P1^0;
  5. sbit out2=P1^1;
  6. uint a=0,b=0;
  7. void delay(uchar c)
  8. {
  9. uchar i;
  10. while(c--)for(i=0;i<120;i++);
  11. }
  12. void t0isr() interrupt 1
  13. {
  14. a++;
  15. }
  16. void t1isr() interrupt 3
  17. {
  18. b++;
  19. }
  20. main()
  21. {
  22. TMOD=0x66;
  23. ET0=1;
  24. ET1=1;
  25. TR1=1;
  26. TR0=1;
  27. EA=1;
  28. OUT=1;
  29. while(1)
  30. {
  31. if(a>b)out1=0;
  32. if(a==b)
  33. {
  34. delay(200);
  35. out2=0;
  36. }
  37. }}
复制代码


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

使用道具 举报

沙发
ID:89515 发表于 2017-8-29 08:55 | 只看该作者
你确定外部中断的入口是对的吗?就算是对的也不对,你这样按下按键就会不停进入中断
回复

使用道具 举报

板凳
ID:111634 发表于 2017-9-19 20:46 | 只看该作者
本帖最后由 zl2168 于 2017-9-20 11:31 编辑

4个口子都可中断计数
给你个参考案例:
试统计某展览会参展人数。已知展览会有4个入口,且均已安装检测探头,每进入一人,能产生一个负脉冲,分别输入P3.2、P3.3、P3.4、P3.5。估计参展人数多于10万,少于1000万,试编程。

Proteus仿真一下,确认有效。
2 统计展览会4个入口参展总人数.rar (49.25 KB, 下载次数: 17)


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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