东华大学单片机课设空调遥控器.docx

上传人:b****5 文档编号:2871927 上传时间:2022-11-16 格式:DOCX 页数:34 大小:1.03MB
下载 相关 举报
东华大学单片机课设空调遥控器.docx_第1页
第1页 / 共34页
东华大学单片机课设空调遥控器.docx_第2页
第2页 / 共34页
东华大学单片机课设空调遥控器.docx_第3页
第3页 / 共34页
东华大学单片机课设空调遥控器.docx_第4页
第4页 / 共34页
东华大学单片机课设空调遥控器.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

东华大学单片机课设空调遥控器.docx

《东华大学单片机课设空调遥控器.docx》由会员分享,可在线阅读,更多相关《东华大学单片机课设空调遥控器.docx(34页珍藏版)》请在冰豆网上搜索。

东华大学单片机课设空调遥控器.docx

东华大学单片机课设空调遥控器

JonMMx2000

2012年6月21日——2012年7月5日

东华大学信息学院自动化系

单片机课程设计

空调机遥控发射机

姓名:

纪凯玲

学号:

150940401

目录:

一.项目概述…………………………………………2

二.系统设计………………………………………………3

三.硬件设计…………………………………………………5

四.软件设计……………………………………………11

五.系统仿真及调试……………………………………34

六.结果与展望………………………………………37

七.参考文献…………………………………………38

附录:

硬件电路原理图……………………………39

一、项目概述

空调遥控器可以用来庙宇空调机的控制温度(室内温度)、工作状态(常态、除湿、通风)、风扇风速(强、弱、中)以及定时时间(空调工作多少小时自动开机或延时多少小时自动开机)。

使用者在遥控器上庙宇预期的空调机工作状态、控制温度及延时时间后,这些参数即送至空调机,空调机按要求开始工作。

该遥控器的要求如下:

(1)数字显示器:

第一组显示时间,发送前指示设定的延时时间:

0——9h,发送后指示剩余的延时时间;第二组显示控制温度15——35℃。

(2)工作状态指示器3组:

第一组指示设定的工作状态:

常态、除湿、通风;第二组指示延时开机、延时停机、取消等三种延时要求;第三组指示空调机的三种工作速度:

慢速、中速、高速。

(3)红外发射管,发射的调制频率是45KHz。

(4)3节5号电供电。

(5)面板示意图见图。

设计以AT89C51为核心的遥控器电路,并编写相关的系统软件(汇编、C51程序均可)。

二、系统设计

i.设计思想

用两组LCD1602作为数字显示器分别显示主从机的时间和温度值,其中时间的切换利用AT89C51内部自带的定时器,工作状态利用LED灯的亮灭来指示,其中LED亮代表相对应的工作模式被选中,各种工作状态的切换使用8个独立按键来实现。

ii.方案可行性分析

数字显示器使用LCD1602显示时间和温度值,其中时间的切换利用AT89C51内部自带的定时器0,定时初值为3cb0,定时器工作模式为’01’16位定时器,工作状态利用LED灯的亮灭来指示,其中LED亮代表相对应的工作模式被选中,各种工作状态的切换使用8个独立按键来实现,分别位‘工作状态设定键’、‘延时状态设定键’、‘风速选定键’、‘温度+键’、‘温度-键’、‘延时时间位选定键’、‘延时时间设置键’、‘发送键’;按下‘发送键’后信息的发送使用串行口的方式发送给上位机并显现出来,当延时时间到启动空调。

利用串口查询的方式实现两台单片机之间通信的功能。

iii.总体方案

根据设计思想,将设计划分为四个模块:

按键模块、LED状态显示模块、LCD显示模块、双机串口通信模块。

a.按键模块

按键实现各种工作状态的切换,分别为‘工作状态设定键’、‘延时状态设定键’、‘风速选定键’、‘温度+键’、‘温度-键’、‘延时时间位选定键’、‘延时时间设置键’、‘发送键’,具体说明如下图1:

K1工作状态设定键(常态、除湿、通风)

K2延时状态设定键(延时开、延时关、取消)

K3风速选定键(慢、中、快)

K4温度设定键(增加+)

K5温度设定键(减少-)

K6延时时间位选定键(XXXXXX)

K7延时时间设置键(默认为循环增加)

K8发送键

        图1 -按键说明-

b.LED状态显示模块

工作状态利用LED灯的亮灭来指示,其中LED亮代表相对应的工作模式被选中,分别为‘正常’、‘除湿’、‘通风’、‘定时开’、‘定时关’、‘风速慢’、‘风速中’、‘风速高’,如下图2:

D1正常

D2除湿

D3通风

D4延时开(如果D4/D5两灯全灭则取消延时)

D5延时关

D6慢

D7中

D8高

 

        图2 -LED灯状态说明-

c.LCD显示模块

  用一个LCD显示模块显示主机(遥控)显示面板上的设定温度和延时时间;用另一个LCD显示模块显示从机(空调)显示面板上的温度和开关机状态。

  d.双机串口通信模块

利用串口查询的方式实现两台单片机之间通信的功能,单片机1(模拟遥控器)作为发送机,单片机2其(模拟空调)作为接收机。

主机P3.0/RXD、P3.1/TXD分别接从机的P3.1/TXD、P3.0/RXD引脚。

三、硬件设计

i.硬件电路工作原理

a.按键模块

按键实现各种工作状态的切换,分别为‘工作状态设定键’、‘延时状态设定键’、‘风速选定键’、‘温度+键’、‘温度-键’、‘延时时间位选定键’、‘延时时间设置键’、‘发送键’。

硬件原理图如下图3-1:

