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

📄 智能化家电控制.c

📁 智能化家电控制.c 只有一个.c文件。。工程被删
💻 C
📖 第 1 页 / 共 2 页
字号:
/*		演示样机	*/
/*	智能化家电控制	*/

#include <reg8751.h>
#include <math.h>
#include <intrins.h>
#include <stdio.h>

sbit cd=P0^2;
sbit wr=P0^0;
sbit rd=P0^1;
sbit reset=P0^3;

sbit back_light=P3^6;

unsigned int time,adds;
unsigned char x,y;

/*	忙标志	*/
#pragma disable
unsigned char busy(void) {
	unsigned char dat;
	cd=1;rd=1;wr=1;
	P1=0xff;
	rd=0;
	dat=P1;
	rd=1;
	return(dat);
}
/* 数据,指令读写判别 */
#pragma disable
void p1(void) {				
	while ((busy()&3)!=3) {}
}
/* 数据自动读判别 */
#pragma disable
void p2(void) {				
	while ((busy()&4)!=4) {}
} 
/* 数据自动写判别 */
#pragma disable
void p3(void) {				
	while ((busy()&8)!=8) {}
}
/*	控制指令	*/
#pragma disable
void ctrl(unsigned char dat) {
	p1();
	cd=1;
	wr=0;
	P1=dat;
	wr=1;
}
/*	写数据	*/
#pragma disable
void write(unsigned char dat) {
	p1();
	cd=0;
	wr=0;
	P1=dat;
	wr=1;
	cd=1;
}
/*	自动写	*/
#pragma disable
void autowrite(unsigned char dat) {
	p3();
	cd=0;
	wr=0;
	P1=dat;
	wr=1;
	cd=1;
}
/*	读数据	*/
#pragma disable
unsigned char read(void) {
	unsigned char dat;
	p1();
	cd=0;
	P1=0xff;
	rd=0;
	dat=P1;
	rd=1;
	cd=1;
	return(dat);
}
/*	自动读数据	*/
#pragma disable
unsigned char autoread(void) {
	unsigned char dat;
	p2();
	cd=0;
	P1=0xff;
	rd=0;
	dat=P1;
	rd=1;
	cd=1;
	return(dat);
}
/*	显示图形和文本	*/
#pragma disable
void dp(unsigned char d) {	/*显示*/
	write(d);ctrl(0xc0);
}
/*	设定图形x,y值*/
#pragma disable
void ag(unsigned char x,unsigned char y) {	/*地址*/
	unsigned int xy;
	xy=y;
	xy=xy*16+x+256;
	write(xy&0xff);write(xy/256);ctrl(0x24);
}
/*	设定文本x,y值	*/
#pragma disable
void at(unsigned char x,unsigned char y) {	/*地址*/
	write(y*16+x);write(0);ctrl(0x24);
}
/*	点亮一点	*/
#pragma disable
void setb(unsigned char d) {
	ctrl(0xf8|d);
}
/*	清除一点*/
#pragma disable
void clrb(unsigned char d) {
	ctrl(0xf0|d);
}
/*	x,y处显示光标	*/
#pragma disable
void ab(unsigned char x,unsigned char y) {		/*光标*/
	ctrl(0x97);	/*光标开*/
	write(x);write(y);ctrl(0x21);
}
/*	取消光标	*/
#pragma disable
void noab(void) {	
	ctrl(0x9c);	
}

/*	lcd初始化	*/
void init(void) {
	reset=0;
	reset=1;
	write(0x0);write(0);ctrl(0x40);		/*文本首址*/
	write(0x10);write(0x0);ctrl(0x41);	/*文本区域*/
	write(0x0);write(0x1);ctrl(0x42);	/*图形首址*/
   	write(0x10);write(0x0);ctrl(0x43);	/*图形区域*/
	ctrl(0x81);	/*显示方式*/
	ctrl(0x90);	/*显示开关*/
	ctrl(0xa0);	/*光标形状*/
	at(0,0);
	ctrl(0xb0);	/*自动写方式*/
	for (adds=0;adds<1280;adds++) {
		autowrite(0x0);
	}
	ctrl(0xb2);/*结束自动写方式	*/
	ctrl(0x9c);
}






