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

📄 光波机.c

📁 光波治疗仪原创代码!目前产品火卖中!
💻 C
字号:
/********************************************************************************/
/*==============================================================================*/
/*                                                                              */
/*                                                                              */
/*                                                                              */
/*                                 光波机系统程序Ver1.0                         */
/*               ============================================                   */
/*                                                                              */
/*                Copy Right by siyiren   AT89c52   2008/4/8                    */
/*               ============================================                   */
/*                                                                              */
/*                                                                              */
/*                                                                              */
/*                                                                              */
/*==============================================================================*/
/********************************************************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint  unsigned int
sbit com1= P3^2;  //数码管公共端1
sbit com2= P3^3;  //数码管公共端2
sbit bu_p= P1^0;
sbit led1=P2^7;
sbit led5=P3^0;
sbit led6=P2^0;
sbit led7=P2^1;
sbit led8=P3^1;
sbit led9=P2^2;
sbit led10=P2^3;
sbit led11=P2^6;
sbit led12=P2^5;
sbit led13=P2^4;
sbit key4=P1^6;
sbit key3=P1^2;
sbit key8=P1^7;
sbit key2=P1^1;
sbit key5=P1^3;
sbit key6=P1^4;
sbit key7= P1^5;//+key
sbit pled1= P3^4;
sbit pled2= P3^5;
sbit pled3= P3^6;
sbit pled4= P3^7;
sbit pled5= P3^6;
uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //字码表
uchar  time[]={10,20,30,40,50,60,70,80,90,99};
uchar  dtime[2];
//uchar  PM[]={0xD0,0xE0};
uint   stime;
uint   numb=0;
uchar  tim=0;//中断次数计数器
uchar  Count=0;
uchar  num=0;
uchar  ledtim1=0;
uchar  ledtim2=0;
uchar  id1;
uchar  id2;
uchar  id3;
uchar  id5;
uchar  flag=1;
uchar  flagx=0;
uchar  lflag=0;
uchar  pflag=0;
uchar  kflag=0;
uchar  yflag=0;
uchar  keycount=0;
//uchar b_power;
/***************延时*************************************************************/
void delay()
{
unsigned char i,j;
for(j=0;j<255;j++);
for(i=0;i<255;i++);
}

