基于51单片机的电烤箱微波炉数码管显示proteus仿真

链接:https://pan.baidu.com/s/1QAGHPYayD6Lasj6_JIuOYA

提取码:fqsv

硬件设计

  • MCU基于51单片机
  • ADC采用TLC2543,芯片简介如下:
    (1)12位分辩率A/D转换器;+(2)在工作温度范围内10μs转换时间;+(3)11个模拟输入通道;+(4)3路内置自测试方式;+(5)采样率为66kbps;+(6)线性误差±1LSBmax;+(7)有转换结束输出EOC;+(8)具有单、双极性输出;+(9)可编程的MSB或LSB前导;+(10)可编程输出数据长度。+3TLC2543的引脚排列及说明
  • 四位数码管作为显示
  • 具有多个按键控制,功能选择按键,时间设置按键
  • LED指示

仿真图如下:
在这里插入图片描述

程序设计

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit mianbao=P3^0;
sbit hongkao=P3^1;
sbit shaokao=P3^2;
sbit jiedong=P3^3; //面包、烘烤、烧烤、解冻功能键
sbit inckey=P0^0; 
sbit deckey=P0^1;  //增加、减少键
sbit startkey=P0^2;//开始键
sbit tmpkey=P0^3;  //温度设定键
sbit timekey=P0^4; //时间设定键
sbit pausekey=P0^5;//暂停键
sbit wela1=P2^0;   //扫描端口
sbit wela2=P2^1;
sbit wela3=P2^2;
sbit wela4=P2^3;  
sbit out=P2^4;    //TLC2543与单片机接口
sbit din=P2^5;    
sbit cs=P2^6;     
sbit clk=P2^7; 
sbit sled=P3^4;
sbit pled=P3^5;  
sbit heat1=P3^6;  //继电器1、2控制口
sbit heat2=P3^7;  
char fen;         //分
uchar miao;       //秒
uchar ss;         //倒计时控制
uchar chuandi;    //功能键控制字符
uchar suoding;    //温度、时间键控制字符
uchar tcount;     //计数
uchar tmp;        //温度常数
uchar jian;       
uchar numge;      //温度个、十、百位
uchar numshi;
uchar numbai;    
uint tmpset;    //设定温度
uint realtmp;   //实际温度
uchar save1;
uchar save2;
uchar pause;
uchar t;
uint ad;       //ad转换结果
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6};//数码管显示列表
uchar code table2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//********延时程序********//
void delay(uchar z)
{
  uchar x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
//********时间显示程序********//
void displaytime()
{
  wela1=1;
  P1=table[miao%10];
  delay(10);
  wela1=0;
  wela2=1;
  P1=table[miao/10];
  delay(10);
  wela2=0;
  wela3=1;
  P1=table2[fen%10];
  delay(10);
  wela3=0;
  wela4=1;
  P1=table[fen/10];
  delay(10);
  wela4=0;
}
//********温度显示程序********//
void displaytmp()
{
  numbai=tmpset/100;
  numshi=tmpset%100/10;
  numge=tmpset%10;
  wela1=1;
  P1=table[10];
  delay(10);
  wela1=0;
  wela2=1;
  P1=table[numge];
  delay(10);
  wela2=0;
  wela3=1;
  P1=table[numshi];
  delay(10);
  wela3=0;
  wela4=1;
  P1=table[numbai];
  delay(10);
  wela4=0;
}
//********时间设定程序********//
void settime()
{
  displaytime();
  while(!timekey)
  {
  displaytime();
    if(!inckey)
     {
	  delay(10);
	    if(!inckey)
         {
	     fen+=10;
             if(fen>99)
			 {
	         fen=99;
			 }
	     }		
	      while(!inckey)
	      {  
	      displaytime();
	      }	  
	 }
	else if(!deckey)
     {
	  delay(10);
	  if(!deckey)
	    {
	     fen-=10;
		 if((fen<1)&&(pause==0))
		 {
		 fen=1;
		 }
		 if((fen<1)&&(pause==1))
	      {
	     fen=0;
	      }
	    }	    
       
     }
	 while(!deckey)
	 {
	 displaytime();
	 }
  }
  if(!inckey)
  {
  t=0;
   delay(10);
   if(!inckey)
    {
	 fen++;
     displaytime();
	    if(fen>99)
		{
	    fen=99;
		}
	 }
	 }
    	TMOD=0x01; 
        TH0=15536/256; 
        TL0=15536%256; 
        TR0=1;  
	     while(!inckey)
	     {
        if(t==40)
         {
		 displaytime();
		 t=37;		 
        fen++;
		if(fen>99)
		{
	    fen=99;
		}
	         }
        if(TF0==1)
       {
        t++;
        TF0=0; 
        TH0=15536/256; 
        TL0=15536%256;
       }
	     displaytime();
	  }	
	  
  if(!deckey)
  {
  t=0;
   delay(10);
   if(!deckey)
    {
	if((fen<1)&&(pause==1))
	{
	fen=1;
	}
	if((fen<2)&&(pause==0))
	 fen=2;
	 fen--;
	 displaytime();
	}
		TMOD=0x01; 
        TH0=15536/256; 
        TL0=15536%256; 
        TR0=1;  
	     while(!deckey)
	     {
        if(t==40)
         {
		 displaytime();
		 t=37;		 
       if((fen<1)&&(pause==1))
	    {
	    fen=1;
	    }
	   if((fen<2)&&(pause==0))
	   fen=2;
	   fen--;
		 }
        if(TF0==1)
        {
        t++;
        TF0=0; 
        TH0=15536/256; 
        TL0=15536%256;
        }
	     displaytime();
	  }	
   }
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值