智能家居源碼
51hei.png (5.75 KB, 下載次數: 46)
下載附件
2020-5-15 17:09 上傳
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd43.h"
- #include "usart.h"
- #include "24cxx.h"
- #include "touch.h"
- #include "gui.h"
- #include "gui_time.h"
- #include "mygui.h"
- #include "sram.h"
- #include "24l01.h"
- #include "timer.h"
- #include "beep.h"
- #include "mygui_clock.h"
- #include "exfuns.h"
- #include "malloc.h"
- #include "mygui_inc.h"
- #include "myfont.h"
- #include "sim900a.h"
- #include "USART2.h"
- /******************************************************************/
- /*本程序只供學習使用,未經作者許可,不得用于其它任何用途 */
- /*本程序接口按神舟Ⅲ號stm開發板設計,如有錯誤,誠請指正! */
- /*本程序中部分內容來自互聯網,若未注明原作者,懇請諒解! */
- /*作者 :XING ZHE REN */
- /*建立日期: 2014.1.18 */
- /*版本:V2.0 */
- /*Copyright(C) DATOU */
- /******************************************************************/
- extern void TIM4_Int_Init(u16 arr,u16 psc);
- extern u8 TIM4_USE;
- int main(void)
- {
- DIR picdir; //圖片目錄
- delay_init(); //延時函數初始化
- NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
- uart_init(9600); //串口初始化為9600
- LED_Init(); //LED端口初始化
- LCD43_Init();
- KEY_Init();
- FSMC_SRAM_Init(); // Init sram
- TIM3_Init(2,36000-1);
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE); //必須加!!!!!
- GUI_Init();
- tp_dev.init();
-
- NRF24L01_Init();
- BEEP_Init();
-
- while(NRF24L01_Check());
- mem_init(SRAMIN); //初始化內部內存池
- exfuns_init(); //為fatfs相關變量申請內存
- f_mount(0,fs[0]); //掛載SD卡
- while(f_opendir(&picdir,"0:/PICTURE"))//打開圖片文件夾
- {
- LCD_ShowString(0,0,200,16,16,"PICTURE ER");
- delay_ms(200);
- LCD_Fill(60,150,240,146,WHITE);//清除顯示
- delay_ms(200);
- }
-
- KEY_Init();
- USART2_Init(36,115200);
- USE_XBF_YAHEI_9();
- GUI_SetFont(&Font_YAHEI9);
- GUI_SetTextMode(GUI_TM_TRANS);
- // GUI_SetColor(BLACK);
- while(1)
- {
-
- // sim900a_test();
- Main_Task();
- }
-
- }
復制代碼
- #include<stc12c5a.h>
- #include"24l01.h"
- #include"18b20.h"
- #include"usart.h"
- #include"spi.h"
- #include"1602.h"
- #include"delay.h"
- #include"bujin.h"
- #include"control_dev.h"
- #include"ds1302.h"
- uchar Buff[32];
- bit ReadTimeFlag;//定義讀時間標志
- _CONTROL_DEV CONTROL_DEV = {
- 0, //窗簾
- 0, //燈光
- 0, //火焰
- 0, //煙霧
- };
- /******************************************
- 控制器各位初始化
- *******************************************
- */
- void CONTROL_DEV_Init(void)
- {
- CONTROL_DEV.Curtain_sta = Buff[CURTAIN];
- Buff[LIGHTING] = 1;
- Buff[FIRE]=1;
- Buff[SMOG]=1;
- // Buff[NRF_TERMINAL_MODE_CHANGE] = OFF;
- }
- void Timer0Init(void) //1??@11.0592MHz
- {
- AUXR |= 0x80; //?????1T??
- TMOD &= 0xF0; //???????
- TMOD |= 0x01; //???????
- TL0 = 0xCD; //??????
- TH0 = 0xD4; //??????
- TF0 = 0; //??TF0??
- ET0 = 1;
- EA = 1;
- TR0 = 1; //???0????
- }
- void Timer0_isr(void) interrupt 1
- {
- static unsigned int num;
- TL0 = 0xCD; //??????
- TH0 = 0xD4; //??????
- num++;
- if(num==100) //大致100ms
- {
- num=0;
- ReadTimeFlag=1; //讀標志位置1
- }
- }
- void main(void)
- {
- unsigned char temp[16];//定義顯示區域臨時存儲數組
- int i; //注意i須為有符號型
- uchar cnt=0;
- uchar NRF_Mode=0;
- LCD_Init();
- UsartInit();
- Timer0Init();
- Ds1302_Init();
- CONTROL_DEV_Init();
-
- while(NRF24L01_Check())//檢測24L01
- {
- LCD_Str(0,0,"CHECK 24L01 !"); delay_ms(500);
- LCD_Str(0,0," "); delay_ms(500);
- } LCD_Str(0,0," NRF_connect:OK");
- LCD_Str(8,1,"Fire:FT");
- LCD_Str(8,1,"Fire:OK");
- LCD_Str(0,1,"Smog:FT ");
- LCD_Str(0,1,"Smog:OK ");
- RX_Mode(); //重要,不加程序跑飛
- NRF_Mode=RECEIVE;
- Ds1302_Write_Time();
- while(1)
- {
- printf("mode:%d\n",(int)NRF_Mode);
- if(NRF_Mode==RECEIVE) //0接收
- {
- if(NRF24L01_RxPacket(Buff)==0)
- {
- NRF_Mode=SEND; //printf(" RX_OK");
- TX_Mode();
- if(CONTROL_DEV.Curtain_sta != Buff[CURTAIN])
- {
- i=Buff[CURTAIN] - CONTROL_DEV.Curtain_sta;
- if(i>0)
- go(i*8, 1);
- else if(i<0)
- back((0-i*8), 1); //printf("back"); 注意數值的符號!!!!1
- CONTROL_DEV.Curtain_sta = Buff[CURTAIN];
- i=0;
- }
- if( Buff[LIGHTING] == 0)
- {
- Light = 0;
- }else if ( Buff[LIGHTING] == 1)
- Light = 1;
- }
- }else if(NRF_Mode==SEND) //發送
- {
- Buff[FIRE]=Fire;
- Buff[SMOG]=Smog;
- if(NRF24L01_TxPacket(Buff)==TX_OK)
- {
- NRF_Mode=RECEIVE;
- RX_Mode(); //printf(" TX_OK");
- }
- }
-
- /* if(ReadTimeFlag==1) //定時讀取ds1302 定時時間到 則標志位置1,處理過時間參數標志位清零
- {
- ReadTimeFlag=0; //標志位清零
- Ds1302_Read_Time();//讀取時間參數
- // sprintf(temp,"DATE %02d-%02d-%02d %d",(int)time_buf1[1],(int)time_buf1[2],(int)time_buf1[3],(int)time_buf1[7]);//年月日周
- // LCD_Str(0,0,temp);//顯示第一行
- // sprintf(temp,"TIME %02d:%02d:%02d",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]);//時分秒
- // LCD_Str(0,1,temp);//顯示第二行
- //printf("TIME %02d:%02d:%02d",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]);//時分秒
- }
- */
-
- }
- }
- //void Temp_Change(uchar i)
- //{
- // temp=ReadTemp()*20/32;
- // Buff[i++]=temp%1000/100+'0';
- // Buff[i++]=temp%100/10+'0';
- // Buff[i++]='.';
- // Buff[i++]=temp%10+'0';
- // Buff[i]='\0';
- // LCD_Str(12,0,&Buff[9]);
- //}
復制代碼
所有資料51hei提供下載:
智能家居系統源代碼.7z
(2.67 MB, 下載次數: 15)
2020-5-15 17:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|