资源简介
基于单片机的红外线计数器,可测量人流量,分为入口和出口,入口进则加一位,出口出则减一位,可设置在场人数上限,达到上限则发出警报。
代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit ru = P1^5; // 红外探头
sbit chu = P1^1;
sbit Buzzer = P1^6; // 蜂鸣器
sbit zt = P1^4; //计数暂停
sbit res =P1^2;
sbit set =P3^3;
sbit LED =P1^0;
sbit led =P1^7;
sbit jian =P3^0;
sbit jia =P3^1;
uchar qianbaishigeset_shi=0set_bai=0set_qian=0;
uint set_ge=5;
uint code table[]={0xC00XF90XA40XB00X990X920X820XF80X800X90};
void delay(uchar xms) //延时
{
uchar ij;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display() //数码管显示
{
delay(5);
P2=0xfe;//位选
P0=table[bai];//段选
delay(5);
P2=0xfd;
P0=table[shi];
delay(5);
P2=0xfb;
P0=table[ge];
delay(5);
P2=0xf7;
P0=table[qian];
delay(5);
}
void set_display() //上限数码管显示
{
delay(5);
P2=0xfe;//位选
P0=table[set_bai];//段选
delay(5);
P2=0xfd;
P0=table[set_shi];
delay(5);
P2=0xfb;
P0=table[set_ge];
delay(5);
P2=0xf7;
P0=table[set_qian];
delay(5);
}
void rukou() //入口检测
{
if(ru==0)
{
led=0;
P2=0XF0;
delay(10);
if(ru==0)
{
while(!ru);
ge++;
if(ge>9)
{
ge=0;
shi++;
}
if(shi>9)
{
shi=0;
bai++;
}
if(bai>9)
{
bai=0;
qian++;
}
if(qian>0)
{
ge=0;
shi=0;
bai=0;
qian=0;
}
}
}
else
{led=1;}
}
void chukou() //出口检测
{
if(chu==0)
{
led=0;
P2=0XF0;
delay(10);
if(chu==0)
{
while(!chu);
if(ge>0)
{
ge--;
}
else
{
if(shi>0)
{
ge=9;
shi--;
}
else
{
ge=0;
}
}
if(shi<0)
{
shi=9;
bai--;
}
if(bai<0)
{
bai=9;
qian--;
}
}
}
else
{led=1;}
}
void counts() interrupt 2//设置报警上限
{
Buzzer=1;
while(!set)
{
set_display();
LED=0;
if(jia==0)
{
P2=0XF0;
delay(10);
if(jia==0)
{
set_ge++;
if(set_ge>9)
{
set_ge=0;
set_shi++;
}
if(set_shi>9)
{
set_shi=0;
set_bai++;
}
if(set_bai>9)
{
set_bai=0;
set_qian++;
}
}
while(!jia);
}
if(jian==0)
{
P2=0XF0;
delay(10);
if(jian==0)
{
if(set_ge>0)
{
set_ge--;
}
else
{
if(set_shi>0)
{
set_ge=9;
set_shi--;
}
else
{
set_ge=0;
}
}
if(set_shi<0)
{
set_shi=9;
set_bai--;
}
}
while(!jian);
}
}
LED=1;
}
void jbao() //人数过多警报
{
if(ge+shi*10+bai*100>=set_ge+set_shi*10+set_bai*100)
{
led=0;
Buzzer=0;
}
else
{
led=1;
}
}
void AlarmJudge()
{
if(ru==0||chu==0) // 是否有人
{
Buzzer=0; // 是的话启动蜂鸣器
}
else
{
Buzzer=1; // 否的话关闭蜂鸣器
}
}
void main()
{
EA=1;
EX1=1;
IT1=1;
while(1)
{
if(zt==0)
{ delay(10);
led=1;
LED=~LED;
if(LED==0)
{
P2=0XFF;
P0=0XBF;
Buzzer=1;
}
delay(10);
while(!zt);
delay(10);
}
if(LED==1)
{
display();
AlarmJudge();
chukou();
rukou();
jbao();
}
if(res==0)
{
ge=0;
shi=0;
bai=0;
qian=0;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-26 19:48 12-晏子昊-基于单片机的红外线计数器\仿真\
文件 23763 2018-06-24 21:48 12-晏子昊-基于单片机的红外线计数器\仿真\红外线计数器.pdsprj
目录 0 2018-06-26 19:52 12-晏子昊-基于单片机的红外线计数器\论文\
文件 947125 2018-06-26 19:52 12-晏子昊-基于单片机的红外线计数器\论文\基于单片机的红外线测人流量.docx
目录 0 2018-06-26 19:52 12-晏子昊-基于单片机的红外线计数器\任务书\
文件 23552 2018-06-26 19:52 12-晏子昊-基于单片机的红外线计数器\任务书\任务书.doc
目录 0 2018-06-26 19:47 12-晏子昊-基于单片机的红外线计数器\原理图pcb图\
文件 845824 2018-06-25 09:19 12-晏子昊-基于单片机的红外线计数器\原理图pcb图\PCB2.PcbDoc
文件 95232 2018-06-21 23:45 12-晏子昊-基于单片机的红外线计数器\原理图pcb图\Sheet1.SchDoc
目录 0 2018-06-26 19:45 12-晏子昊-基于单片机的红外线计数器\源程序\
文件 2944 2018-06-24 21:40 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.c
文件 2466 2018-06-24 21:41 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.hex
文件 56 2018-06-24 21:44 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.lnp
文件 735 2018-06-24 21:44 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.LST
文件 31182 2018-06-24 21:44 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.M51
文件 10788 2018-06-24 21:44 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.OBJ
文件 8569 2018-06-24 21:44 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.plg
文件 56101 2018-06-24 21:45 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.uvopt
文件 13265 2018-06-02 18:29 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器.uvproj
文件 55254 2018-06-21 17:34 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器_uvopt.bak
文件 13266 2018-06-02 01:59 12-晏子昊-基于单片机的红外线计数器\源程序\红外线计数器_uvproj.bak
- 上一篇:字符训练集
- 下一篇:深度学习pytorch中草药识别
相关资源
- 数字处理中 图像融合实验源图片
- 常用红外线遥控信号协议详解(完整
- 红外线遥控系统课程设计
- 红外线与超声波遥控.rar
- 红外线人体测温仪电路的设计PM611本科
- 51程序红外模块检测有红外线后人或动
- 红外线遥控Proteus仿真电路+发射+接收
- 红外线远程控制密码锁
- 用红外线传感器实现小车循迹
- 基于AT89S52单片机学习型红外线遥控器
- 基于msp430单片机的红外线遥控解码L
- 红外线避障程序
- 基于IRM3638的红外摇控解码应用
- arduino程序,用两个红外线传感器来判
- FPGA红外线感应
- 基于紫红外线检测原理的火焰传感器
- 51单片机课设.zip
- 儿童红外线额温枪家用医用电子体温
- 简析红外线接收头的代换
- 便携式矿用红外甲烷气体检测仪电路
- STC12C5A60S2 实现双串口应用及红外解析
- 基于合泰HT67F5652的红外线体温计设计
- 简易模拟式门铃红外线报警器
评论
共有 条评论