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

📄 1.c

📁 自己收藏的单片机程序——洗衣机的工作原理。c语言编写。
💻 C
字号:

#include<at89x52.h>

DEFINE waterin p1_6
DEFINE waterout p1_5
DEFINE swim p1_7

bit flag;
char Count,t;            		 // 用于中断程序的计数
unsigned char second;


void Timeinit(void)
{
	//秒表初始化
  	Count=0; t=0; second=0; flag=0;
  					 // 开定时器1,设定为工作方式2, 让定时中断时自动加载定时的初值
  	IE=0x8a;             		 //允许中断,选中T0,T1中断
	TMOD=0x21;     		         //定时器0,使用TR0启动方式,选中工作方式1,定时器1,使用TR1启动方式,工作方式2
  	TH1=0x06;        		 //设置定时初值 256-250=6   (250us,要实现10ms就要40次)
  	TL1=0x06;
  	TR1=1;
}
				         //用T1定时的秒表中断程序,工作方式2
void Miao(void) interrupt 3
{
	Count++;	
  	if(Count==40){
  		Count=0;  
		t++;                     //百分秒
		if(t==100){
			flag=1;
			t=0;
		else    second++;
		}
  	}
}


void Initcover() {			//盖子的中断程序
	EA=1;
	ET1=0;
	EX1=1;
}

void coverinterrupt() interrupt 2 {
	waterin=1;
	waterout=1;
	swim=1;

	while (cover) ;

	waterin=waterinflag;
	waterout=wateroutflag;
	swim=swimflag;
}

main() {                                   //洗衣机工作过程
	int i=0;
	Initcover();
	waterin=0;
	waterinflag=0;
	if (level==1) {
		waterin=1;
		waterinflag=1;
		for (i=0;i++;i<=1) {
			Timeinit();
			while (second!=10 && cover==1) {
				swim=0;
				swimflg=0;
				while(1) {
					if(flag) {
						flag=0;
						P1=~second;
					}
				}
			}
			Timeinit();
			while (second!=3 && cover==1) {
				swim=1;
				swimflg=1;
			}
		}
		Timeinit();
		while (second!=10 && coverflag==1) {
			waterout=0;
			wateroutflag=0;
		}
	}
}

⌨️ 快捷键说明

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