1. 程式人生 > 實用技巧 >429【畢設課設】基於51微控制器定時開關智慧家電家居插座系統

429【畢設課設】基於51微控制器定時開關智慧家電家居插座系統

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

51微控制器定時開關智慧家電家居插座系統52
本系統由STC8C52微控制器、時鐘DS1302、LCD1602液晶顯示、按鍵、繼電器控制、蜂鳴器報警、紅外感測器及電源組成。
1、LCD1602液晶可以顯示時、分、秒、星期、年、月、日。
2、可以設定5個開的時間和5個關的時間,每一個時間都可以單獨設定成是否工作有效(Y/N),設定的時間並具有掉電儲存功能,儲存微控制器的內部,上電無需重新設定。
3、具有自動模式和手動模式,手動模式加、減鍵實現開關的開和關。
4、開機預設是自動模式,當前時間和設定開的時間一致時,繼電器開啟,當前時間和設定關的時間一致時繼電器關閉。
5、開關開啟關閉都有對應的蜂鳴器有相應聲音。
6、時間段的設定,具有掉電不丟失資料功能。
7、繼電器有指示燈,繼電器可以外接其他的家用電器。

uchar key_time,flag_value;      //用做連加的中間變數
bit key_500ms  ;

void Ircordpro(void);//紅外碼值處理函式
unsigned char  irtime;//紅外用全域性變數
bit irpro_ok,irok;
unsigned char IRcord[4];
unsigned char irdata[33];

//#include "key.h"
#include "ds1302.h"
#include "lcd1602.h"

bit open1,open2,open3,open4,open5,open6,open7,open8,open9,open10,open11,open12;
uchar fen1=0x30,shi1=0x06;	  //第1個開關的時間		 
uchar fen2=0x30,shi2=0x07;	  //第2個開關的時間		 
uchar fen3=0x10,shi3=0x08;	  //第3個開關的時間		       
uchar fen4=0x20,shi4=0x08;	  //第4個開關的時間		 
uchar fen5=0x00,shi5=0x09;	  //第5個開關的時間	 
uchar fen6=0x10,shi6=0x09;	  //第6個開關的時間	   
uchar fen7=0x50,shi7=0x09;	  //第7個開關的時間		
uchar fen8=0x00,shi8=0x10;	  //第8個開關的時間		  
uchar fen9=0x40,shi9=0x10;	  //第9個開關的時間		  
uchar fen10=0x50,shi10=0x10;	  //第10個開關的時間   

unsigned char initFlagData;	//初始化資料存讀取
/******************把資料儲存到微控制器內部eepom中******************/
void write_eeprom()
{
	SectorErase(0x2000);			   //擦除整個扇區 注意整個扇區資料都擦出了
	byte_write(0x2000, fen1);  //重新寫入值	
	byte_write(0x2001, shi1);  //重新寫入值
	byte_write(0x2002, fen2);  //重新寫入值
	byte_write(0x2003, shi2);  //重新寫入值
	byte_write(0x2004, fen3);  //重新寫入值
	byte_write(0x2005, shi3);  //重新寫入值
	byte_write(0x2006, fen4);  //重新寫入值
	byte_write(0x2007, shi4);  //重新寫入值
	byte_write(0x2008, fen5);  //重新寫入值
	byte_write(0x2009, shi5);  //重新寫入值
	byte_write(0x200a, fen6);  //重新寫入值
	byte_write(0x200b, shi6);  //重新寫入值