void Delay1ms(unsigned int count)
{
	unsigned int i,j;
	for(i=0;i<count;i++)
	for(j=0;j<120;j++);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//+ 函数: delay 
//+ 功能: 按键和显示用延时
//+ 参数: x
//+ 返回: 无
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ 
void kdelay(uchar x)
{
   uchar i, j;
   for (i = x; i > 0; i--)
   {
      for (j = 0; j < 255; j++)
      {;}
   }
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//+ 函数原型声明
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//void Swbt(uchar bt,bit Sw);
//void Config(void);
//void delay(uchar x);
//void display(void);
//void GetKey(void);
//void Init(void);
//void TemperatuerResult(void);
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
/****************中断0**********************************************************/
void timer0(void) interrupt 1 using 1  //50ms来一次中断
{
    TH0=0x4b;
    TL0=0x0ff;
    //TH0=(65536-50000)/256;
    //TL0=(65536-50000)%256;
     tim++;
ledtim1++;
ledtim2++;

if(flag==0&&flagx==1)
{if(ledtim2==2)
{ pled1=0;
  pled2=0;
  pled3=0;
  pled4=1;}
if(ledtim2==2)
{
  pled1=1;
  pled2=0;
  pled3=0;
  pled4=0;}
 if(ledtim2==4)
{
  pled1=0;
  pled2=1;
  pled3=0;
  pled4=0;}
  if(ledtim2==6)
{
  pled1=0;
  pled2=0;
  pled3=1;
  pled4=0;

 ledtim2=0;

}
}


if(ledtim1==20)
{ led1=!led1;
  ledtim1=0;}
 if(tim==120)
	    {  tim=0;
           num++;
          if(num==10)       //如果计数值等于10,则让其回0
          {num=0;
           Count++;
          if(Count==stime)  //如果计数值等于stime,则让其回0
		{  Count=0;
           led8=1;
           bu_p=0x00;
           Delay1ms(2000);
           bu_p=0x01;
           EA=0;
           ET0=0;
        TR0=0;
     }   
   }
 }



}
/****************k中断********************************************************/
//void kzd(void) 
//{
//if(flag==1)
//
//   { TMOD=0x01;
//     TH0=0x4b;
//     TL0=0x0ff;
//        EA=1;
//        ET0=1;
//        TR0=1;} 
//}
/**************bp程序**********************************************************/
void  bp(void)
{ 
    if(!key7|!key5|!key6|!key4|!key3|!key8|!key2)
    {delay();
     bu_p=0x00;
     Delay1ms(2);}
    else 
    {bu_p=0x01;}
  
}
//**************pmlight******************************************************/
//void pmlight(void)
//{   
//}
/***************LED***********************************************************/
void LED(void)
{ 
if(lflag==0)
{if(!key4)
 {kdelay(50);
  if(!key4)
 {
  kflag=!kflag;
  led6=0;
  led7=1;
}
}
}

if(!key3)
 {kdelay(50);
 if(!key3)
  {keycount++;
if(keycount++==5)
  { 
   keycount=0; 
   flag=!flag;
   lflag=!lflag;
   led5=~led5;
   flagx=0;
}
}
}




if(lflag==0)
{ if(!key8)
 {kdelay(50);
 if(!key8)
{   pflag=!pflag;
    led7=0;
    led6=1;
}
}
}




if(!key5)
{
kdelay(100);
if(!key5)
{ keycount++;
if(keycount++==5)
  { keycount=0;
     //led8=1;
    led8=~led8;
    flag=!flag;
    flagx=1;
   pled1=1;
   pled2=1;
   pled3=1;
   pled4=1;
}       
}
}

if(lflag==1&&kflag==1)
 {  
if(!key8||!key4)
 {led5=0;
  led6=1;
  led7=0;
}
}


if(pflag==1&&lflag==1)
{
if(!key4||!key8)
{ led5=0;
  led6=0;
  led7=1;
}
}

if(flag==1)

   { TMOD=0x01;
     TH0=0x4b;
     TL0=0x0ff;
        EA=1;
        ET0=1;
        TR0=1;}

}
/**************tz**************************************************************/
void settime1(void)
{
  
if(!key2)
   {
      kdelay(100);
       if(!key2)
    { 
     id1++;
    if(id1==10)
    {   
      id1=0;
    }
   }
  }
}
//*****************************************************************************/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ 
void settime2(void)
{
if(!key6)
{
 kdelay(100);
if(!key6)
{
 id2++;
if(id2==2)
 {id2=0;
}
}
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/  
void settime3(void)
{if(!key7)
{
 kdelay(100);
if(!key7)
{
 id3++;
if(id3==3)
 {id3=0;
}
}
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ 
//void settime5(void)
//{if(!key5)
//{
// kdelay(50);
//if(!key5)
//{
// id5++;
//if(id5==2)
//{id5=0;
//}
//}
//}
//}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/

void setkey1(void)
{   
  switch(id1)
   {
          case 0: 

            stime=time[2]; 

            break; 

          case 1: 

            stime=time[3];

            break; 

          case 2: 

            stime=time[4];

            break; 

          case 3: 

            stime=time[5];

            break; 
          case 4: 

            stime=time[6];

            break; 

         case 5: 

            stime=time[7];


            break; 
         case 6: 

            stime=time[8];

            break; 
         case 7: 

            stime=time[9];

            break; 

         case 8: 
            
            stime=time[0];

            break; 
        
         case 9: 

            stime=time[1];

            break;

        case 10: 


          break; 
  }      
}

/*******************************************************************************/
void setkey3(void)
{   
  switch(id3)
   {
          case 0: 

           led11=1;
           led12=1;
           led13=0;
            break; 

          case 1: 
           led11=1;
           led12=0;
           led13=1;

            break; 

          case 2: 
           led11=0;
           led12=1;
           led13=1;
            break; 
           
           case 3: 
           led11=1;
           led12=0;
           led13=1;
            break; 
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
void setkey2(void)
{    
switch(id2)
   {
          case 0:
            led9=0;
            led10=1;
            break; 
          case 1:
            led9=1;
            led10=0;
            break; 

  }
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//void setkey5(void)
//{    
//switch(id5)
//  {
//           case 0:
//            flag=0;
//            led1=1;
//            led8=1;
//            TMOD=0x00;
//            TH0=0x00;
//            TL0=0x00;
//            EA=0;
//            ET0=0;
//            TR0=0;
//            break; 
//           case 1:
//           TMOD=0x01;
//           TH0=0x4b;
//           TL0=0x0ff;
           //TH0=(65536-50000)/256;
           //TL0=(65536-50000)%256;
//           EA=1;
//           ET0=1;
//           TR0=1;
//           Delay1ms(2);
//           flag=1;
//           Delay1ms(2);
//           led8=0;
//           break;
//++++++++++++++init++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//void init(void) 
//{   
//}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ 

/***************DISPLAY**********************************************************/
 void display(void)
 { 
 dtime[0]=((stime-Count)/10);
 dtime[1]=((stime-Count)-dtime[0]*10);
 P0=TAB[dtime[1]];
 com2=0;
 Delay1ms(2);
 com2=1;

 P0=TAB[dtime[0]];
 com1=0;
 Delay1ms(2);
 com1=1;
}

/**************Main************************************************************/
void main(void)
{  
   //uchar i;
   P1=0xff;
   P3=0xff;
   TH0=0x00;
   TL0=0x00;
   //EA=0;
   ET0=0;
   TR0=0;
   led7=0;
   led9=0;
   led11=0;
   // b_power++;
   //if (b_power&1) PCON=2;
	while(1)
	{   
        delay();        
        LED();
        //kzd();
        
         display();
        setkey1();
        setkey2();
        setkey3();
        //setkey5();
        settime1();
        settime2();
        settime3();
        //settime5();
        bp();
        Delay1ms(5);
 	    //i=(i+0)%2;
	}
}

⌨️ 快捷键说明

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