900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【005】基于51单片机的多路热释电红外报警器proteus仿真与实物设计

【005】基于51单片机的多路热释电红外报警器proteus仿真与实物设计

时间:2022-01-23 07:26:19

相关推荐

【005】基于51单片机的多路热释电红外报警器proteus仿真与实物设计

一、压缩包资料内容

(1)、基于51单片机的电子万年历多路热释电红外报警器proteus仿真设计一份;(2)、基于51单片机的多路热释电红外报警器proteus仿真设计keli源代码一份;(3)、基于51单片机的多路热释电红外报警器Altium designer 的原理图一份;(4)、基于51单片机的多路热释电红外报警器Altium designer 的PCB一份;(5)、基于51单片机的多路热释电红外报警器元器件清单一份;(6)、基于51单片机的多路热释电红外报警器proteus仿真与实物设计视频讲解一份;

二、设计要求

(1)、本次设计要求以51系列单片机为核心,设计一多路红外热释电报警装置;(2)、可通过按键打开并且关闭报警装置;(3)、系统实现数码管显示哪一路红外热释电报警;

三、相关资料截图

图一、基于51单片机的多路热释电红外报警器proteus仿真界面截图

图二、基于51单片机的多路热释电红外报警器Keil源程序界面截图

图三、基于51单片机的多路热释电红外报警器Altium designer 原理图界面截图

图四、基于51单片机的多路热释电红外报警器Altium designer PCB界面截图

图五、基于51单片机的多路热释电红外报警器实物设计照片

四、视频讲解

私信获取全部内容

部分源代码

#include<AT89X51.H>#define uint unsigned int#define uchar unsigned charuchar code table[]={0x41,0x7B,0x46,0x52,0x78,0xD0,0xC0,0x5B,0x40,0x50,0x48,0xE0,0xC5,0x62,0xC4,0xCC};uchar a[6];uchar b[6];sbit kai=P1^0;sbit guan=P1^1;sbit reshi1=P1^2; //5个热释红外信号检测输入sbit reshi2=P1^3;sbit reshi3=P1^4;sbit reshi4=P1^5;sbit reshi5=P1^6;sbit beel=P1^7; //蜂鸣器报警输出uchar moshi=0; //工作模式uchar rs1=0,rs2=0,rs3=0,rs4=0,rs5=0,flag=0,out=0;void fenli(); //信号分离void delay(uint xms) //延时{int i,j;for(i=xms;i>0;i--) for(j=110;j>0;j--);}void keyscan() //按键扫描{if(kai==0) //开始键按下{delay(3); //延时if(kai==0) //再判{while(!kai); //等待释放moshi=0; //模式等于0beel=0; //关蜂鸣器delay(500); //延时beel=1; //开蜂鸣器}}if(guan==0) //关键按下{delay(3);if(guan==0){while(!guan);moshi=1; //模式等于1beel=0; //关蜂鸣器delay(500); //延时beel=1; //开蜂鸣器}}}void checkreshi()//检测热释红外信号{if(reshi1==0) { rs1=1; a[1]=1; }else { rs1=0;a[1]=0; }if(reshi2==0) { rs2=1;a[2]=2; }else { rs2=0;a[2]=0; }if(reshi3==0) { rs3=1;a[3]=3; }else { rs3=0;a[3]=0; }if(reshi4==0) { rs4=1;a[4]=4; }else { rs4=0;a[4]=0; }if(reshi5==0) { rs5=1;a[5]=5; }else { rs5=0; a[5]=0; }flag=rs1+rs2+rs3+rs4+rs5; //热释红外信号进行或操作fenli(); //热释红外位置分离}void fenli(){uchar l;out=0;for(l=6;l>0;l--){if(a[l]!=0){//b[out]=a[l];//out++;P3=table[a[l]]; //显示热释红外信号编号delay(400);keyscan();}else{P3=0x41; //显示-keyscan();}}}/*void display(){uint k;for(k=0;k<flag+1;k++){}} */

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。