unsigned char code asc16[]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,126,129,165,129,129,189,153,129,129,126,0,0,0,0,
0,0,126,255,219,255,255,195,231,255,255,126,0,0,0,0,
0,0,0,0,108,254,254,254,254,124,56,16,0,0,0,0,
0,0,0,0,16,56,124,254,124,56,16,0,0,0,0,0,
0,0,0,24,60,60,231,231,231,24,24,60,0,0,0,0,
0,0,0,24,60,126,255,255,126,24,24,60,0,0,0,0,
0,0,0,0,0,0,24,60,60,24,0,0,0,0,0,0,
255,255,255,255,255,255,231,195,195,231,255,255,255,255,255,255,
0,0,0,0,0,60,102,66,66,102,60,0,0,0,0,0,
255,255,255,255,255,195,153,189,189,153,195,255,255,255,255,255,
0,0,30,14,26,50,120,204,204,204,204,120,0,0,0,0,
0,0,60,102,102,102,102,60,24,126,24,24,0,0,0,0,
0,0,63,51,63,48,48,48,48,112,240,224,0,0,0,0,
0,0,127,99,127,99,99,99,99,103,231,230,192,0,0,0,
0,0,0,24,24,219,60,231,60,219,24,24,0,0,0,0,
0,128,192,224,240,248,254,248,240,224,192,128,0,0,0,0,
0,2,6,14,30,62,254,62,30,14,6,2,0,0,0,0,
0,0,24,60,126,24,24,24,126,60,24,0,0,0,0,0,
0,0,102,102,102,102,102,102,102,0,102,102,0,0,0,0,
0,0,127,219,219,219,123,27,27,27,27,27,0,0,0,0,
0,124,198,96,56,108,198,198,108,56,12,198,124,0,0,0,
0,0,0,0,0,0,0,0,254,254,254,254,0,0,0,0,
0,0,24,60,126,24,24,24,126,60,24,126,0,0,0,0,
0,0,24,60,126,24,24,24,24,24,24,24,0,0,0,0,
0,0,24,24,24,24,24,24,24,126,60,24,0,0,0,0,
0,0,0,0,0,24,12,254,12,24,0,0,0,0,0,0,
0,0,0,0,0,48,96,254,96,48,0,0,0,0,0,0,
0,0,0,0,0,0,192,192,192,254,0,0,0,0,0,0,
0,0,0,0,0,40,108,254,108,40,0,0,0,0,0,0,
0,0,0,0,16,56,56,124,124,254,254,0,0,0,0,0,
0,0,0,0,254,254,124,124,56,56,16,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,24,60,60,60,24,24,24,0,24,24,0,0,0,0,
0,102,102,102,36,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,108,108,254,108,108,108,254,108,108,0,0,0,0,
24,24,124,198,194,192,124,6,6,134,198,124,24,24,0,0,
0,0,0,0,194,198,12,24,48,96,198,134,0,0,0,0,
0,0,56,108,108,56,118,220,204,204,204,118,0,0,0,0,
0,48,48,48,96,0,0,0,0,0,0,0,0,0,0,0,
0,0,12,24,48,48,48,48,48,48,24,12,0,0,0,0,
0,0,48,24,12,12,12,12,12,12,24,48,0,0,0,0,
0,0,0,0,0,102,60,255,60,102,0,0,0,0,0,0,
0,0,0,0,0,24,24,126,24,24,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,24,24,24,48,0,0,0,
0,0,0,0,0,0,0,254,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,
0,0,0,0,2,6,12,24,48,96,192,128,0,0,0,0,
0,0,56,108,198,198,214,214,198,198,108,56,0,0,0,0,
0,0,24,56,120,24,24,24,24,24,24,126,0,0,0,0,
0,0,124,198,6,12,24,48,96,192,198,254,0,0,0,0,
0,0,124,198,6,6,60,6,6,6,198,124,0,0,0,0,
0,0,12,28,60,108,204,254,12,12,12,30,0,0,0,0,
0,0,254,192,192,192,252,6,6,6,198,124,0,0,0,0,
0,0,56,96,192,192,252,198,198,198,198,124,0,0,0,0,
0,0,254,198,6,6,12,24,48,48,48,48,0,0,0,0,
0,0,124,198,198,198,124,198,198,198,198,124,0,0,0,0,
0,0,124,198,198,198,126,6,6,6,12,120,0,0,0,0,
0,0,0,0,24,24,0,0,0,24,24,0,0,0,0,0,
0,0,0,0,24,24,0,0,0,24,24,48,0,0,0,0,
0,0,0,6,12,24,48,96,48,24,12,6,0,0,0,0,
0,0,0,0,0,126,0,0,126,0,0,0,0,0,0,0,
0,0,0,96,48,24,12,6,12,24,48,96,0,0,0,0,
0,0,124,198,198,12,24,24,24,0,24,24,0,0,0,0,
0,0,0,124,198,198,222,222,222,220,192,124,0,0,0,0,
0,0,16,56,108,198,198,254,198,198,198,198,0,0,0,0,
0,0,252,102,102,102,124,102,102,102,102,252,0,0,0,0,
0,0,60,102,194,192,192,192,192,194,102,60,0,0,0,0,
0,0,248,108,102,102,102,102,102,102,108,248,0,0,0,0,
0,0,254,102,98,104,120,104,96,98,102,254,0,0,0,0,
0,0,254,102,98,104,120,104,96,96,96,240,0,0,0,0,
0,0,60,102,194,192,192,222,198,198,102,58,0,0,0,0,
0,0,198,198,198,198,254,198,198,198,198,198,0,0,0,0,
0,0,60,24,24,24,24,24,24,24,24,60,0,0,0,0,
0,0,30,12,12,12,12,12,204,204,204,120,0,0,0,0,
0,0,230,102,102,108,120,120,108,102,102,230,0,0,0,0,
0,0,240,96,96,96,96,96,96,98,102,254,0,0,0,0,
0,0,198,238,254,254,214,198,198,198,198,198,0,0,0,0,
0,0,198,230,246,254,222,206,198,198,198,198,0,0,0,0,
0,0,124,198,198,198,198,198,198,198,198,124,0,0,0,0,
0,0,252,102,102,102,124,96,96,96,96,240,0,0,0,0,
0,0,124,198,198,198,198,198,198,214,222,124,12,14,0,0,
0,0,252,102,102,102,124,108,102,102,102,230,0,0,0,0,
0,0,124,198,198,96,56,12,6,198,198,124,0,0,0,0,
0,0,126,126,90,24,24,24,24,24,24,60,0,0,0,0,
0,0,198,198,198,198,198,198,198,198,198,124,0,0,0,0,
0,0,198,198,198,198,198,198,198,108,56,16,0,0,0,0,
0,0,198,198,198,198,214,214,214,254,238,108,0,0,0,0,
0,0,198,198,108,124,56,56,124,108,198,198,0,0,0,0,
0,0,102,102,102,102,60,24,24,24,24,60,0,0,0,0,
0,0,254,198,134,12,24,48,96,194,198,254,0,0,0,0,
0,0,60,48,48,48,48,48,48,48,48,60,0,0,0,0,
0,0,0,128,192,224,112,56,28,14,6,2,0,0,0,0,
0,0,60,12,12,12,12,12,12,12,12,60,0,0,0,0,
16,56,108,198,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,
48,48,24,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,120,12,124,204,204,204,118,0,0,0,0,
0,0,224,96,96,120,108,102,102,102,102,124,0,0,0,0,
0,0,0,0,0,124,198,192,192,192,198,124,0,0,0,0,
0,0,28,12,12,60,108,204,204,204,204,118,0,0,0,0,
0,0,0,0,0,124,198,254,192,192,198,124,0,0,0,0,
0,0,56,108,100,96,240,96,96,96,96,240,0,0,0,0,
0,0,0,0,0,118,204,204,204,204,204,124,12,204,120,0,
0,0,224,96,96,108,118,102,102,102,102,230,0,0,0,0,
0,0,24,24,0,56,24,24,24,24,24,60,0,0,0,0,
0,0,6,6,0,14,6,6,6,6,6,6,102,102,60,0,
0,0,224,96,96,102,108,120,120,108,102,230,0,0,0,0,
0,0,56,24,24,24,24,24,24,24,24,60,0,0,0,0,
0,0,0,0,0,236,254,214,214,214,214,198,0,0,0,0,
0,0,0,0,0,220,102,102,102,102,102,102,0,0,0,0,
0,0,0,0,0,124,198,198,198,198,198,124,0,0,0,0,
0,0,0,0,0,220,102,102,102,102,102,124,96,96,240,0,
0,0,0,0,0,118,204,204,204,204,204,124,12,12,30,0,
0,0,0,0,0,220,118,102,96,96,96,240,0,0,0,0,
0,0,0,0,0,124,198,96,56,12,198,124,0,0,0,0,
0,0,16,48,48,252,48,48,48,48,54,28,0,0,0,0,
0,0,0,0,0,204,204,204,204,204,204,118,0,0,0,0,
0,0,0,0,0,102,102,102,102,102,60,24,0,0,0,0,
0,0,0,0,0,198,198,214,214,214,254,108,0,0,0,0,
0,0,0,0,0,198,108,56,56,56,108,198,0,0,0,0,
0,0,0,0,0,198,198,198,198,198,198,126,6,12,248,0,
0,0,0,0,0,254,204,24,48,96,198,254,0,0,0,0,
0,0,14,24,24,24,112,24,24,24,24,14,0,0,0,0,
0,0,24,24,24,24,0,24,24,24,24,24,0,0,0,0,
0,0,112,24,24,24,14,24,24,24,24,112,0,0,0,0,
0,0,118,220,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,16,56,108,198,198,198,254,0,0,0,0,0,
//128
/*时4217*/0,4,126,68,71,68,68,124,68,68,68,124,68,0,0,0,
8,8,8,8,254,8,8,136,68,8,8,8,72,40,16,0,
//130
/*间2868*/32,27,8,64,79,72,72,72,79,72,72,79,72,64,64,0,
4,254,4,36,244,36,36,36,79,36,36,228,36,20,8,0,
//132
/*日4053*/0,31,16,16,16,16,16,31,16,16,16,16,31,16,0,0,
16,248,16,16,16,16,16,240,16,16,16,16,240,16,0,0,
//134
/*期3858*/34,34,34,127,34,62,34,62,34,255,0,36,34,65,130,0,
4,126,68,68,68,124,68,68,34,196,68,68,132,20,8,0,
//136
/*闹3654*/64,55,16,66,65,95,65,65,79,73,73,73,65,65,64,0,
4,254,4,4,36,244,4,36,79,36,36,100,4,20,8,0,
//138
/*钟5451*/16,16,16,28,33,33,125,145,253,17,16,20,24,16,0,0,
32,32,32,36,254,36,36,36,253,36,32,32,32,32,32,0,
//140
/*温4634*/0,67,50,18,131,98,34,11,55,228,36,36,36,47,32,0,
8,252,8,8,248,8,8,248,55,164,164,164,164,254,0,0,
//142
/*度2240*/1,0,63,34,34,63,34,35,47,34,33,32,67,140,48,0,
0,132,254,32,40,252,32,224,47,32,64,128,96,30,4,0,
//144
/*湿4210*/0,71,52,20,135,100,36,15,49,233,37,35,33,63,32,0,
8,252,8,8,248,8,8,248,49,36,40,48,36,254,0,0,
//146
/*亮3333*/1,127,0,31,16,16,31,0,127,143,8,8,8,16,96,0,
8,252,16,248,16,16,240,0,127,244,32,32,34,34,30,0,
//148
/*警3015*/20,127,16,63,85,29,3,255,31,0,31,0,31,16,31,0,
64,124,200,40,16,110,4,254,31,0,240,0,240,16,240,0,
//150
/*告2470*/1,17,17,31,17,33,1,255,31,16,16,16,16,31,16,0,
0,0,16,248,0,0,4,254,31,16,16,16,16,240,16,0,
//152
/*星4839*/0,63,32,63,32,63,1,33,63,65,191,1,1,255,0,0,
8,252,8,248,8,248,0,8,63,16,248,0,4,254,0,0
};

