fbfs.c
来自「This code it to make a bottle filling sy」· C语言 代码 · 共 106 行
C
106 行
#include<reg52.h>
sbit VALVE=P3^6;
sbit BOTTLE=P3^7;
sbit FULL=P1^0;
sbit HALF=P1^1;
sbit EMPTY=P1^2;
void DelayMs(unsigned int value);
void main()
{
unsigned char i,Rxdata;
SCON=0x50;
TMOD=0x20;
TH1=0xFD; //9600 bits /sec
TR1=1;
P1=0xff;
BOTTLE=1;
VALVE=0;
while(1)
{
timeout:
VALVE=0;
while(BOTTLE==1)
{
if(EMPTY==0 && HALF==0 && FULL==0)
{
SBUF=0;
while(TI==0);
TI=0;
}
if(EMPTY==1 && HALF==0 && FULL==0)
{
SBUF=2;
while(TI==0);
TI=0;
}
if(EMPTY==1 && HALF==1 && FULL==0)
{
SBUF=5;
while(TI==0);
TI=0;
}
if(EMPTY==1 && HALF==1 && FULL==1)
{
SBUF=9;
while(TI==0);
TI=0;
}
i=0;
while(RI==0)
{
if(i>=100)
goto timeout;
DelayMs(1);
i++;
}
Rxdata=SBUF;
RI=0;
if(Rxdata==1)
VALVE=1;
else
if(Rxdata==3)
{
VALVE=1;
DelayMs(500);
VALVE=0;
DelayMs(200);
}
else
if(Rxdata==5)
{
VALVE=1;
DelayMs(500);
VALVE=0;
DelayMs(500);
}
else
if(Rxdata<=8)
VALVE=0;
else
VALVE=0;
}
VALVE=0;
}
}
//---------------------------------------
// Delay mS function
//---------------------------------------
void DelayMs(unsigned int count)
{ // mSec Delay 11.0592 Mhz
unsigned int i; // Keil v7.5a
while(count) {
i = 115; // 115 exact value
while(i>0) i--;
count--;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?