51单片机中有关热释电传感器的一个程序不是很懂,请教一下大家

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit wei=P2^4;
sbit wei1=P2^5;
sbit beep = P2^0;
sbit sensor = P0^7;
sbit sensor1= P0^6;

uchar flag1;
uchar flag;

void chuankou(uchar temp)
{
uchar table1[]={1,2};
uchar m;
PCON=0x00;
SCON=0x50;//这两条指令是什么意思?
TMOD=0x20;//为什么选择计时器工作方式2?
TH1=0xE6;
TL1=0xE6;
TR1=1;//这里前面不需要写ET1=1标志中断允许位吗?
for(m=0;m<2;m++)
{
SBUF=table1[temp];//这是什么意思?
while(TI==0);
TI=0;
}
}

void delay(uint t)
{
while(t--);
}

void Test_Voltage(void)
{
if(sensor ==0&sensor1== 1)//判断传感器
{
delay(10000);
if(sensor == 0)
{
flag1 = 1;
}
else
{
flag1 = 0;
}
}
else
{
flag1=0;
}
}
void action(void)
{
if(flag1 ==1)
{
wei=0xfe;
P0 = 0X25;
beep = 0;
chuankou(1);
delay(10000);
beep = 1;
delay(10000);
wei=0xfd;
}
else
{
wei=0;
P0 = 0X03;

}
}
void Test_Voltage1(void)
{
if(sensor1 ==0&sensor==1)
{
delay(10000);
if(sensor1 == 0)
{
flag = 1;
}
else
{
flag= 0;
}
}
else
{
flag= 0;
}
}

void action1(void)
{
if(flag ==1)
{
wei1=0xfe;
P0= 0X9f;
beep =0;
chuankou(0);
delay(10000);
beep =1;
delay(10000);
wei1=0xfd;
}
else
{
wei1=0;
P0 = 0X03;
}
}

void main(void)
{
while(1)
{
Test_Voltage();
action();
Test_Voltage1();
action1();
}
}

这个程序的大概流程图应该是怎么样的呢?

,请教一下大家,谢谢

void chuankou(uchar temp)
{
uchar table1[]={1,2};
uchar m;
PCON=0x00;
SCON=0x50;//这两条指令是什么意思?(设置串行口工作方式寄存器,工作在方式1,8位数据,波特率可变,允许接收)
TMOD=0x20;//为什么选择计时器工作方式2?(八位自动重装定时器,做波特率发生器)
TH1=0xE6;
TL1=0xE6;
TR1=1;//这里前面不需要写ET1=1标志中断允许位吗?(做波特率发生器不用中断)
for(m=0;m<2;m++)
{
SBUF=table1[temp];//这是什么意思?(写数据到发送缓冲器,开始发送)
while(TI==0);
TI=0;
}
}追问

前面的chuankou它这里并没有调用到主函数,会运行吗?

抱歉我没看仔细,它被调用到子函数中去了

温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机中有关热释电传感器的一个程序不是很懂,请教一下大家
void chuankou(uchar temp){ uchar table1[]={1,2};uchar m;PCON=0x00;SCON=0x50;\/\/这两条指令是什么意思?(设置串行口工作方式寄存器,工作在方式1,8位数据,波特率可变,允许接收)TMOD=0x20;\/\/为什么选择计时器工作方式2?(八位自动重装定时器,做波特率发生器)TH1=0xE6;TL1=0xE6;TR...

大神们有知道51单片机怎么用中断识别人体红外热释电
一般用外部中断来做就可以了。

热释电红外传感器RE200B怎么和51单片机连接,能直接连吗?怎么编程?具体...
带AD的单片机可以连接,不过最好就用差分运算放大器处理一下信号,接入单片机的AD采样,印象中这个是双元的传感器,可以判断人移动的方向.

51单片机如何控制re200b人体红外热释电传感器
re200b不能和单片机直接连接,还要一个BISS0001胡集成芯片,他是有较高性能的传感信号处理集成电路,具体可以去看我的文库“基于单片机的红外自动淋浴器的设计”。

热释电传感器的输出信号用如图所示的电路处理行吗?
电路较一般热释放大电路简单应该可以工作,一级放大U1A和比较器U1B後输出,灵敏度较低和检测到的信号放大後要大於1\/2Vcc U1B输出才有反应。参数计算就等如LM324的放大系数,放大系数也不能太大而出现误触发。一般较常用的热释放大电路有两级放大,灵敏度较常,再经一组窗口比较器处理後输出。网上可以...

如何用热释电人体红外传感器和单片机判别人体运动方向?
红外线热释电传感器对人体的敏感程度还和人的运动方向关系很大。红外线热释电传感器对于径向移动反应最不敏感, 而对于横切方向 (即与半径垂直的方向)移动则最为敏感. 在现场选择合适的安装位置是避免红外探头误报、求得最佳检测灵敏度极为重要的一环。参考资料:http:\/\/www.138dz.com\/list.asp?ProdId...

做单片机课程设计,请问如何设计一个利用红外热释传感器探测距离的电 ...
要使用DSP之类高速处理器,耗资巨大,不划算。设置显示数据和报警可通过按钮和数码管完成。报警通过扩音器,把数字声音合成的信号放大,进行输出。断电保存设置数据的工作通过eeprom之类器件完成。其他,要不要再连个网络,让主人远距离知道家里电视机的使用安全问题??

红外测温系统中热释电红外传感器输出电压和温度的关系!
一般都是线性的函数关系,y=kx的类型,ad转换首先要确认你的范围和最小刻度以及ad的位数 假如你的ad是10位,基准电压是5v,然后你就用1000来表示满刻度5v,然后一个刻度就是0.02v了。温度你也要设定,假如设0度时输出电压是2.5v,100度时,满刻度5v ...

刚买了一个热释电人体红外感应模块,有人时输出高电平(3.3V),无人时输...
先把你接收信号的引脚电平拉低(=0)……一般的单片机默认引脚输出高电平,影响接收电平信号 补充一点,如果是作为通讯引脚的话,接收时要拉高,充当上拉电阻使用

用biss0001和热释电红外传感器的红外防盗报警系统还需要用单片机去处理...
可以不用单片机,biss0001具有热释电红外传感器放大、整形输出、报警延时等功能,用biss0001和音乐芯片及扬声器配套,就可以构成一个完整的现场报警系统,但功能比较单一,多功能多通道的报警装置就需要使用单片机。

相似回答