/*	显示8*16点阵英文字母,反白	*/
void da(unsigned char n,bit un) {
	unsigned char i;
	unsigned int k=n;
	for (i=0;i<16;i++) {
		ag(x,y*8+i);
		if (un==0) dp(asc16[k*16+i]); else dp(255-asc16[k*16+i]);
	}
	if ((++x)>=16) {
		x=0;
		y+=2;
		if (y>=8) y=0;
	}
}
/*	反白文本/取消	*/
void da8(unsigned char n,bit un) {
	unsigned char i,j;
	for (j=0;j<n;j++) {
		for (i=0;i<8;i++) {
			ag(x,y*8+i);
			if (un==0) dp(0xff); else dp(0x0);
		}
		if ((++x)>=16) {
			x=0;
			y+=1;
			if (y>=8) y=0;
		}
	}

}
/*	划线	*/
void line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1) {
	unsigned char x=x1-x0,y=y1-y0,xx,temp;
	float yy;
	if (x>y) {
		yy=y0;
		for (xx=x0;xx<x1;xx++) {
			yy+=(float)y/x;
			ag((xx/8),yy);
			setb((7-xx&7));
		}
	} else {
		yy=x0;
		for (xx=y0;xx<y1;xx++) {
			yy+=(float)x/y;
			ag(yy/8,xx);
			setb((7-(char)yy&7));
		}
	}
}



