• 大小: 132KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-30
  • 语言: 其他
  • 标签: 微波炉  程序  

资源简介

这是一个关于微波炉的课程设计,里面包含了程序,原理图,仿真图。

资源截图

代码片段和文件信息

#include 
#define  uint unsigned int
#define  uchar unsigned char
uint dis[]={0x000x000x000x00};
uint pv=1pv_j=6pv_l=24; //定义 档位、加热时间、冷却时间(每个周期)
uint count_s=0;    //记录定时时间
uint cyc0=20cyc1=20;    // 为了计时一秒,定时器一次中断为50ms,20*50ms=1s
uchar codevalue[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0xff};  //七段数码管显示码显示0~9和全亮
uchar codecho[]={0xfe0xfd0xfb0xf7};   //位选码
sbit P10=P1^0; //引脚定义
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
sbit duan=P2^0;
sbit wei=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
/*--------------------
  延时函数,大致延时一毫秒
-------------------*/
void delay_ms(uint t)
{uchar i;
while(t--)  
{
i=250;
while(--i);
}
}
/*------------------------
   定时器初始化
--------------------------*/
void t_clr()
{
EA=1;            //CPU开中断
ET0=1;
ET1=1;           //定时器 中断允许
TMOD=0X11;       //定时器T1、T0 定时   方式一
TH0=0X3c;
TL0=0Xaf;
                    //12M 晶振,65536-15536=50000,50000us*20=1000000us=1s
TH1=0X3c;
TL1=0X0af;
}
/*------------------------
    键盘扫描函数
--------------------------*/
void key_scan()
{
if(!P10)
{
 delay_ms(70);
if(!P10)
count_s+=30;      //时间 +30秒
        if (count_s>6000)
            count_s=0;
}

    if(!P11)
{
 delay_ms(70);
if(!P11)
count_s+=60;       //时间 +1 分
        if (count_s>6000)
            count_s=0;
}

if(!P12)
{
 delay_ms(70);
if(!P12)
count_s+=300;      //时间+5分
        if (count_s>6000)
            count_s=0;
}

if(!P13)
{
 delay_ms(70);
if(!P13)
count_s=0;         //时间清零

}

if(!P14)
{
 delay_ms(70);
if(!P14)
{if (pv<3)
 pv++;               //档位+1
         pv_j=pv*6+6;        //加热时间
         pv_l=30-pv_j;       //冷却时间
}

}

if(!P15)
{
 delay_ms(70);
if(!P15)
{if (pv>0)
 pv--;               //档位-1
         pv_j=pv*6+6;
         pv_l=30-pv_j;
}

}

if(!P16)
{
 delay_ms(70);
if(!P16)
{
 P22=1;
         if(count_s==0)          //如果没有设定时间,不加热,定时器不工作 
            {TR0=0;
            TR1=0;}
         else                    //如果已经设定时间,则开始计时,开始加热
    {                   
            pv_j=6*pv+6;
            pv_l=30-pv_j;
            t_clr();
            TR0=1;
    TR1=1;
            P22=0;}
}

}

if(!P17)               //停止加热,终止定时器
{
 delay_ms(70);
if(!P17)
{P22=1;
 P23=0;
 TR0=0;
 TR1=0;
}
}
}
/*------------------------
    时间变换为每个显示位
--------------------------*/
void time_converter()
{
dis[0]=count_s/600;             //取分的十位
dis[1]=(count_s/60)%10;         //取分的个位
                                 
dis[2]=(count_s%60)/10;         //取秒的十位
dis[3]=(count_s%60)%10;   //取秒的个位
}
/*------------------------
   显示函数
--------------------------*/
void display()
{  
    
    uchar t;
uchar k;
for(k=0;k<4;k++) //LED显示
{
 wei=1;
 P0=codecho[k];
 wei=0;
     P0=0xff

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-02-21 11:47  仿真电路图\
     文件      178976  2017-01-26 21:14  仿真电路图\1.DSN
     文件         768  2017-01-27 22:04  仿真电路图\1.PWI
     文件      178962  2017-01-03 15:49  仿真电路图\Last Loaded 1.DBK
     目录           0  2017-02-21 11:47  原理图\
     目录           0  2017-02-21 11:47  原理图\History\
     文件       24622  2017-01-04 21:46  原理图\History\WANG.~(1).SCHDOC.Zip
     文件      207872  2017-01-04 21:46  原理图\WANG.SCHDOC
     目录           0  2017-02-21 11:47  程序\
     文件        9404  2017-01-03 16:33  程序\1
     文件        5113  2017-01-03 16:33  程序\1.c
     文件        3308  2017-01-03 16:33  程序\1.hex
     文件          34  2017-01-03 16:33  程序\1.lnp
     文件       11341  2017-01-03 16:33  程序\1.LST
     文件       14050  2017-01-03 16:33  程序\1.M51
     文件       11197  2017-01-03 16:33  程序\1.OBJ
     文件         168  2017-02-08 20:52  程序\1.plg
     文件       55201  2017-02-08 20:52  程序\1.uvopt
     文件       13217  2017-01-01 12:59  程序\1.uvproj
     文件       55201  2017-02-08 13:09  程序\1_uvopt.bak
     文件           0  2017-01-01 12:06  程序\1_uvproj.bak

评论

共有 条评论