單片機智能房間設計
1,可用鍵盤控制各個房間的用電器.
2,也可用無線遙控控制各個房間里的電器.
3,也可連接電腦,用電腦程序,控制各個房間里的電器.
4,帶一個大數(shù)碼管實時時鐘,用DS1302做.
只要時和分位,可代替大鐘.
整點報時(蜂鳴一下),可設定2 個鬧鈴,
5,可用4*4鍵盤直接調(diào)整時間,設定鬧鐘.
6,用兩個單片機互相通訊.
7,一個單片機負責鍵盤,時鐘,數(shù)碼管顯示,蜂鳴器
(取名2號機)
8,另一個單片機負責檢測傳感器輸入,連接NRF24L01無線模塊。輸出控制各個房間用電器,(取名1號機)
9,現(xiàn)在想到輸入傳感器有,2個光敏電阻傳感器,一個磁鐵干簧管傳感器。
10,輸出器件有,各房間的電燈,風扇,一個報警號筒。
功能將會不斷加.......
可學到的知識點:
我認最主要的是綜合各個模塊的能力。
1、DS1302的應用
2、鍵盤掃描程序、鍵盤輸入程序、。。。
工程進展:
2012年4月3日
做了有一個星期了,已完成時間顯示、4*4鍵盤直接調(diào)整時間、設定鬧鐘、整點報時。
2012年4月9日
現(xiàn)將一些變量、功能函數(shù)名摘錄如下。
bit tiaoshibz;//調(diào)時標示
uchar zhishuPointer;//調(diào)時 位指針
uchar zhishuPointer;//調(diào)時 位指針
uchar xianshipointer;//顯示旋轉(zhuǎn)指針
uchar miaojilu;//秒記錄,用于秒位閃爍
uchar miaojishu;//秒位閃亮的時間
bit miaobz;//秒位閃亮結(jié)束的標致
uchar data xiancun[4];//顯示緩存xiancun[0]為時的十位 xiancun[3]為分的個位
uchar miaojilu;//秒記錄,用于秒位閃爍
uchar miaojishu;//秒位閃亮的時間
bit miaobz;//秒位閃亮結(jié)束的標致
uchar data xiancun[4];//顯示緩存xiancun[0]為時的十位 xiancun[3]為分的個位
bit naozhongbz1,naozhongbz2;//鬧鐘啟動標致
bit naozhongnaolingbz;//鬧鐘鬧鈴開始標致
uchar naozhong1[4];//鬧鐘用定時用 naozhong[0]為時的十位 naozhong[3]為分的個位
uchar naozhong2[4];
uchar zhengdianbaoshi;//整點報時
bit naozhongnaolingbz;//鬧鐘鬧鈴開始標致
uchar naozhong1[4];//鬧鐘用定時用 naozhong[0]為時的十位 naozhong[3]為分的個位
uchar naozhong2[4];
uchar zhengdianbaoshi;//整點報時
/********鍵盤用***********/
uchar code SKEY[16]={10,11,12,13,3,6,9,14,2,5,8,0,1,4,7,15};
uchar code act[4]={0xfe,0xfd,0xfb,0xf7};
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/**********DS1302功能函數(shù)聲明**************/
void DS1302InputByte(unsigned char d);
unsigned char DS1302OutputByte(void);
void Write1302(unsigned char ucAddr, unsigned char ucDa);
unsigned char Read1302(unsigned char ucAddr);
void DS1302_SetProtect(bit flag);
void DS1302_SetTime(unsigned char Address, unsigned char Value);
void DS1302_GetTime(struct Clock *Time);
void TimeToStr(struct Clock *Time,bit bz);
/*void DateToStr(struct Clock *Time);*/
void Initial_DS1302(void);
//void BurstWrite1302(unsigned char *pWClock);//往DS1302寫入時鐘數(shù)據(jù)(多字節(jié)方式)
//void BurstRead1302(unsigned char *pRClock);//讀取DS1302時鐘數(shù)據(jù)(時鐘多字節(jié)方式)
//void DS1302_TimeStop(bit flag); // 是否將時鐘停止
uchar code SKEY[16]={10,11,12,13,3,6,9,14,2,5,8,0,1,4,7,15};
uchar code act[4]={0xfe,0xfd,0xfb,0xf7};
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/**********DS1302功能函數(shù)聲明**************/
void DS1302InputByte(unsigned char d);
unsigned char DS1302OutputByte(void);
void Write1302(unsigned char ucAddr, unsigned char ucDa);
unsigned char Read1302(unsigned char ucAddr);
void DS1302_SetProtect(bit flag);
void DS1302_SetTime(unsigned char Address, unsigned char Value);
void DS1302_GetTime(struct Clock *Time);
void TimeToStr(struct Clock *Time,bit bz);
/*void DateToStr(struct Clock *Time);*/
void Initial_DS1302(void);
//void BurstWrite1302(unsigned char *pWClock);//往DS1302寫入時鐘數(shù)據(jù)(多字節(jié)方式)
//void BurstRead1302(unsigned char *pRClock);//讀取DS1302時鐘數(shù)據(jù)(時鐘多字節(jié)方式)
//void DS1302_TimeStop(bit flag); // 是否將時鐘停止
/***********功能函數(shù)聲明*******************/
char scan_key(void);
void ControlInput(uchar a);
uchar jianceshuzhi(uchar pointer,char n);//檢測輸入數(shù)值是否合法
void zhishu(void);//鍵盤直接輸入
void naozhong(uchar bz1,uchar bz2);//鬧鐘 內(nèi)含整點報時(蜂鳴一下)
void baojing(uint);//鬧鈴聲
void shanshuo(uchar a);
/*********串口函數(shù)聲明**************/
void fasong (uchar a); //發(fā)送一字節(jié)
void huiying(void);//回應電腦,(發(fā)送輸入,輸出的狀態(tài)給電腦)
void yingda(void);
void yueding(bit a);
void Stringfasong(uchar *p);
char scan_key(void);
void ControlInput(uchar a);
uchar jianceshuzhi(uchar pointer,char n);//檢測輸入數(shù)值是否合法
void zhishu(void);//鍵盤直接輸入
void naozhong(uchar bz1,uchar bz2);//鬧鐘 內(nèi)含整點報時(蜂鳴一下)
void baojing(uint);//鬧鈴聲
void shanshuo(uchar a);
/*********串口函數(shù)聲明**************/
void fasong (uchar a); //發(fā)送一字節(jié)
void huiying(void);//回應電腦,(發(fā)送輸入,輸出的狀態(tài)給電腦)
void yingda(void);
void yueding(bit a);
void Stringfasong(uchar *p);
前天終于把兩個單片機用SPI接口通訊的試驗做成功了。
現(xiàn)在正在研究NRF24L01。把這個實驗做成功,再添加到智能房間程序中,就可以用無線遙控家里的用電器了。
2012年5月1日
NRF24L01 收發(fā)實驗己成功。
2012年5月6日
前幾天研究NRF2401時,一不小心接錯了線,燒壞了一塊。
昨天又在淘寶上買了兩塊,現(xiàn)在還在路上。
這幾天又研究了VB程序,就是在我去年編的那個人機界面上改的。取名叫“人機界面”。
下面是截圖:
能實現(xiàn)的功能有:
8個命令按鈕可控制P0的狀態(tài),單擊一次,狀態(tài)取反。
綠色正方形指示P0各位狀態(tài)。
8個綠色圓點指示P2口各位狀態(tài)。
關鍵詞:
單片機智能房
評論