#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar shuju;
uchar num=0,num1=0;
sbit beep=P2^7;
sbit EN=P1^2;
sbit RS=P1^0;
sbit RW=P1^1;
bit flag=0;
bit flag1=0; //烟雾
bit flag2=0; //红外
bit flag3=0; //声音
bit flag4=0; //热释电 检测人体
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
uchar receive()
{
uchar dat;
while(RI==0)
;
RI=0;
dat=SBUF;
return dat;
}
/*********1602驱动程序*****************************/
void write_date(uchar date)
{
EN=0;
RS=1;
P0=date;
EN=0;
delayms(5);
EN=1;
}
void write_com(uchar date)
{
EN=0;
RS=0;
P0=date;
EN=0;
delayms(5);
EN=1;
}
void init_1602()
{
RW=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void display()
{
write_com(0x80);
write_date('Y');
write_date('A');
write_date('N');
write_date('W');
write_date('U');
write_date(':');
if(flag1==1)
{
write_date('Y');
}
else
{
write_date('N');
}
write_date(' ');
write_date(' ');
write_date('V');
write_date('O');
write_date('I');
write_date('C');
write_date('E');
write_date(':');
if(flag3==1)
{
write_date('Y');
}
else
{
write_date('N');
}
write_com(0x80+0x40);
write_date('H');
write_date('O');
write_date('N');
write_date('G');
write_date('W');
write_date('A');
write_date('I');
write_date(':');
if(flag2==1)
{
write_date('Y');
}
else
{
write_date('N');
}
write_date(' ');
write_date(' ');
write_date('R');
write_date('E');
write_date('N');
write_date(':');
if(flag4==1)
{
write_date('Y');
}
else
{
write_date('N');
}
}
void control()
{
shuju=receive();
if(shuju==0x55) //红外
{
flag2=1;
flag=1;
}
if(shuju==0x45) //声音
{
flag3=1;
flag=1;
}
if(shuju==0x35) //烟雾
{
flag1=1;
flag=1;
}
if(shuju==0x25) //热释电 检测人体
{
flag4=1;
flag=1;
}
if(flag)
{
TR0=1; //开总中断
beep=0;
if(num1>=10)
{
num1=0;
flag=0;
flag1=0;
flag2=0;
flag3=0;
flag4=0;
TR0=0;
beep=1;
}
}
}
void main()
{
init_1602();
TMOD=0x21;
SCON=0x50;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
TH0=(65536-50000)/256; //设定初值
TL0=(65536-50000)%256;
TR0=0; //启动定时器0
ET0=1; //启动定时器0中断
EA=1; //关总中断
while(1)
{
control();
display();
}
}
void t0(void) interrupt 1 //using 0
{
TH0=(65536-50000)/256; //设定初值
TL0=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
num1++;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本资源内容概要: 这是基于51单片机的无线家庭防盗报警设计,包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开) 。 本资源适合人群: 单片机爱好者、电子类专业学生、电子diy爱好者。 本资源能学到什么: 可以通过查看电路学习电路设计原理,查看代码学习代码编写原理。 本资源使用建议: 建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
资源推荐
资源详情
资源评论
收起资源包目录
43、基于51单片机无线家庭防盗报警电路图及程序.rar (50个子文件)
43、基于51单片机无线家庭防盗报警电路图及程序
程序
主机程序
主机程序.build_log.htm 1KB
主机程序.plg 21KB
主机程序.LST 7KB
主机程序.lnp 48B
主机程序.hex 2KB
主机程序.M51 12KB
主机程序.c 3KB
主机程序.uvopt 5KB
主机程序 9KB
主机程序.uvproj 14KB
主机程序_uvproj.bak 0B
主机程序.OBJ 10KB
主机程序.uvgui.Administrator 84KB
从机程序
从机程序.lnp 48B
从机程序.LST 5KB
从机程序.uvproj 14KB
从机程序.OBJ 4KB
从机程序.uvgui.Administrator 84KB
从机程序_uvproj.bak 0B
从机程序.uvopt 5KB
从机程序.hex 905B
从机程序.M51 7KB
从机程序.c 2KB
从机程序 4KB
从机程序.plg 10KB
从机电路图
从机 防盗.PrjPcb 36KB
从机 防盗.PrjPcbStructure 51B
Project Logs for 从机 防盗
从机 防盗 PCB ECO 2012-4-11 0-58-52.LOG 264B
从机 防盗 PCB ECO 2012-4-11 0-30-06.LOG 113B
从机 防盗 PCB ECO 2012-4-11 0-13-25.LOG 8KB
从机 防盗 PCB ECO 2012-4-11 0-20-43.LOG 72B
从机 防盗.PcbDoc 404KB
__Previews
从机 防盗.PcbDocPreview 53KB
从机 防盗.SchDocPreview 67KB
History
从机 防盗.SchDoc 179KB
从机 防盗.PcbDoc.htm 5KB
Project Outputs for 从机 防盗
Design Rule Check - 从机 防盗.html 141KB
Design Rule Check - 从机 防盗.drc 14KB
主机电路图
主机.PrjPcbStructure 46B
__Previews
主机.SchDocPreview 49KB
History
主机.PcbDoc 369KB
Project Logs for 主机
主机 PCB ECO 2012-3-29 22-33-28.LOG 527B
主机 PCB ECO 2012-3-29 22-11-00.LOG 6KB
主机 SCH ECO 2012-3-29 22-06-26.LOG 851B
主机 PCB ECO 2012-4-10 23-32-42.LOG 4KB
主机.sch 22KB
主机.SchDoc 89KB
主机.PrjPcb 36KB
Project Outputs for 主机
Design Rule Check - 主机.drc 13KB
Design Rule Check - 主机.html 237KB
共 50 条
- 1
资源评论
>行者<
- 粉丝: 213
- 资源: 135
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功