標題:
用兩個人體紅外傳感器計數(shù),判斷屋里的人數(shù)的單片機程序
[打印本頁]
作者:
zha
時間:
2018-12-17 11:41
標題:
用兩個人體紅外傳感器計數(shù),判斷屋里的人數(shù)的單片機程序
很簡單的一個程序,大一的時候寫的,
今天有人加我問這個問題,就把代碼翻出來了,剛好分享出來
就是用外部中斷檢測判斷狀態(tài)的先后,來判斷人的進出,在main里加減
單片機程序源碼如下:
#include <reg52.h>
#include <string.h>
#define LCD1602_DB P0
sbit red = P2^0; //紅外1
sbit red1 = P2^1; //紅外2
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char flag1s = 0;
unsigned char flag2s = 0;
unsigned char code LedChar[] = { //數(shù)碼管顯示字符轉換表
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[6] = { //數(shù)碼管顯示緩沖區(qū),初值 0xFF 確保啟動時都不亮
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
unsigned char i = 0;
shu(unsigned char sec);
void delay(unsigned int i)
{
while (i--);
}
shu(unsigned char sec)
{
LedBuff[0] = LedChar[sec%10];
LedBuff[1] = LedChar[sec/10%10];
LedBuff[2] = LedChar[sec/100%10];
LedBuff[3] = LedChar[sec/1000%10];
LedBuff[4] = LedChar[sec/10000%10];
LedBuff[5] = LedChar[sec/100000%10];
}
void main()
{
unsigned int sec = 0,j = 0;
red = 1;
red1 = 1;
ENLED = 0;
ADDR3 = 1;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
EA = 1;
ET0 = 1;
sec = 0;
shu(sec);
while(1)
{
shu(sec);
if(flag1s == 1 )
{
flag1s = 0;
sec++;
}
if(flag2s == 1 )
{
flag2s = 0;
if(sec > 0)
sec--;
}
shu(sec);
/*for(;sec<20;sec++)
{itoa(sec, s);
delay(100009);
LcdShowStr(8, 0, s); } */
}
}
void InterruptTimer0() interrupt 1
{
TH0 = 0xFC; //重新加載初值
TL0 = 0x67;
if (red == 0&&red1==1)
{
delay(99);
if(red1==0)
flag1s = 1;
}
if (red1 == 0&&red == 1)
{
delay(99);
if(red == 0)
flag2s = 1;
}
switch (i)
{
case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0]; break;
case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1]; break;
case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2]; break;
case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=LedBuff[3]; break;
case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=LedBuff[4]; break;
case 5: ADDR2=1; ADDR1=0; ADDR0=1; i=0; P0=LedBuff[5]; break;
default: break;
}
}
復制代碼
作者:
ssk7793
時間:
2018-12-17 16:19
多人同時進出能否判斷?
作者:
zha
時間:
2018-12-17 19:18
ssk7793 發(fā)表于 2018-12-17 16:19
多人同時進出能否判斷?
多人并行無法判斷
作者:
wooklam
時間:
2019-4-2 10:54
能否判斷多人并行,還有在門邊站著沒有進入怎么計算
作者:
滿天星伴你
時間:
2019-4-2 15:22
有沒有電路圖
作者:
智予
時間:
2019-5-31 20:24
有電路圖嗎?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1