图3-1 ―按键硬件原理图―

当K1按下时,保持P0高5位状态,按下第一次最后一位置0,倒数第二、三位置1按下第二次时到数第二位置0,倒数第一、三位置1,按下第三次时倒数第三位置0,倒数第一、二位置1,依次循环,代码实现P0=(states1[i]&(P0|0x07));

当K2按下时,保持P0倒数第1、2、3位和正数第1、2、3状态按下第一次时倒数第一位亮表示延时开,按下第二次时倒数第五位亮表示延时关,按下第三次时倒数第3、4位皆灭表示取消延时,依次循环,代码实现:

P0=(states2[j]&(P0|0x18));

当K3按下时,保持P0低5位不变,按下最高两位置1,第三位置0,表示慢速,按下第二次时第二位置0,第一、三位置1,表示中速,按下第三次时第一位置0,第一、二位置1,依次循环,代码实现:

P0=(states3[k]&(P0|0xe0));

b.LED状态显示模块

工作状态利用LED灯的亮灭来指示,其中LED亮代表相对应的工作模式被选中,分别为‘正常’、‘除湿’、‘通风’、‘定时开’、‘定时关’、‘风速慢’、‘风速中’、‘风速高’,硬件原理图如下图3-2-1、图3-2-2:

图3-2-1 -主机(遥控)LED状态说明-

图3-2-2  -从机(空调)LED状态说明-

c.LCD显示模块

用一个LCD显示模块显示主机(遥控)显示面板上的设定温度和延时时间;用另一个LCD显示模块显示从机(空调)显示面板上的温度和开关机状态。

硬件原理图如图3-3-1、图3-3-2所示。

如图3-3-1 -主机(遥控)LCD连接原理-

如图3-3-1 -从机(空调)LCD连接原理-

d.双机串口通信模块

利用串口查询的方式实现两台单片机之间通信的功能,单片机1(模拟遥控器)作为发送机,单片机2其(模拟空调)作为接收机。

主机P3.0/RXD、P3.1/TXD分别接从机的P3.1/TXD、P3.0/RXD引脚。

硬件原题图如图3-4。

如图3-4 -双机串口通信连接原理-

e.总硬件原理图

将各个模块连接得如下图3-5所示的总体硬件连接原理图。

如图3-5 -总电路-

ii.参数计算

a.延时开关空调中,时间的切换利用AT89C51内部自带的定时器0,定时器工作模式为’01’为16位定时器设定为50ms,AT89C51的晶振为12MHz,50ms为50000个机器周期,定时值为50000,定时初值为

 

所以定时初值为0x3CB0.

b.发送机和接收机串口采用方式1,8位UART,波特率可变,其中T1的采用方式3(8位自填装模式),选用常用串口的波特率2400bits,计数初值为

由 

得 

  所以计数初值为0xF4F4.

四、软件设计

i.软件设计思想

主机从机均实现51单片机对LCD的控制,故将LCD的定义放在同一个文件中,在主机从机的主函数中使用外部声明函数进行引用。

LCD初始化子程序voidinitLCM(void)进行清屏,打开显示屏;

LCD延时子程序voiddelay_LCM(uint)实现延时K*1ms,12.000mhz;

LCD检测忙子程序voidlcd_wait(void)实现LCD内部等待;

写指令到LCD子函数voidWriteCommandLCM(ucharWCLCM,ucharBusyC)使LCD进入写模式;

写数据到LCD子函数voidWriteDataLCM(ucharWDLCM)使LCD进入写模式;

显示指定坐标的一个字符子函数voidDisplayOneChar(ucharX,ucharY,ucharDData)实现显示指定坐标的一个字符;

显示指定坐标的一串字符子函数voidDisplayListChar(ucharX,ucharY,unsignedchar*DData)实现显示指定坐标的一串字符子;

主机程序中,进行LCD初始化后,通过死循环while(1)不断扫描各按键状态,获取各状态,直至扫描到发送键K8被按下,则发送已获取的数据。

从机采用串口查询方式接收主机发送过来的数据,当单片机2的RI信号有效时,从机进行清楚中断标志后开始接收主机发送来的数据。

ii.程序流程图

a.主机(遥控)发送如图4-1、图4-2:

K1~K3:

图4-1 K1~K3流程图

K4~K8:

图4-2 K4~K8流程图

b.从机(空调)接收流程图如图4-3:

图4-3 从机接收程序流程图

iii.程序清单

a.LCD定义文件:

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineBUSY0x80//lcd忙检测标志

#defineDATAPORTP2//定义P0口为LCD通讯端口

sbitLCM_RS=P3^3;//数据/命令端

sbitLCM_RW=P3^4;//读/写选择端

sbitLCM_EN=P3^5;//使能信号

voiddelay_LCM(uint);//LCD延时子程序

voidlcd_wait(void);//LCD检测忙子程序

voidWriteCommandLCM(ucharWCLCM,ucharBusyC);//写指令到ICM子函数

voidWriteDataLCM(ucharWDLCM);//写数据到LCM子函数

voidDisplayOneChar(ucharX,ucharY,ucharDData);//显示指定坐标的一个字符子函数

voidinitLCM(void);//LCD初始化子程序

voidDisplayListChar(ucharX,ucharY,unsignedchar*DData);

//显示指定坐标的一串字符子函数

/*********延时K*1ms,12.000mhz**********/

voiddelay_LCM(uintk)

{

uinti,j;

for(i=0;i

{

for(j=0;j<60;j++)

{;}

}

}

/**********写指令到LCM子函数************/

voidWriteCommandLCM(ucharWC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1