?? 1
字號:
/*-------------------------------------
On-line operating system V1.0
MCU W78E516 XAL 12MHz
Build by Gavin Hu, 2005.4.25
--------------------------------------*/
/*使用微機的超級中斷口控制,波特率為19200*/
//
#include <reg52.h> //52單片機定義文件
#include <stdio.h> //基本輸入輸出函數
#include <string.h> //字符串處理函數
#include <ctype.h> //字符處理函數
sbit ekp0 =P2^0; //模擬控制設備口,共6個
sbit ekp1 =P2^1;
sbit ekp2 =P2^2;
sbit ekp3 =P2^3;
sbit ekp4 =P2^4;
sbit ekp5 =P2^5;
/*--------------------------------------
void main(void)
---------------------------------------*/
void main(void)
{
unsigned char i,ch;
char chs[9]="\0"; //定義9個字符接收單元
SCON = 0x50; //串口方式1
T2CON = 0x30; //T2作波特率發生器,16位自動重裝模式
RCAP2L= 0xec; //波特率為19200時初值
TL2 = 0xec; //
RCAP2H= 0xff; //
TH2 = 0xff; //
TI = 1; //
TR2 = 1; //開波特率發生器
printf("\n"); //換行
while (1)
{
printf("%s","\n\t On-line operating system V1.0\n"); //系統開機顯示字符
printf("%s","\tBuild by Gavin Hu, all right reserved.\n");
while (1)
{
printf("%s","\nPlease input password:"); //提示輸入口令
scanf("%s",chs); // 接收狀態
if (strcmp(chs,"12345678")) //與系統密碼比較
printf("%s","Password error\n"); //口令錯提示,等待重新輸入口令
else break; // 口令正確,進入操作控制狀態
}
while (1)
{
printf("%s","\nOn-line operating system>"); //在線控制提示符
scanf("%s",chs); //接收字符串
for (i=0; i<4; i++) //將字符轉換為大寫
chs[i]=toupper(chs[i]);
if (!strcmp(chs,"EXIT")) break; //如為退出命令,退出在線控制
i=strlen(chs); //取字符串長度
ch=chs[2]; //取最后一個字符
chs[2]='\0'; //最后一個字符單元為00
if (i>3||strcmp(chs,"OP")||ch<'0'||ch>'5') //如字符串長度大于3或前二個不等于"OP"或最后一個數小于0或大于5//
{printf("%s","Bad command\n"); continue;} //提示命令錯,重新開始接收字符
printf("%s%c ","Equipment No:",ch); //命令正確,顯示設備號
switch (ch)
{
case '0': if (ekp0) {ekp0=0; printf("%s","on\n"); break;}//按最后一位數對端口操作并顯示"on"或"off"
else {ekp0=1; printf("%s","off\n"); break;}
case '1': if (ekp1) {ekp1=0; printf("%s","on\n"); break;}
else {ekp1=1; printf("%s","off\n"); break;}
case '2': if (ekp2) {ekp2=0; printf("%s","on\n"); break;}
else {ekp2=1; printf("%s","off\n"); break;}
case '3': if (ekp3) {ekp3=0; printf("%s","on\n"); break;}
else {ekp3=1; printf("%s","off\n"); break;}
case '4': if (ekp4) {ekp4=0; printf("%s","on\n"); break;}
else {ekp4=1; printf("%s","off\n"); break;}
case '5': if (ekp5) {ekp5=0; printf("%s","on\n"); break;}
else {ekp5=1; printf("%s","off\n"); break;}
default: break;
}
}
}
}
/***************************end********************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -