⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 anjian.c

📁 这是我本科的毕业设计。是一个热水器自动温控系统。要配合里面的电路图看程序
💻 C
字号:
#include<reg51.h>
#include <absacc.h>
#include<intrins.h>
#include<math.h>
#define CON_8279 XBYTE [0x5fff]
#define DAT_8279 XBYTE [0x5eff]
sbit  clflag=ACC^7;
sbit sw=P1^0;
sbit set=P1^1;
sbit up=P1^2;
sbit down=P1^3;
sbit ok=P1^4;
sbit next=P1^5;
unsigned char data disgram[6]={0x00,0x01,0x02,0x03,0x04,0x05};
unsigned char data pregram[18]={0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char data temp,time,hour,minute;
bit now;
/******************ms延时程序*****************/
void delayms(unsigned int dt)
{
register unsigned char bt; 
for(;dt>0;dt--)
 for(bt=250;bt>0;bt--);
}
//
//
//
 void  disp_initial()
 { 
   CON_8279=0xDC;
   do {ACC=CON_8279;}
   while (clflag==1);
   CON_8279=0x00;
   CON_8279=0x34;
 }
/******************显示函数*****************/
void display(void)
{
unsigned char code table[18]={0xc0,0xf9,0xa4,0xb0,0x99,\
0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,\
0xbf,0xff};
unsigned char i;
 for(i=0;i<6;i++) 
  { CON_8279=i+0x92;
    DAT_8279=table[disgram[i]];
    delayms(i);
  }
}
/******************一位按键函数*****************/
void abc(void)
{
unsigned char bt,dt;
for(bt=0;bt<6;bt++)
 {
  do
   {
    if(up==0)
     {
      delayms(2);
      disgram[bt]++;
      for(dt=0;dt<8;dt++)
          display();
     }
   else if(down==0)
    {
     delayms(2);
     disgram[bt]--;
     for(dt=0;dt<8;dt++)
         display();
    }
  }while(ok==1);
 }
 display();
}
//
//
/******************按键扫描函数*****************/
unsigned char keyscan(void)
{
unsigned char bt,k=0,ch;
if(set==0)
 {
  
  delayms(2);
  if(ok==0)
   {
 
    delayms(2);
  
    do{
      
       delayms(2);
    
       abc();
       for(bt=0;bt<6;bt++,k++)
        {
         pregram[k]=disgram[bt];
         display();
        }
      }while(next==0);
     hour=pregram[0]*10+pregram[1];
     minute=pregram[2]*10+pregram[3];
     temp=pregram[4]*10+pregram[5];
     time=3;
     now=0;
    return(1);
    }
   else
   {
    abc();
    for(bt=0;bt<8;bt++) display();
    return(2);
   }
  }
  else if(sw==0)
   {
  
    delayms(20);
  
    sw=1;
    while(sw==0) display();
    ch=IE;
    IE=0x00;
    P0=0xff;
    P1=0xff;
    P2=0xff;
    P3=0xff;
    disgram[0]=0x10;
    disgram[1]=0x10;
    disgram[2]=0x10;
    disgram[3]=0x10;
    disgram[4]=0x10;
    disgram[5]=0x10;
    display();
    while(1)
     {
      while(sw) display();
     
      delayms(20);
     
      if(sw==0) break;
     }
    while(sw==0) display();
    IE=ch;
    return(0);
   }
  else if(ok==0)
   {
   
    delayms(20);
   
    abc();
    for(bt=0;bt<7;bt++) display();
    now=1;
    hour=disgram[0]*10+disgram[1];
    minute=disgram[2]*10+disgram[3];
    temp=disgram[4]*10+disgram[5];
    return(3);
   }
 else return(0);
}       
//
//
void main(void)
{disp_initial();
 display();
  while(1)

  { 
   keyscan();
   display(); 
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -