77范文网 - 专业文章范例文档资料分享平台

智能家居控制系统的设计 - 图文(5)

来源:网络收集 时间:2019-03-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

陕西理工学院毕业设计

开始按键是否按下NY显示初始化状态显示当前状态up键按下Y调用液晶显示Ndown键按下Y红外解码发射无线命令NSet键按下YNNChoose键按下Y

图4.3 红外遥控控制子程序流程图

开始执行程序后判断之前是否有按键按下,若按下则清零,并通过显示模块显示当前窗帘的状态,然后通过按键控制窗帘是开启还是关闭,LCD1602显示窗帘的状态以及此时的温,光线值。红外遥控控制部分子程序如下:

/***********红外遥控子程序**************/ void hongwai_dis()

{ if(flag_jiema_en == 1) { flag_jiema_en = 0; switch(hw_table[2])

{ case 0x07: key_can = 4; break; //得到按键值 case 0x15: key_can = 3; break; //得到按键值 case 0x44: key_can = 2; break; //得到按键值 case 0x40: key_can = 1; break; //得到按键值 }

if(hw_table[2] == 0x45) //退出键 { menu_1 = 0;

write_guanbiao(1,2,0); //关闭光标

init_1602_dis_csf(); //初始化液晶显示 }

hw_table[2] = 0; //把数据清零 } }

4.2.3 显示电路子程序

LCD1602的显示只需要严格的按照厂家的时序要求进行编程就可以完成显示。LCD602的液晶显

示首先需要将需要显示地方的地址通过命令写入,然后将数据按顺序的进行写入即可。在写入地址后显示第一个内容后地址会自动加一。函数名write_string(uchar hang,uchar add,uchar *p),

第 15 页 共 66页

陕西理工学院毕业设计

参数为hang,add,*p,其中的hang,add表示在液晶显示屏上的位置坐标,*p是需要显示的字符数组。软件根据输入需要显示的位置坐标计算出地址。显示函数流程图如4.4所示。

开始hang=1YAdd=0x80+add;NAdd=0x80+0x40+add写入地址N*p!=‘\\0’?Y写入*p数据地址p++返回

图4.4 显示电路子程序流程图

显示电路部分子程序如下:

void write_string(uchar hang,uchar add,uchar *p) {if(hang==1)

write_com(0x80+add); else

write_com(0x80+0x40+add);

while(1) {

if(*p == '\\0') break; write_data(*p); p++; } }

4.2.4 电机驱动子程序

步进电机执行来自控制器的命令,判断其命令是否正确,若不正确则返回,若正确则继续执行命令,比较做出相应的动作,当窗帘到达指定的位置时停止,电机正转表示开窗帘,电机反转表示关窗帘,电机驱动流程图如4.5所示。

第 16 页 共 66页

陕西理工学院毕业设计

开始接入命令是否正确YN命令执行窗帘Y比较判断N电机正转电机反转返回

4.5电机驱动执行流程图

电机驱动部分子程序如下:

void bujindj() //步进电机函数 { static uchar i;

if(flag_z_f != 0)

{ if(flag_z_f == 1) //开 { if(bjdj_value >= 254) { flag_z_f = 0; bjdj_value = 254;

P2 = P2 & 0xf0; //让4个IO口都不输出 write_eeprom(); //保存 }else

bjdj_value ++; }

if(flag_z_f == 2) //关 { if(bjdj_value <= 1) { flag_z_f = 0; bjdj_value = 1;

P2 = P2 & 0xf0; //让4个IO口都不输出 write_eeprom(); //保存 }else

bjdj_value --; }

for(i=0;i<4;i++) //4相

第 17 页 共 66页

陕西理工学院毕业设计

}

}

{ if(flag_z_f == 1) //开

P2=zheng[i];// & (P2 | 0xf0); // else if(flag_z_f == 2)//关

P2=fan[i];// & (P2 | 0xf0); // else

P2 = P2 & 0xf0; //让4个IO口都不输出

delay_uint(500); //改变这个参数可以调整电机转速 }

4.3 程序编译与下载

KEIL uVISION4是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持, PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。首先我们用keil4建立一个工程项目,然后在.C的文件夹中写入程序,调试程序并不断修改,刚开始在调试程序的过程中,由于在主程序调用子程序时没有延时,所以将程序下载到单片机试验时,总是不停的打电话,而且发短信也是时而发,时而不发。最后,给程序加了延时以后,整个程序可以按要求来执行。程序编译界面如图4.4所示。根据编译结果,整个程序错误个数为0,有6个警告,说明程序是没有语法错误的,可以生成HEX文件。单片机烧录软件是STC单片机专用的STC—ISP,串口选择COM6口,最大下载速率为9600bit/S,最小下载速率为1200bit/S,3S后下载完毕,窗口显

示program OK, verify OK, Encrypt OK。

STC-ISP下载界面如图4.7所示。

图4.6 编译界面图

第 18 页 共 66页

陕西理工学院毕业设计

图4.7 STC下载界面

系统源程序见附录C。

第 19 页 共 66页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库智能家居控制系统的设计 - 图文(5)在线全文阅读。

智能家居控制系统的设计 - 图文(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/540729.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: