找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 919|回复: 1
打印 上一主题 下一主题
收起左侧

求一个可以适配程序的仿真电路!急求

[复制链接]
跳转到指定楼层
楼主
ID:413401 发表于 2018-10-22 15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
include <AT89C51.h>
#define unchar unsigned char
#define uint unsigned int
uchar Tem1,Tem2,Smok1,Smok2;
uchar Tem=3.6,Smok=4.6;  //设定温度烟雾报警阈值
uchar a,a1,a2,b,b1,b2;
void caiji_wenyan();
void delay_10ms(uint i);  //程序声明
void panduan );
void baojing();
void main()
{
P10=0;P20=0;WR=1;RD=1;
P0=0XFa;P23=1;P24=1;P25=1;P26=0;   //初始化
while(1)                          //主程序
  {
   caiji _wenyan ();       //第一次采集温度烟雾信号
  Tem2=Tem1;Smok2=Smok1;   
   delay_10ms(5);           //延时50ms,让ADC0809准备好第二次数据转换
   caiji _wenyan();         //第二次采集温度烟雾信号
   panduan();               //将转换的数据与设定的报警阈值比较
   baojing();               //报警程序
   delay_10ms(1500);        //系统隔15s对现场判断
   };
}


void caiji_wenyan()
{
P0=0XF8;               //选通IN-0,转换温度信号
WR=0;
if(EOC=1) {RD=0;Tem1=P0}; //当ADC0809转换结束,AT89C51打开AD的三态门,AD输出数据
else RD=1;                //否则,AD继续转换
delay_10ms(1);
P0=0XF9;             //选通IN-1,转换烟雾信号
WR=0;
if(EOC=1){RD=0;Smok1=P0};
else RD=1;
}

void delay_10ms(uint i)    //10ms延时程序
{
while(i--)
  {
   uchar i,j,k;
   for(i=5;i>0;i--)
   for(j=4;j>0;j--)
   for(k=248;k>0;k--);
   }
}

void panduan()
{
if(Tem1<Tem)a1=1;     //当采集的温度高于阈值置1,否则,置0
  else a1=0;
if(Tem2<Tem) a2=1;
  else a2=0;
if(Smok1<Smok)b1=1;   //当采集的烟雾浓度高于阈值置1,否则,置0
  else b1=0;
if(Smok2<Smok) b2=1;
  else b2=0;
}

baojing()
{
if(a1=a2&&b1=b2)        //两次采集数据的标志位相同
  {
   a=a1;
   b=b1;
   if(a=1&&b=1){P23=0;P10=1;P26=1};  //温度烟雾标志位都是1,发生火灾
   if(a=1&&b=0){P24=0;P10=1;P26=1};  
   if(a=0&&b=1){P24=0;P10=1;P26=1};  //温度烟雾标志位只有一个1,异常
   if(a=0&&b=0)P26=0;                //温度烟雾标志位都为0,正常
  };
else{P25=0;P10=1;P26=1}        //两次采集

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-10-22 15:32 | 只看该作者
根据经验  求程序仿真的帖子一般不会有人回答(网站也不提倡),楼主还是自行在51hei搜索答案吧,在24小时必答区一看就知道怎么提问才有人回答.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表