标题:
一个at89c51单片机的人体红外传感器程序
[打印本页]
作者:
老巷忆梦
时间:
2020-6-20 14:18
标题:
一个at89c51单片机的人体红外传感器程序
这是前段时间自己做的一个人体
红外程序,用的是c51板子,用到
iic和按键和lcd模块还有蜂鸣器和定时器
单片机源程序如下:
#include<reg51.h>
#include"lcd.h"
#include"time.h"
#include"beep.h"
#define MotorData P1
unsigned char temp;
void disp();
unsigned char phasecw[4] ={0x08,0x04,0x02,0x01};
unsigned char phaseccw[4]={0x01,0x02,0x04,0x08};
unsigned char buffer[]={"hhahhhahhaaaaaa"};
sbit HW=P3^2;
void delay(unsigned int k)
{
while(k--);
}
void disp(unsigned char *P)
{
unsigned char i;
for(i=0;P[i]!='\0';i++)
{
lcd_dat(P[i]);
delay(500);
}
}
void Delay_xms(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<112;j++);
}
void MotorCW(void)
{
unsigned char i;
for(i=0;i<4;i++)
{
MotorData=phasecw[i];
Delay_xms(4);
}
}
void MotorCCW(void)
{
unsigned char i;
for(i=0;i<4;i++)
{
MotorData=phaseccw[i];
Delay_xms(4);
}
}
void time() interrupt 1
{
unsigned char i;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i++;
if(i==20)
{
i=0;
temp++;
}
}
void MotorStop(void)
{
MotorData=0x00;
}
void main(void)
{
unsigned int i,a,b;
lcd_init();
time_init();
Delay_xms(50);
{
if(HW==1)
{
// if(temp>3)
// {
for(i=0;i<250;i++)
{
MotorCW();
beeper();
lcd_cmd(0x82);
disp(buffer);
}
MotorStop();
a++;
Delay_xms(1500);
for(i=0;i<250;i++)
{
MotorCCW();
beeper();
lcd_cmd(0x82);
disp(buffer);
}
MotorStop();
b++;
Delay_xms(1500);
// }
}
}
if(a+b==2)
MotorStop();
}
复制代码
所有程序51hei提供下载:
下期实训人体红外.zip
(41.71 KB, 下载次数: 51)
2020-6-20 14:18 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1