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

📄 switchboard.c

📁 Firmware that controlls the robotic griller
💻 C
字号:
#define buzzer_on 0x01
#define buzzer_off 0x02
#define disperse_coal 0x03
#define start_cooking 0x04
#define stop_cooking 0x05
#define on_fan 0x06
#define off_fan 0x07


unsigned short buffer,error,count,cook,fan_time;
unsigned int lapsed_time;
void Delay()
     {
     Delay_ms(5);
     }

void open_cover()
     {
     PORTA.F3 = 0;
     PORTB.F3 = 1;
     Delay_ms(3000);
     while (!PORTA.F2)
           {
          asm nop
           }
     PORTB.F3 = 0;
     PORTA.F3 = 0;
     Delay_ms(2000);
     }
     
void close_cover()
     {
     PORTA.F3 = 1;
     PORTB.F3 = 1;
     Delay_ms(3000);
     while (!PORTA.F2)
           {
          asm nop
           }
     PORTB.F3 = 0;
     PORTA.F3 = 0;
     Delay_ms(2000);
     }
     
void acknowledge()
     {
     TRISA.F0 = 0;
     PORTA = 1;
     Delay_ms(2000);
     PORTA = 0;
     TRISA.F0 = 1;
     }

void main ()
     {
     TRISA = 0x17;
     TRISB = 0x00;
     PORTA = 0;
     PORTB = 0;
     if (!PORTA.F2)
        {
        close_cover();
        }
     acknowledge();
     OPTION_REG = 0x03;
     Man_Receive_Config (&PORTA,0);
     Man_Synchro();
     fan_time = 0;
     cook.f0 = 0;
     while (1)
           {
           buffer = Man_Receive (error);
           if (buffer == buzzer_on )
              {
              PORTB.F0 = 1;
              }
           if (buffer == buzzer_off)
               {
               PORTB.F0 = 0;
               }
           if (buffer == start_cooking)
               {
               open_cover();
               acknowledge();
               PORTB.F1 = 1;
               PORTB.F2 = 1;
               }
           if (buffer == stop_cooking)
               {
               INTCON.GIE = 0;
               INTCON.T0IE = 0;
               PORTB.F1 = 0;
               PORTB.F2 = 0;
               Delay_ms(1000);
               close_cover();
               acknowledge();
               }
           if (buffer == disperse_coal)
              {
              open_cover();
              count = 180;
              while (count > 0)
                    {
                    PORTB.F4 = 1;
                    Delay();
                    PORTB.F4 = 0;
                    PORTB.F5 = 1;
                    Delay();
                    PORTB.F5 = 0;
                    PORTB.F6 = 1;
                    Delay();
                    PORTB.F6 = 0;
                    PORTB.F7 = 1;
                    Delay();
                    PORTB.F7 = 0;
                    count--;
                    }
              Delay_ms (1000);
              count = 180;
              while (count > 0)
                    {
                    PORTB.F7 = 1;
                    Delay();
                    PORTB.F7 = 0;
                    PORTB.F6 = 1;
                    Delay();
                    PORTB.F6 = 0;
                    PORTB.F5 = 1;
                    Delay();
                    PORTB.F5 = 0;
                    PORTB.F4 = 1;
                    Delay();
                    PORTB.F4 = 0;
                    count--;
                    }
              close_cover();
              open_cover();
              acknowledge();
              }
           if (buffer == on_fan)
              {
              PORTB.F1 = 1;
              }
           if (buffer == off_fan)
              {
              PORTB.F1 = 0;
              }
           }
     }


⌨️ 快捷键说明

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