多功能智能家居控制器设计_第1页
多功能智能家居控制器设计_第2页
多功能智能家居控制器设计_第3页
多功能智能家居控制器设计_第4页
多功能智能家居控制器设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:多功能智能家居控制器设计物联网是互联网技术的延伸和扩展,该技术正在被人们所熟知。基于物联网背景,课题着眼于为人们的生活起居,设计了一种多功能智能控制器。控制器分为主机和从机两部分。主机是控制器的主题,控制器提供两种用户输入方式:一种是通过语音识别用户指令,另一种是通过触摸屏输入用户指令。控制器提供两种输出方式:一种为通过TTF液晶显示相关数据,另一种为在出现室内参数异常情况下,通过GSM模块发送紧急通知短信。主控制器通过2.4GHzGFSK无线数据传输方式与从机进行通信,根据通信协议,主机、从机对收到的数据进行解析,得到相关数据。从机的主要功能是接受主机的指令和采集室内数据。从机通过接受主机的指令进行电灯、电视、窗帘等一般性的家居的控制。从机可以采集三类室内参数,一种通过单总线方式直接读取数字量参数,一种通过A/D采集模拟量,第三种是直接通过端口引脚采集开关信号等状态量。系统的数字量采集以DS18B20为代表,模拟量以室内湿度为代表,开关量以燃气泄漏报警信号为代表。控制器初步实现了智能家居语音识别、家电遥控及远程数据通信等基本控制功能,经进一步完善后将具备广泛的市场和应用前景。关键字智能家居;语音控制;无线通信;嵌入式;毕业设计中文摘要 毕业设计外文摘要TitleMultifunctionalSmartHomeControllerAbstractThingsisanextensionandexpansionofInternettechnology,thetechnologyisbeingwellknown.Basedonthebackgroundofthings,topicsfocusonpeople'sdailylife,designedamulti-functionalintelligentcontroller.Thecontrollerisdividedintotwoparts,masterandslave.Isthesubjectofthehostcontroller,theuserinputcontrollerprovidestwoways:oneisausercommandsthroughvoicerecognition,theotherisausercommandinputthroughthetouchscreen.Thecontrollerprovidestwooutputmodes:onefortheliquidcrystaldisplayrelateddatabyTTF,andtheotheroneisintheinteriorparametersappearabnormal,sendemergencynotificationmessagesviaGSMmodule.Themaincontrollervia2.4GHzGFSKwirelessdatatransmissiontocommunicatewiththeslave,accordingtoacommunicationprotocol,host,slavetoresolvethereceiveddatatoobtainrelevantdata.Themainfunctionofthemachineistoacceptahostofcommandsanddataacquisitioninterior.Generalhouseholdslavecontrollights,TV,curtainsandotherhostsbyacceptingcommands.Theslavecancapturethreeindoorparameters,areaddigitalparametersdirectlythroughasinglebusways,oneA/Danalogacquisitionthroughthirdiscollecteddirectlythroughtheportpinstatequantityswitchsignals.DigitalacquisitionsystemwithDS18B20representedanalogtoindoorhumidityrepresented,switchtogasleakalarmsignalisrepresentative.Thecontrollerinitiallyrealizedthesmarthomespeechrecognition,appliancecontrolandremotedatacommunicationsandotherbasiccontrolfunctions,furtherimprovementwillhaveawiderangeofmarketsandapplications.Keywordintelligenthome;voicecontrol;wirelesscommunication;embedded;第Ⅰ页共第Ⅰ页共Ⅰ页目录TOC\o"1-2"\h\u29849第1章绪论 195181.1课题研究背景 1169791.2研究现状分析 页附录1主机程序1#include"led.h"#include"delay.h"#include"key.h"#include"sys.h"#include"lcd.h"#include"usart.h" #include"flash.h"#include"sram.h"#include"malloc.h"#include"string.h"#include"mmc_sd.h"#include"ff.h"#include"exfuns.h"#include"fontupd.h"#include"text.h"#include"piclib.h"#include"string.h"#include"fattester.h"#include"piclib.h"#include"usmart.h"#include"rtc.h"#include"24cxx.h"#include"touch.h"#include"usart2.h" u8host_to_slave[7]={0xff,0x00,0x02,0x1a,0x00,0x01,0xee};//主机发给从机数据电视状态开/关频道1,2,3音量26灯开关窗帘开关u8host_to_slave_buf[7]={0xff,0x00,0x02,0x1a,0x00,0x01,0xee};//主机发给从机数据缓存u8slave_to_host_receive[5]={0xdd,0x16,0x14,0x01,0xcc};//从机发给主机数据温度湿度燃气IntUART2_light,UART2_window,TV_open,TV1,TV2,TV3,VOC1,VOC2,VOC3;//得到path路径下,目标文件的总个数//path:路径//返回值:总有效文件数u16pic_get_tnum(u8*path){ u8res;u16rval=0;DIRtdir; //临时目录FILINFOtfileinfo; //临时文件信息 u8*fn; res=f_opendir(&tdir,(constTCHAR*)path);//打开目录tfileinfo.lfsize=_MAX_LFN*2+1; //长文件名最大长度tfileinfo.lfname=mymalloc(SRAMIN,tfileinfo.lfsize); //为长文件缓存区分配内存if(res==FR_OK&&tfileinfo.lfname!=NULL) { while(1)//查询总的有效文件数 { res=f_readdir(&tdir,&tfileinfo); //读取目录下的一个文件if(res!=FR_OK||tfileinfo.fname[0]==0)break; //错误了/到末尾了,退出 fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname); res=f_typetell(fn); if((res&0XF0)==0X50)//取高四位,看看是不是图片文件 {rval++;//有效文件数增加1} }} returnrval;} intmain(void){ u8res; DIRpicdir; //图片目录 FILINFOpicfileinfo;//文件信息 u8*fn; //长文件名 u8*pname; //带路径的文件 u16totpicnum; //图片文件总数 u16curindex; //图片当前索引 //u8key; //键值 //u8pause=0; //暂停标记 u8t,i; u16temp; u16*picindextbl; //图片索引表unsignedintwind_num,light_num;delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600); //串口初始化为9600uart2_init(9600);LED_Init(); //LED端口初始化LCD_Init(); KEY_Init(); usmart_dev.init(72);//usmart初始化 mem_init(SRAMIN); //初始化内部内存池exfuns_init(); //为fatfs相关变量申请内存f_mount(0,fs[0]); //挂载SD卡f_mount(1,fs[1]); //挂载FLASH.RTC_Init(); //RTC初始化POINT_COLOR=RED;tp_dev.init();TP_Init();//触摸屏初始化while(font_init()) //检查字库 { LCD_ShowString(60,50,200,16,16,"FontError!"); delay_ms(200); LCD_Fill(60,50,240,66,WHITE);//清除显示 } while(f_opendir(&picdir,"0:/PICTURE"))//打开图片文件夹 { Show_Str(60,150,240,16,"PICTURE文件夹错误!",16,0); delay_ms(200); LCD_Fill(60,150,240,146,WHITE);//清除显示 delay_ms(200); }totpicnum=pic_get_tnum("0:/PICTURE");//得到总有效文件数 while(totpicnum==NULL)//图片文件为0 { Show_Str(60,150,240,16,"没有图片文件!",16,0); delay_ms(200); LCD_Fill(60,150,240,146,WHITE);//清除显示 delay_ms(200); }picfileinfo.lfsize=_MAX_LFN*2+1; //长文件名最大长度picfileinfo.lfname=mymalloc(SRAMIN,picfileinfo.lfsize); //为长文件缓存区分配内存pname=mymalloc(SRAMIN,picfileinfo.lfsize); //为带路径的文件名分配内存picindextbl=mymalloc(SRAMIN,2*totpicnum); //申请2*totpicnum个字节的内存,用于存放图片索引while(picfileinfo.lfname==NULL||pname==NULL||picindextbl==NULL)//内存分配出错 { Show_Str(60,150,240,16,"内存分配失败!",16,0); delay_ms(200); LCD_Fill(60,150,240,146,WHITE);//清除显示 delay_ms(200); } //记录索引res=f_opendir(&picdir,"0:/PICTURE");//打开目录 if(res==FR_OK) {curindex=0;//当前索引为0 while(1)//全部查询一遍 {temp=picdir.index; //记录当前indexres=f_readdir(&picdir,&picfileinfo);//读取目录下的一个文件 if(res!=FR_OK||picfileinfo.fname[0]==0)break; //错误了/到末尾了,退出 fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname); res=f_typetell(fn); if((res&0XF0)==0X50)//取高四位,看看是不是图片文件 { picindextbl[curindex]=temp;//记录索引 curindex++;}}}piclib_init(); //初始化画图 curindex=0;//从0开始显示res=f_opendir(&picdir,(constTCHAR*)"0:/PICTURE"); //打开目录 if(res==FR_OK)//打开成功 { dir_sdi(&picdir,picindextbl[curindex]); 改变当前目录索引 res=f_readdir(&picdir,&picfileinfo); //读取目录下的一个文件fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname); strcpy((char*)pname,"0:/PICTURE/");//复制路径(目录)strcat((char*)pname,(constchar*)fn); //将文件名接在后面LCD_Clear(BLACK);ai_load_picfile(pname,0,0,lcddev.width,lcddev.height);//显示图片delay_ms(1000);curindex++;dir_sdi(&picdir,picindextbl[curindex]); //改变当前目录索引 res=f_readdir(&picdir,&picfileinfo); //读取目录下的一个文件fn=(u8*)(*picfileinfo.lfname?picfileinfo.lfname:picfileinfo.fname); strcpy((char*)pname,"0:/PICTURE/"); //复制路径(目录)strcat((char*)pname,(constchar*)fn); //将文件名接在后面LCD_Clear(BLACK);ai_load_picfile(pname,0,0,lcddev.width,lcddev.height);//显示图片 //Show_Str(2,2,240,12,"智能家居",16,1); //显示图片名字}POINT_COLOR=BLACK;LCD_ShowString(240,10,200,8,16,"--"); LCD_ShowString(250,25,200,12,16,"::");POINT_COLOR=RED; while(1){ //ai_load_picfile(pname,0,0,lcddev.width,lcddev.height);//显示图片 if(host_to_slave[1]==0x01){Show_Str(45,147,12,12,"开",12,0);}else{Show_Str(45,147,12,12,"关",12,0);//电视机状态显示if(host_to_slave[2]==0x01){Show_Str(45,165,60,12,"中央电视台",12,0);}//电视台频道显示if(host_to_slave[2]==0x02){Show_Str(45,165,60,12,"河北电视台",12,0);} if(host_to_slave[2]==0x03){Show_Str(45,165,72,12,"北京电视台",12,0);} LCD_ShowxNum(45,183,host_to_slave[3],2,12,0);//音量 if(host_to_slave[4]==0x01){Show_Str(143,60,12,12,"开",12,0);}else{Show_Str(143,60,12,12,"关",12,0);}//灯光 if(host_to_slave[5]==0x01){Show_Str(50,67,12,12,"开",12,0);}else{Show_Str(50,67,12,12,"关",12,0);} //窗帘 if(slave_to_host_receive[3]==0x01){Show_Str(170,167,24,12,"正常",12,0);}else{Show_Str(170,167,24,12,"异常",12,0);} //燃LCD_ShowxNum(230,150,slave_to_host_receive[1],2,12,0);//温度 LCD_ShowxNum(246,120,slave_to_host_receive[2],2,12,0);//湿度POINT_COLOR=BLACK; if(t!=calendar.sec){ t=calendar.sec; LCD_ShowNum(240,10,calendar.w_year,4,16 LCD_ShowNum(280,10,calendar.w_month,2,16); LCD_ShowNum(304,10,calendar.w_date,2,16); switch(calendar.week) { case0: LCD_ShowString(280,40,48,16,16,"Su break; case1: LCD_ShowString(280,40,48,16,16,"Mon"); break; case2: LCD_ShowString(280,40,48,16,16,"Tue"); break; case3: LCD_ShowString(280,40,48,16,16,"Wed"); break; case4: LCD_ShowString(280,40,48,16,16,"Thu"); break; case5: LCD_ShowString(280,40,48,16,16,"Fri"); break; case6: LCD_ShowString(280,40,48,16,16,"Sat"); break; } LCD_ShowNum(260,25,calendar.hour,2,16); LCD_ShowNum(281,25,calendar.min,2,16); LCD_ShowNum(304,25,calendar.sec,2,16); }POINT_COLOR=RED;tp_dev.scan(0);if(tp_dev.sta&TP_PRES_DOWN) //触摸屏被按下{ /*LCD_ShowNum(0,0,tp_dev.x,4,16);LCD_ShowNum(0,20,tp_dev.y,4,16);*/if((tp_dev.x>40&&tp_dev.x<100)&&(tp_dev.y>220&&tp_dev.y<300)) {wind_num=!wind_num;LED2=!LED2;UART2_window=1;}//串口2发送数据} if(wind_num==1) {host_to_slave_buf[5]=0x01; if(UART2_window==1) { USART_SendData(USART2,0xFA); delay_ms(1);USART_SendData(USART2,0X5F); delay_ms(1);USART_SendData(USART2,0XA5); delay_ms(1);USART_SendData(USART2,0X04);delay_ms(1); UART2_window=0; tp_dev.x=0;tp_dev.y=0;}}else{host_to_slave_buf[5]=0x00;if(UART2_window==1){USART_SendData(USART2,0xFA);delay_ms(1);USART_SendData(USART2,0X5F); delay_ms(1);USART_SendData(USART2,0XA5);delay_ms(1);USART_SendData(USART2,0X05); UART2_window=0; tp_dev.x=0;tp_dev.y=0;}} if((tp_dev.x>40&&tp_dev.x<100)&&(tp_dev.y>150&&tp_dev.y<200)) {light_num=!light_num;LED2=!LED2;UART2_light=1;} if(light_num==0) {host_to_slave_buf[4]=0x01; if(UART2_light==1) {USART_SendData(USART2,0xFA);delay_ms(1);USART_SendData(USART2,0X5F);delay_ms(1);USART_SendData(USART2,0XA5); delay_ms(1);USART_SendData(USART2,0X08);delay_ms(1);UART2_light=0;tp_dev.x=0;tp_dev.y=0; }} else{host_to_slave_buf[4]=0x00;if(UART2_light==1){USART_SendData(USART2,0xFA);delay_ms(1);USART_SendData(USART2,0X5F);delay_ms(1);USART_SendData(USART2,0XA5);delay_ms(1);USART_SendData(USART2,0X09);UART2_light=0;tp_dev.x=0;tp_dev.y=0;}} } if(Usart_rx[3]==01){host_to_slave_buf[4]=0x01;} if(Usart_rx[3]==02){host_to_slave_buf[4]=0x00;} if(Usart_rx[3]==03){host_to_slave_buf[5]=0x01;} if(Usart_rx[3]==04){host_to_slave_buf[5]=0x00;} if(Usart_rx[3]==05){host_to_slave_buf[1]=0x01;TV_open=1;} if(Usart_rx[3]==06){host_to_slave_buf[1]=0x00;TV_open=0;} if(Rx_Flag==1){if(Usart_rx[3]==0X07&&TV_open==1){host_to_slave_buf[2]=0x01;delay_ms(300);USART_SendData(USART2,0xFA);delay_ms(1);USART_SendData(USART2,0X5F);delay_ms(1);USART_SendData(USART2,0XA5);delay_ms(1);USART_SendData(USART2,0X10);delay_ms(1);Rx_Flag=0;}if(Usart_rx[3]==0X08&&TV_open==1){host_to_slave_buf[2]=0x02;delay_ms(300);USART_SendData(USART2,0xFA); delay_ms(1);USART_SendData(USART2,0X5F);delay_ms(1);USART_SendData(USART2,0XA5);delay_ms(1); USART_SendData(USART2,0X11); delay_ms(1);Rx_Flag=0;} if(Usart_rx[3]==0X09&&TV_open==1){host_to_slave_buf[2]=0x03; delay_ms(300);USART_SendData(USART2,0xFA); delay_ms(1);USART_SendData(USART2,0X5F); delay_ms(1);USART_SendData(USART2,0XA5);delay_ms(1);USART_SendData(USART2,0X12); delay_ms(1);Rx_Flag=0;} if(Usart_rx[3]==0X10&&TV_open==1){delay_ms(300); host_to_slave_buf[3]=host_to_slave[3]+1; USART_SendData(USART2,0xFA); delay_ms(1); USART_SendData(USART2,0X5F); delay_ms(1);USART_SendData(USART2,0XA5);delay_ms(1);USART_SendData(USART2,0X13);delay_ms(1);Rx_Flag=0;}if(Usart_rx[3]==0X11&&TV_open==1){delay_ms(300);host_to_slave_buf[3]=host_to_slave_buf[3]-1;USART_SendData(USART2,0xFA);delay_ms(1);USART_SendData(USART2,0X5F);delay_ms(1);USART_SendData(USART2,0XA5); delay_ms(1);USART_SendData(USART2,0X14); delay_ms(1); Rx_Flag=0;} if((Usart_rx[3]==0X11||Usart_rx[3]==0X10||Usart_rx[3]==0X09||Usart_rx[3]==0X08||Usart_rx[3]==0X07)&&TV_open==0){ delay_ms(300); USART_SendData(USART2,0xFA); delay_ms(1);USART_SendData(USART2,0X5F);USART_SendData(USART2,0XA5); delay_ms(1);USART_SendData(USART2,0X07); delay_ms(1); Rx_Flag=0;}}USART_SendData(USART1,Usart_rx[3]);//串口2发送数据 // delay_ms(1);USART_SendData(USART1,Rx_Flag);//串口2发送数据 if(Usart_rx[3]==0x14) {Show_Str(230,225,96,12,"朋友周华健",12,0);}elseif(Usart_rx[3]==0x12) {Show_Str(230,225,96,12,"暖暖梁静茹",12,0);} elseif(Usart_rx[3]==0x13){Show_Str(230,225,96,12,"亲爱的张韶涵",12,0);}elseif(Usart_rx[3]==0x15) {Show_Str(230,225,96,12,"喜欢你邓紫棋",12,0);} else if(Usart_rx[3]==0x16) {Show_Str(230,225,96,12,"可惜不是你静茹",12,0);}else {Show_Str(230,225,96,12,"音乐没有播放",12,0);} if(host_to_slave_buf[1]!=host_to_slave[1]||host_to_slave_buf[2]!=host_to_slave[2]||host_to_slave_buf[3]!=host_to_slave[3]||host_to_slave_buf[4]!=host_to_slave[4]||host_to_slave_buf[5]!=host_to_slave[5]){for(i=1;i<6;i++){host_to_slave[i]=host_to_slave_buf[i];} for(i=0;i<7;i++){USART_SendData(USART1,host_to_slave[i]); delay_ms(1);}} if(slave_to_host_receive[3]==0x00){LED1=0; delay_ms(200); LED1=1;}if(slave_to_host_receive[1]>50&&slave_to_host_receive[1]!=85){LED3=0;delay_ms(200);LED3=1;} if(slave_to_host_receive[2]>60){LED2=0;delay_ms(200);LED2=1;delay_ms(200); LED0=!LED0; //myfree(SRAMIN,picfileinfo.lfname); //释放内存//myfree(SRAMIN,pname); //释放内存//myfree(SRAMIN,picindextbl); //释放内存 }}附录2主机程序2#include"led.h"#include"delay.h"#include"key.h"#include"sys.h"#include"usart.h"intmain(void){u8t,flag=0;u16i;delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200); //串口初始化为9600LED_Init(); //LED端口初始?KEY_Init();while(1){t=KEY_Scan(0); //????if(t){ if(flag==0){ switch(t){caseKEY_UP: //??LED2LED0=!LED0;break;caseKEY_LEFT: //??LED0??printf("AT+CMGF=1\r\n");delay_ms(100);printf("AT+CSMP=17,167,2,25\r\n");delay_ms(100);printf("AT+CSCS=\"UCS2\"\r\n");delay_ms(100);printf("AT+CMGS=\"00310033003100310031003500300031003200350036\"\r\n"); delay_ms(300);printf("4E3B4EBA60A8597DFF015C0F677063D0793A60A8FF0C60A876845BA46E298FC79AD8FF0C53EF80FD53D1751F706B707EFF0C8BF760A853CA65F659047406FF01");//温度delay_ms(300);USART_SendData(USART1,0x1A);delay_ms(300);flag=1;break;caseKEY_DOWN: //??LED1?? printf("AT+CMGF=1\r\n");delay_ms(100);printf("AT+CSMP=17,167,2,25\r\n"); delay_ms(100);printf("AT+CSCS=\"UCS2\"\r\n"); delay_ms(100);printf("AT+CMGS=\"00310033003100310031003500300031003200350036\"\r\n");delay_ms(300);printf("4E3B4EBA60A8597DFF015C0F677063D0793A60A8FF0C60A876845BA451856E7F5EA68FC79AD8FF0C53EF80FD53D1751F610F5916FF0C8BF760A853CA65F659047406FF01");//湿度delay_ms(300);USART_SendData(USART1,0x1A);delay_ms(300);flag=1;break;caseKEY_RIGHT: //????LED0,LED1??printf("AT+CMGF=1\r\n");delay_ms(100);printf("AT+CSMP=17,167,2,25\r\n");delay_ms(100);printf("AT+CSCS=\"UCS2\"\r\n");delay_ms(100);printf("AT+CMGS=\"00310033003100310031003500300031003200350036\"\r\n");delay_ms(300);printf("4E3B4EBA60A8597DFF015C0F677063D0793A60A8FF0C60A876845BA4518571C36C145F025E38FF0C53EF80FD53D1751F6CC49732FF0C8BF760A853CA65F659047406FF01");//燃气delay_ms(300);USART_SendData(USART1,0x1A);delay_ms(300); flag=1;break;}}}delay_ms(10);i++;if(i==1000){i=0;flag=0;}}}附录3从机程序#include"led.h"#include"delay.h"#include"key.h"#include"sys.h"#include"lcd.h"#include"usart.h" #include"adc.h"#include"ds18b20.h"#include"lcd12864.h"u16shidu;u8slave_to_host[5]={0xdd,0x16,0x14,0x01,0xcc};//从机发给主机数据温度湿度燃气u8slave_to_host_buf[5]={0xdd,0x16,0x14,0x01,0xee};//从机发给主机数据缓存温度湿度燃气u8host_to_slave_receive[7]={0xff,0x00,0x02,0x1a,0x00,0x01,0xee};//主机发给从机数据电视状态开/关频道1,2,3音量26灯开关窗帘开关constu8mynew1[]={"电视状态:"};constu8mynew2[]={"频道:"};constu8mynew3[]={"音量:"};constu8mynew4[]={"中央电视台"};constu8mynew5[]={"河北电视台"};constu8mynew6[]={"北京电视台"};constu8mynew7[]={"开"};constu8mynew8[]={"关"};intmain(void){ u16adcx; inti;shorttemperature;u8window_flag=0,TV_flag; delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(9600); //串口初始化为9600LED_Init();//LED端口初始化KEY_Init();//LCD_Init(); LCD1_Init(); Adc_Init();//ADC初始化while(DS18B20_Init()) //DS18B20初始化 {LCD_ShowString(60,130,200,16,16,"DS18B20Error");delay_ms(200);LCD_Fill(60,130,239,130+16,WHITE); delay_ms(200); } W_1byte(0,0,0x80);//电视状态delay_us(1);for(i=0;mynew1[i]!='\0';i++){W_1byte(0,1,mynew1[i]);}W_1byte(0,0,0x80+0x10);//频道for(i=0;mynew2[i]!='\0';i++){W_1byte(0,1,mynew2[i]);}W_1byte(0,0,0x88);//音量for(i=0;mynew3[i]!='\0';i++){W_1byte(0,1,mynew3[i]);} while(1) { if(KEY_Scan(1)==1) {LED1=1;slave_to_host_buf[3]=0;} else { LED1=0;slave_to_host_buf[3]=1;} adcx=Get_Adc_Average(ADC_Channel_11,10); shidu=(u16)((100*adcx)/4096.0); slave_to_host_buf[2]=shidu; //LCD_ShowxNum(156,130,shidu,4,16,0);//显示ADC的值 temperature=DS18B20_Get_Temp(); slave_to_host_buf[1]=temperature/10;LCD_ShowNum(60+40+8,150,slave_to_host_buf[1],2,16); //显示正数部分 if(host_to_slave_receive[4]==0){LED2=1;}else{LED2=0;}if(host_to_slave_receive[1]==0x01){W_1byte(0,0,0x85);//电视状态 delay_us(1);for(i=0;mynew7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论