标题:
STM32智能家居源码
[打印本页]
作者:
周成瑞
时间:
2020-5-15 15:00
标题:
STM32智能家居源码
智能家居源码
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
作者:
admin
时间:
2020-5-15 17:09
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1