- void main(void)
- {
- uchar PWKZ_cnt=0;//電源控制標志位,按鈕次數
- uchar LIGKZ_cnt=0;//照明控制標志位,按鈕次數
- PWKZ=0;//24V電源控制
- LIGKZ=0;//照明控制初始化
- P2=0;//所有電機不工作
- LCD_Init();//LCD初始化
- while(1)
- {
- if(S1==0)
- {
- Delay_ms(10);
- if(S1==0)
- {
- step=13; //S1臨時測試按鈕,測試完成后由矩陣鍵盤輸入step值
- while(SI==0);
- }
- }
- else
- {
- step=0;
- }
- switch(step)
- {
- case 0:
- {
- M1ZZ=0; //所有電機停止轉動
- M1FZ=0;
- M2ZZ=0;
- M2FZ=0;
- M3ZZ=0;
- M3FZ=0;
- M4ZZ=0;
- M4FZ=0;
- LCD_ShowNum(1,13,step,2);
- break;
- }
- case 1:
- M1ZZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M1正轉
- case 2:
- M2ZZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M2正轉
- case 3:
- M3ZZ=1;
- M4ZZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M3,M4正轉
- case 4:
- M3ZZ=1;
- M4FZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M3正轉,M4反轉
- case 5:
- M1FZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M1反轉
- case 6:
- M2FZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M2發轉
- case 7:
- M3FZ=1;
- M4FZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M3,M4反轉
- case 8:
- M3FZ=1;
- M4ZZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M3反轉,M4正轉
- case 9:
- M1ZZ=1;
- M2ZZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M1與M2正轉
- case 10:
- M1FZ=1;
- M2FZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //電機M1與M2反轉
- case 11:
- M1FZ=1;
- M2FZ=1;
- M3FZ=1;
- M4FZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //所有電機電機M1,M2,M3,M4反轉
- case 12:
- M1ZZ=1;
- M2ZZ=1;
- M3ZZ=1;
- M4ZZ=1;
- LCD_ShowNum(1,13,step,2);
- break; //所有電機電機M1,M2,M3,M4正轉
- case 13: /*照明控制程序*/
- // LCD_ShowString(1,1," ");
- LCD_ShowString(1,1,"lighting control");//在第1行照明控制
- LIGKZ_cnt++;
- if(LIGKZ_cnt==1)
- {
- LIGKZ=1; //燈亮
- LCD_ShowString(2,1,"Status: LightOn");//在第2行燈亮
- }
- if(LIGKZ_cnt==2)
- {
- LIGKZ=0;//燈滅
- LCD_ShowString(2,1,"Status: LightOff");//在第2行燈亮
- LIGKZ_cnt=0;
- }
- step = 0;
- break;
- case 14:
- if(step==14)
- {
- Delay_ms(10);
- if(step==14)
- {
- // LCD_ShowString(1,1," ");
- LCD_ShowString(1,1,"At stopped state");//在第1行照明控制-LCD顯示
- PWKZ_cnt++;
- if(PWKZ_cnt==1)
- {
- PWKZ=1;
- LCD_ShowString(2,1,"Status:Operation");//在第2行燈亮-LCD顯示
- }
- if(PWKZ_cnt==2)
- {
- PWKZ=0;
- LCD_ShowString(2,1," Please unlock ");//在第2行燈亮-LCD顯示
- PWKZ_cnt=0;
- }
- while(step==14)
- {
- Delay_ms(10);
- }
- }
- }
- break;
- case 15:
- break; //備用
- case 16:
- break; //備用
- }
- }
- }
復制代碼 |