//============================================
			/*	串行数据输出输入	*/
//============================================
sbit clock_dat=P3^4;
sbit clock_clk=P3^3;
sbit clock_rst=P3^5;
sbit sda=P3^3;
sbit scl=P3^4;
unsigned char bdata a;
sbit a0=a^0;
sbit a1=a^1;
sbit a2=a^2;
sbit a3=a^3;
sbit a4=a^4;
sbit a5=a^5;
sbit a6=a^6;
sbit a7=a^7;

void s_out(unsigned char dd) {
	a=dd;
	clock_dat=a0;clock_clk=1;clock_clk=0;
	clock_dat=a1;clock_clk=1;clock_clk=0;
	clock_dat=a2;clock_clk=1;clock_clk=0;
	clock_dat=a3;clock_clk=1;clock_clk=0;
	clock_dat=a4;clock_clk=1;clock_clk=0;
	clock_dat=a5;clock_clk=1;clock_clk=0;
	clock_dat=a6;clock_clk=1;clock_clk=0;
	clock_dat=a7;clock_clk=1;clock_clk=0;
}
unsigned char s_in(void) {
	clock_dat=1;
//	clock_clk=1;clock_clk=0;a0=clock_dat;
	a0=clock_dat;
	clock_clk=1;clock_clk=0;a1=clock_dat;
	clock_clk=1;clock_clk=0;a2=clock_dat;
	clock_clk=1;clock_clk=0;a3=clock_dat;
	clock_clk=1;clock_clk=0;a4=clock_dat;
	clock_clk=1;clock_clk=0;a5=clock_dat;
	clock_clk=1;clock_clk=0;a6=clock_dat;
	clock_clk=1;clock_clk=0;a7=clock_dat;
	return(a);
}
//=============================================
			/*	时钟	*/
//=============================================	

unsigned char read_clock(unsigned char ord) {
	unsigned char i,dd=0;
	clock_rst=1;
	s_out(ord);
	dd=s_in();
	clock_rst=0;
	return(dd);
}

⌨️ 快捷键说明

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