找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2644|回复: 1
收起左侧

protues温湿度仿真

[复制链接]
ID:63146 发表于 2018-5-27 08:45 | 显示全部楼层 |阅读模式
QQ截图20180527084357.jpg 温度湿度仿真,可以实现调节功能,数码管显示
#define        uchar        unsigned char
#define uint        unsigned int
#define ulong         unsigned long
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳

#include<REG51.h>
#include <intrins.h>
#include <stdio.h> //
#include <math.h>    //Keil library  

sbit        out =P3^0;        //加热口
//sbit        input =P1^1;//检测口
//sbit        speek =P2^0;//报警

sbit        clo =P3^7;//时钟
sbit        ST =P3^5;//开始
sbit        EOC =P3^6;//成功信号

sbit        gwei =P3^4;//个位
sbit        swei =P3^3;//十位
sbit        bwei =P3^2;//百位
sbit        qwei =P3^1;//千位

sbit        speak =P0^0;//报警音
sbit        bjled =P0^1;//报警灯
sbit        zcled =P0^2;//正常LED


int count;
uchar xianzhi;//取转换结果
uchar seth;//高时间
uchar setl;//低时间
uchar seth_mi;//高时间
uchar setl_mi;//低时间

bit  hlbz;//高低标志
bit  clbz;
bit  spbz;








///定时中断程序///
void t0 (void) interrupt 1 using 0
{
           TH0=(65536-200)/256;//5ms*200=1000ms=1s
        TL0=(65536-200)%256;
        clo=!clo;//产生时钟
     if(count>5000)
         {
           if(hlbz)
           {
                    if(seth_mi==0){seth_mi=seth;hlbz=0;out=0;}
                        else seth_mi--;
                    }
           if(!hlbz)
           {
                    if(setl_mi==0){setl_mi=setl;hlbz=1;out=1;}
                        else setl_mi--;
                    }
         count=0;
         }
     else count++;



}
/////////////
///////延时///////
delay(int i)
{
   while(--i);     

}     

///////显示处理///////
xianshi()
{


        int   abcd=0;
    int i;

  for (i=0;i<5;i++)

{  
abcd=xianzhi;
gwei=1;
swei=1;
bwei=1;
qwei=1;
P1=dispcode[abcd/1000];
  qwei=0;
delay(70);
  qwei=1;
abcd=abcd%1000;
P1=dispcode[abcd/100];
bwei=0;
delay(70);
bwei=1;  
abcd=abcd%100;
P1=dispcode[abcd/10];
swei=0;
delay(70);
swei=1;
abcd=abcd%10;
P1=dispcode[abcd];
gwei=0;
delay(70);
gwei=1;
}
}

  doing()
  {
    if(xianzhi>100)
           {bjled=0;speak=1;zcled=1;}
        else {bjled=1;speak=0;zcled=0;}
  }




void        main(void)
        {
        seth=60;//h60秒
        setl=90;//l90秒
        seth_mi=60;//h60秒
        setl_mi=90;//l90秒


        TMOD=0X01;//定时0 16位工作模式
        TH0=(65536-200)/256;
        TL0=(65536-200)%256;
       
        TR0=1;        //开始计时
        ET0=1;   //开定时0中断
        EA=1;    //开全中断
        while(1)
        {
           ST=0;
   _nop_();
           ST=1;
   _nop_();
           ST=0;
        //   EOC=0;
                xianshi();

                while(!EOC)
                {
        xianshi();
                 }
       xianzhi=P2;
                   xianshi();
           doing();


        }
        }



回复

使用道具 举报

ID:649095 发表于 2019-11-25 15:12 | 显示全部楼层
附件给一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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