找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机火灾报警仿真设计 放HEX进去仿真不出来 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:274063 发表于 2019-3-12 14:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助大佬们帮忙看下
仿真和代码是我在一篇文章上复制粘贴法弄出来的。代码帮忙看一下,仿真也帮忙看一下是啥情况,放HEX进去仿真不出来。

火灾报警器.rar

2.44 MB, 下载次数: 31

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

使用道具 举报

沙发
ID:274063 发表于 2019-3-12 14:10 | 只看该作者
这是代码:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
void shuju_caiji();
void fenxi();
void baojing();
sbit OE = P2^2;
sbit EOC = P2^1;
sbit ST = P2^0;
uchar CLK;
sbit A1=P0^0;
sbit A2=P0^1;
sbit A3=P0^2;
sbit A4=P0^3;
sbit A5=P0^4;
sbit A6=P0^5;
sbit A7=P0^6;
sbit A8=P0^7;
uint w,w1,w2,s,s1,s2,a,b;
uint Tem1,Tem2,Smok1,Smok2,dianyan0,dianyan1;
uchar code LED[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
uchar disbuff[4];
display();
void delayMS(uchar ms)
{

uchar a;
while(ms--)
for(a=0;a<120;a--);
}
void main() //主函数//
{ TMOD = 0x02;
TH0 = 0x14;
TL0 = 0x00;
IE = 0x82;
TR0 =1;
P0=0x06;
while(1)
{
shuju_caiji();
Tem1=a;
Smok1=b;
shuju_caiji();
Tem2=a;
Smok2=b;
dianyan1=a;
if(a>=0x3a)
dianyan0=(dianyan1*1.0-66)/255*370*40.5;
else dianyan0=0-(dianyan1*1.0/255*50*42.3-550)*10;
disbuff[0]=dianyan0/1000;
disbuff[1]=dianyan0/100%10;
disbuff[2]=dianyan0/10%10;
fenxi();
baojing();

display();
}
}
//?????? //
  void shuju_caiji()
{
ST=1;
P2=0x03;//*************** 选 0 通道
ST = 0;
ST = 1;
ST = 0;
delayMS(2);
while(!EOC);
OE = 1;
a=P1;//********** *p1 给数
delayMS(2);
OE = 0;
delayMS(200);
ST=1;
P2=0x13;//****** 选 1通道
ST = 0;
ST = 1;
ST = 0;
delayMS(2);
while(!EOC);
OE = 1;
b=P1;//************* *p1 给数
delayMS(2);

OE = 0;
delayMS(200);
}
display() //显示 //
{
if(a>0x3a) P3=0xc0;
else P3=0xbf;
A7=1;
delayMS(60);
A7=0;A6=1;
P3=LED[disbuff[0]];
delayMS(60);
A6=0;A5=1;
P3=LED[disbuff[1]];
P3=P3&0x7f;
delayMS(60);
delayMS(60);
A5=0;A4=1;
P3=LED[disbuff[2]];
delayMS(60);
A4=0;
delayMS(60);
}
void fenxi() //数据对比 //
{
if(Tem1>0xBD) w1=1;
else w1=0;
if(Tem2>0xBD) w2=1;

else w2=0;
if(Smok1>0xF0) s1=1;
else s1=0;
if (Smok2>0xF0) s2=1;
else s2=0;
}
//报警判断 //
void baojing()
{
if(w1==w2&&s1==s2)
{
w=w1;s=s1;
if(w==1&&s==1) A3=0,A2=1;A1=1,A8=1;
if(w==1&&s==0) A3=1,A2=0,A1=1,A8=1;
if(w==0&&s==1) A3=1,A2=0,A1=1,A8=1;
if(w==0&&s==0) A3=1,A2=1,A1=0,A8=0;
}
}
void Timer0_INT() interrupt 1
{
CLK = !CLK;
}
回复

使用道具 举报

板凳
ID:306995 发表于 2019-3-13 17:34 | 只看该作者
没有DSN文件好像打不开
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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