请教红外对管计数的C语言程序

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:39:17
我们准备做一个用两个红外对管统计教室的人数系统。通过两个红外管被遮挡的先后顺序判断进人和出人。两个红外对管输出接51单片机的外部中断,两个红外管距离10厘米左右,接收与发射管距离大约20厘米。请求有达人能提供用中断实现的C语言程序。我的邮箱是star543@qq.com,不甚感激!

//思路主要是red1对外面的红外计数,red2对里面的红外计数,通过比较
//二者大小可以知道是进人还是出人,另外要是有人站了一下又出去,
//red1就会比red2大2,可以判断出教室里人数没变。

#include<reg51.h>
int renshu;//教室里人数
int red1;//计数
int red2;//计数

int0()
{
red1++;
}

int1()
{
if(red1==red2+1){renshu++;}
elseif(red1==red2-1){renshu--;}
elseif(red1=red2+2){red1=red1-2;}
elseif(red1=red2-2){red2=red2-2;renshu--;}
else{;}
red2++;
}

main()
{
red1=0;red2=0;renshu=0;
while(1)//在这里你可以添加显示程序什么的
{
;
}

}
//程序没调试,不过思路应该没问题,你把格式再规范话一下,没带书,关于中断的格式我忘了

你好 我想问下 你最后实现了你的目的了没 我目前也在做类似这个的东东 想要参考你最后的程序 能否告知一下 感激不尽啊 这个问题偶琢磨了好久

寒~做这个的人真的不少……
劝你一句,不是作业的话就不要费尽了
多个人同时进和这个人在门那晃一下就又出去了的问题呢解决不了,没有实际应用的可能(当然能解决,不过保证准确定的话会异常繁琐)
呵呵

祝你有新的好点子~
有其他问题可以用百度HI找我,我经常在线