标题: 求助!单片机中断计数的问题 [打印本页]
作者: asyxl 时间: 2017-8-28 17:35
标题: 求助!单片机中断计数的问题
本帖最后由 asyxl 于 2017-8-29 15:02 编辑
利用两个按键模拟传感器计数为a和b,当a大于b是亮一个灯,a等于b时亮另一个灯。
道理我懂,但是为什么程序写出来后仿真却不计数呢?请各位大神帮忙看一下
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit out1=P1^0;
- sbit out2=P1^1;
- uint a=0,b=0;
- void delay(uchar c)
- {
- uchar i;
- while(c--)for(i=0;i<120;i++);
- }
- void t0isr() interrupt 1
- {
- a++;
- }
- void t1isr() interrupt 3
- {
- b++;
- }
- main()
- {
- TMOD=0x66;
- ET0=1;
- ET1=1;
- TR1=1;
- TR0=1;
- EA=1;
- OUT=1;
- while(1)
- {
- if(a>b)out1=0;
- if(a==b)
- {
- delay(200);
- out2=0;
- }
- }}
复制代码
作者: mengzhixinheng 时间: 2017-8-29 08:55
你确定外部中断的入口是对的吗?就算是对的也不对,你这样按下按键就会不停进入中断
作者: zl2168 时间: 2017-9-19 20:46
本帖最后由 zl2168 于 2017-9-20 11:31 编辑
4个口子都可中断计数
给你个参考案例:试统计某展览会参展人数。已知展览会有4个入口,且均已安装检测探头,每进入一人,能产生一个负脉冲,分别输入P3.2、P3.3、P3.4、P3.5。估计参展人数多于10万,少于1000万,试编程。
先Proteus仿真一下,确认有效。
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版书中电路和程序设计有详细说明,程序语句条条有注解。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |