2基于LabVIEW和51单片机的空调远程控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图附录 1 STC12C5A60S2 引脚图
各引脚功能简单介绍如下: VCC:供电电压; GND:接地; P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每个管脚可吸收 8TTL 门电 流。当 P1 口的管脚写“1”时,被定义为高阻输入。P0 能够用于外部程序数据 存储器,它可以被定义为数据/地址的第八位。在 FLASH 编程时,P0 口作为原 码输入口,当 FLASH 进行校验时,P0 输出原码,此时 P0 外部电位必须被拉高;
NEC 采用 38Khz 载波,通过脉冲串之间的时间间隔来实现信号的编码,编码 的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成。
图 3 NEC 协议
起始位(引导码)为 9ms 高+4.5ms 低组成,有效数据为地址+地址反码+命令 +命令反码。引导码以及地址码的作用是为了不引起接收端相互干扰。反码的作 用是用来校准前面的地址和命令。逻辑 1 周期为 2.25ms(560us 高+1685us 低电 平)。逻辑 0 周期为 1.12ms(560us 高+560 低电平)。
1. 红外控制原理
在本实例中,我们要远程控制空调,那么应该先做一个遥控器出来,这个遥 控器可以用 51 单片机来做。然后我们就可以通过 LabVIEW 去远程控制 51 单片机。
首先为大家讲解红外的编码以及解码。我们已经学习过的涉及红外的控制应 该是光电门吧。挡光与通光,就可以量化为 1 和 0,这可以用一位二进制(1bit) 表示。一比特控制两种状态,如果我们要控制四种状态,就需要两比特(状态为 00,01,10,11)……依此类推。我们使用的某品牌空调遥控中编码是 67 位。
仿照我们前面学习的远程控制一盏 LED 灯,我们就可以来远程控制空调。 主要涉及的内容就是 TCP 通信和 VISA 仪器控制。TCP 是控制电脑与电脑 之间的。VISA 是控制单片机的串口的。
指令如下(注意指令都是单字符) 指0 1 2 3 4 5 6 7 8 9 a b c d e f 令 动 关 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 作闭度 度 度 度 度 度 度 度 度 度 度 度 度 度 度
编码信号(调制信号)
(被调制信号)
已调制信号
图 1 调制信号
对于接收端,我们选用 PC838 红外一体接收头就可以了,它可以对信号进 行解调并输出 TTL 编码信号。
图 2 解调
2. 红外编码协议
NEC 是红外编码协议中的较为基本一种,除此之外还有 RC5 等其他编码,遥 控厂家不同,编码或有不同。
3. 单片机系统的硬件
硬件上我们需要 51 单片机最小系统、MAX232 串口电路、红外发射电路(二 级放大)、红外接收电路和 1602 液晶显示电路。电路图如下:
图 5 51 最小系统
图 6 串口电路
图 7 液晶显示电
图 8 红外发射电路
图 9 红外接收电路
在这个实例中,我们需要 38Khz 载波,这可以用 555 时基电路产生,然后再 与编码信号一起输入逻辑与门电路中得到已调制信号;也可以用定时器来模拟, 本实例选用此法。再者,要编码解码 NEC 格式的红外信号中的脉冲长短,我们 可以用软件延时,也可以用定时器,本实例两种都用到。更有甚者,我们需要串 口接收数据,这需要一个波特率发生器。最后,当我们想给遥控加一个学习键的 功能,使得它能成为一个万用遥控时,还需要将解码的数据存储下来,这需要一 个足够容量的 EEPROM(电可擦可编程只读存储器,一种掉电后数据不丢失的 存储芯片)。综上,选用了 STC12C5A60S2 作为处理芯片。对此芯片介绍请见附 录 1:
到 P4.2 ), CCP1/P1.4 (也可通过寄存器设置到 P4.3); 16. PWM(2 路)/PCA(可编程计数器阵列,2 路):也可用来当 2 路 D/A 使用,
也可用来再实现 2 个定时器,也可用来再实现 2 个外部中断(上升沿中断/下降沿 中断均可分别或同时支持);
17.A/D 转换, 10 位精度 ADC,共 8 路,转换速度可达 250K/S(每秒钟 25 万 次)18.通用全双工异步串行口(UART),由于 STC12 系列是高速的 8051,可再用 定时器或 PCA 软件实现多串口;
P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接 收输出 4TTL 门电流。P1 口管脚写入“1”后,电位被内部上拉为高,可用作输 入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收;
1.增强型 8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统 8051; 2. 工 作 电 压 : STC12C5A60S2 系 列 工 作 电 压 : 5.5V3.3V(5V 单 片 机)STC12LE5A60S2 系列工作电压:3.6V2.2V(3V 单片机); 3.工作频率范围:0 35MHz,相当于普通 8051 的 0~420MHz; 4.用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节; 5.片上集成 1280 字节 RAM; 6.通用 I/O 口(36/40/44 个),复位后为:准双向口/弱上拉(普通 8051 传统 I/O 口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开 漏,每个 I/O 口驱动能力均可达到 20mA,但整个芯片最大不要超过 55Ma; 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真 器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片; 8.有 EEPROM 功能(STC12C5A62S2/AD/PWM 无内部 EEPROM); 9. 看门狗; 10.内部集成 MAX810 专用复位电路(外部晶体 12M 以下时,复位脚可直接 1K 电阻到地); 11.外部掉电检测电路:在 P4.6 口有一个低压门槛比较器,5V 单片机为 1.32V, 误差为+/5%,3.3V 单片机为 1.30V,误差为+/3%; 12.时钟源:外部高精度晶体/时钟,内部 R/C 振荡器(温漂为+/5%到+/10% 以内) 1 用户在下载用户程序时,可选择是使用内部 R/C 振荡器还是外部晶体/时 钟,常温下内部 R/C 振荡器频率为:5.0V 单片机为:11MHz~15.5MHz,3.3V 单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有 制造误差和温漂,以实际测试为准; 13.共 4 个 16 位定时器 两个与传统 8051 兼容的定时器/计数器,16 位定时器 T0 和 T1,没有定时器 2,但有独立波特率发生器 做串行通讯的波特率发生器 再 加上 2 路 PCA 模块可再实现 2 个 16 位定时器; 14. 2 个时钟输出口,可由 T0 的溢出在 P3.4/T0 输出时钟,可由 T1 的溢出 在 P3.5/T1 输出时钟; 15.外部中断 I/O 口 7 路,传统的下降沿中断或低电平触发中断,并新增支持上 升 沿 中 断 的 PCA 模 块 , Power Down 模 式 可 由 外 部 中 断 唤 醒 , INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置
4. 单片机系统的程序设计
对应于硬件电路的各个模块,程序也按照模块来进行设计,方便观察以及我
们以后调用。 我们设定从串口接收到 字符’0’时执行关闭指令; 字符’1’时发送 16 度(制冷、上下扫风、风速自动); 字符’2’时发送 17 度(制冷、上下扫风、风速自动); …… 字符’9’时发送 24 度(制冷、上下扫风、风速自动); 字符’a’时发送 25 度(制冷、上下扫风、风速自动); 字符’b’时发送 26 度(制冷、上下扫风、风速自动); …… 字符’f’时发送 30 度(制冷、上下扫风、风速自动); 发射波形如下:
接下来我们要将信号进行载波调制。就像移动通信中 GSM 采用 900M 频段一 样,红外通信选用 38Khz 的载波。克劳德·艾尔伍德·香农借鉴热力学提出信息 熵,认为信息是负熵,即信息是用来减少随机不定性的东西,提高频率是为了提 高抗干扰能力。
载波调制后已调制信号就携带了调制信号的信息。这样就可以发送了。
基于 LabVIEW 和 51 单片机的空调远程控制实例
CRH
二○一三年十一月
目录 1.红外控制原理 ...............................................................................3 2.红外编码协议 ...............................................................................3 3.单片机系统的硬件........................................................................ 4 4.单片机系统的程序设计 ................................................................ 5 5.远程操控——LabVIEW 上位机程序 .............................................7 附 录 1 .............................................................................................. 10 附 录 2(主函数程序)................................................................... 14
图 4 逻辑 1 与逻辑 0 的表示
对于该实例中某品牌的空调遥控,与 NEC 协议相近,为引导码(9ms 高+4.5ms
负)+35 位信息码(0 以 0.56ms 高+0.56ms 低表示,1 以 0.56mHale Waihona Puke Baidu 高+1.685ms 低表示)+0.56ms 高+20ms 低+32 位信息码+0.56ms 高。
19. STC12C5A60S2 系 列 有 双 串 口 , 后 缀 有 S2 标 志 的 才 有 双 串 口 , RxD2/P1.2(可通过寄存器设置到 P4.2),TxD2/P1.3(可通过寄存器设置到 P4.3);
20.工作温度范围:40 +85℃(工业级) / 0 75℃(商业级) 21.封装:PDIP40,LQFP44,LQFP48 I/O 口不够时,可用 2 到 3 根普通 I/O 口线外接 74HC164/165/595(均可级联)来扩展 I/O 口, 还可用 A/D 做按键扫描来 节省 I/O 口,或用双 CPU,三线通信,还多了串口。
图 13 空调服务器与客户端前面板
只要你建立一个可以发送字符的客户端,以及一个能接受字符并将指令写 入 VISA 的服务器即可。
图 14 字符发送简易客户端和字符接受简易服务器
或者建立用户体验良好的程序和界面。
附 录1
STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期 (1T)的单片机,是高速/低功耗/超强抗干扰的新一代 8051 单片机,指令代码完全 兼容传统 8051,但速度快 812 倍。内部集成 MAX810 专用复位电路,2 路 PWM,8 路高速 10 位 A/D 转换(250K/S),针对电机控制,强干扰场合。
图 10 发射红外波形图
设定接收到字符’x’时进入学习功能,即进行解码,把码值显示在液晶上并 存储在 EEPROM 中。
图 11 接收的红外波形
图 12 液晶显示解码
设定接收到字符’y’时发射学习到的码值。 如果感兴趣,可以参阅附录 2 中的程序(程序太多只附上主程序)。
5. 远程操控——LabVIEW 上位机程序
各引脚功能简单介绍如下: VCC:供电电压; GND:接地; P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每个管脚可吸收 8TTL 门电 流。当 P1 口的管脚写“1”时,被定义为高阻输入。P0 能够用于外部程序数据 存储器,它可以被定义为数据/地址的第八位。在 FLASH 编程时,P0 口作为原 码输入口,当 FLASH 进行校验时,P0 输出原码,此时 P0 外部电位必须被拉高;
NEC 采用 38Khz 载波,通过脉冲串之间的时间间隔来实现信号的编码,编码 的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成。
图 3 NEC 协议
起始位(引导码)为 9ms 高+4.5ms 低组成,有效数据为地址+地址反码+命令 +命令反码。引导码以及地址码的作用是为了不引起接收端相互干扰。反码的作 用是用来校准前面的地址和命令。逻辑 1 周期为 2.25ms(560us 高+1685us 低电 平)。逻辑 0 周期为 1.12ms(560us 高+560 低电平)。
1. 红外控制原理
在本实例中,我们要远程控制空调,那么应该先做一个遥控器出来,这个遥 控器可以用 51 单片机来做。然后我们就可以通过 LabVIEW 去远程控制 51 单片机。
首先为大家讲解红外的编码以及解码。我们已经学习过的涉及红外的控制应 该是光电门吧。挡光与通光,就可以量化为 1 和 0,这可以用一位二进制(1bit) 表示。一比特控制两种状态,如果我们要控制四种状态,就需要两比特(状态为 00,01,10,11)……依此类推。我们使用的某品牌空调遥控中编码是 67 位。
仿照我们前面学习的远程控制一盏 LED 灯,我们就可以来远程控制空调。 主要涉及的内容就是 TCP 通信和 VISA 仪器控制。TCP 是控制电脑与电脑 之间的。VISA 是控制单片机的串口的。
指令如下(注意指令都是单字符) 指0 1 2 3 4 5 6 7 8 9 a b c d e f 令 动 关 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 作闭度 度 度 度 度 度 度 度 度 度 度 度 度 度 度
编码信号(调制信号)
(被调制信号)
已调制信号
图 1 调制信号
对于接收端,我们选用 PC838 红外一体接收头就可以了,它可以对信号进 行解调并输出 TTL 编码信号。
图 2 解调
2. 红外编码协议
NEC 是红外编码协议中的较为基本一种,除此之外还有 RC5 等其他编码,遥 控厂家不同,编码或有不同。
3. 单片机系统的硬件
硬件上我们需要 51 单片机最小系统、MAX232 串口电路、红外发射电路(二 级放大)、红外接收电路和 1602 液晶显示电路。电路图如下:
图 5 51 最小系统
图 6 串口电路
图 7 液晶显示电
图 8 红外发射电路
图 9 红外接收电路
在这个实例中,我们需要 38Khz 载波,这可以用 555 时基电路产生,然后再 与编码信号一起输入逻辑与门电路中得到已调制信号;也可以用定时器来模拟, 本实例选用此法。再者,要编码解码 NEC 格式的红外信号中的脉冲长短,我们 可以用软件延时,也可以用定时器,本实例两种都用到。更有甚者,我们需要串 口接收数据,这需要一个波特率发生器。最后,当我们想给遥控加一个学习键的 功能,使得它能成为一个万用遥控时,还需要将解码的数据存储下来,这需要一 个足够容量的 EEPROM(电可擦可编程只读存储器,一种掉电后数据不丢失的 存储芯片)。综上,选用了 STC12C5A60S2 作为处理芯片。对此芯片介绍请见附 录 1:
到 P4.2 ), CCP1/P1.4 (也可通过寄存器设置到 P4.3); 16. PWM(2 路)/PCA(可编程计数器阵列,2 路):也可用来当 2 路 D/A 使用,
也可用来再实现 2 个定时器,也可用来再实现 2 个外部中断(上升沿中断/下降沿 中断均可分别或同时支持);
17.A/D 转换, 10 位精度 ADC,共 8 路,转换速度可达 250K/S(每秒钟 25 万 次)18.通用全双工异步串行口(UART),由于 STC12 系列是高速的 8051,可再用 定时器或 PCA 软件实现多串口;
P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接 收输出 4TTL 门电流。P1 口管脚写入“1”后,电位被内部上拉为高,可用作输 入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收;
1.增强型 8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统 8051; 2. 工 作 电 压 : STC12C5A60S2 系 列 工 作 电 压 : 5.5V3.3V(5V 单 片 机)STC12LE5A60S2 系列工作电压:3.6V2.2V(3V 单片机); 3.工作频率范围:0 35MHz,相当于普通 8051 的 0~420MHz; 4.用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节; 5.片上集成 1280 字节 RAM; 6.通用 I/O 口(36/40/44 个),复位后为:准双向口/弱上拉(普通 8051 传统 I/O 口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开 漏,每个 I/O 口驱动能力均可达到 20mA,但整个芯片最大不要超过 55Ma; 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真 器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片; 8.有 EEPROM 功能(STC12C5A62S2/AD/PWM 无内部 EEPROM); 9. 看门狗; 10.内部集成 MAX810 专用复位电路(外部晶体 12M 以下时,复位脚可直接 1K 电阻到地); 11.外部掉电检测电路:在 P4.6 口有一个低压门槛比较器,5V 单片机为 1.32V, 误差为+/5%,3.3V 单片机为 1.30V,误差为+/3%; 12.时钟源:外部高精度晶体/时钟,内部 R/C 振荡器(温漂为+/5%到+/10% 以内) 1 用户在下载用户程序时,可选择是使用内部 R/C 振荡器还是外部晶体/时 钟,常温下内部 R/C 振荡器频率为:5.0V 单片机为:11MHz~15.5MHz,3.3V 单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有 制造误差和温漂,以实际测试为准; 13.共 4 个 16 位定时器 两个与传统 8051 兼容的定时器/计数器,16 位定时器 T0 和 T1,没有定时器 2,但有独立波特率发生器 做串行通讯的波特率发生器 再 加上 2 路 PCA 模块可再实现 2 个 16 位定时器; 14. 2 个时钟输出口,可由 T0 的溢出在 P3.4/T0 输出时钟,可由 T1 的溢出 在 P3.5/T1 输出时钟; 15.外部中断 I/O 口 7 路,传统的下降沿中断或低电平触发中断,并新增支持上 升 沿 中 断 的 PCA 模 块 , Power Down 模 式 可 由 外 部 中 断 唤 醒 , INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置
4. 单片机系统的程序设计
对应于硬件电路的各个模块,程序也按照模块来进行设计,方便观察以及我
们以后调用。 我们设定从串口接收到 字符’0’时执行关闭指令; 字符’1’时发送 16 度(制冷、上下扫风、风速自动); 字符’2’时发送 17 度(制冷、上下扫风、风速自动); …… 字符’9’时发送 24 度(制冷、上下扫风、风速自动); 字符’a’时发送 25 度(制冷、上下扫风、风速自动); 字符’b’时发送 26 度(制冷、上下扫风、风速自动); …… 字符’f’时发送 30 度(制冷、上下扫风、风速自动); 发射波形如下:
接下来我们要将信号进行载波调制。就像移动通信中 GSM 采用 900M 频段一 样,红外通信选用 38Khz 的载波。克劳德·艾尔伍德·香农借鉴热力学提出信息 熵,认为信息是负熵,即信息是用来减少随机不定性的东西,提高频率是为了提 高抗干扰能力。
载波调制后已调制信号就携带了调制信号的信息。这样就可以发送了。
基于 LabVIEW 和 51 单片机的空调远程控制实例
CRH
二○一三年十一月
目录 1.红外控制原理 ...............................................................................3 2.红外编码协议 ...............................................................................3 3.单片机系统的硬件........................................................................ 4 4.单片机系统的程序设计 ................................................................ 5 5.远程操控——LabVIEW 上位机程序 .............................................7 附 录 1 .............................................................................................. 10 附 录 2(主函数程序)................................................................... 14
图 4 逻辑 1 与逻辑 0 的表示
对于该实例中某品牌的空调遥控,与 NEC 协议相近,为引导码(9ms 高+4.5ms
负)+35 位信息码(0 以 0.56ms 高+0.56ms 低表示,1 以 0.56mHale Waihona Puke Baidu 高+1.685ms 低表示)+0.56ms 高+20ms 低+32 位信息码+0.56ms 高。
19. STC12C5A60S2 系 列 有 双 串 口 , 后 缀 有 S2 标 志 的 才 有 双 串 口 , RxD2/P1.2(可通过寄存器设置到 P4.2),TxD2/P1.3(可通过寄存器设置到 P4.3);
20.工作温度范围:40 +85℃(工业级) / 0 75℃(商业级) 21.封装:PDIP40,LQFP44,LQFP48 I/O 口不够时,可用 2 到 3 根普通 I/O 口线外接 74HC164/165/595(均可级联)来扩展 I/O 口, 还可用 A/D 做按键扫描来 节省 I/O 口,或用双 CPU,三线通信,还多了串口。
图 13 空调服务器与客户端前面板
只要你建立一个可以发送字符的客户端,以及一个能接受字符并将指令写 入 VISA 的服务器即可。
图 14 字符发送简易客户端和字符接受简易服务器
或者建立用户体验良好的程序和界面。
附 录1
STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期 (1T)的单片机,是高速/低功耗/超强抗干扰的新一代 8051 单片机,指令代码完全 兼容传统 8051,但速度快 812 倍。内部集成 MAX810 专用复位电路,2 路 PWM,8 路高速 10 位 A/D 转换(250K/S),针对电机控制,强干扰场合。
图 10 发射红外波形图
设定接收到字符’x’时进入学习功能,即进行解码,把码值显示在液晶上并 存储在 EEPROM 中。
图 11 接收的红外波形
图 12 液晶显示解码
设定接收到字符’y’时发射学习到的码值。 如果感兴趣,可以参阅附录 2 中的程序(程序太多只附上主程序)。
5. 远程操控——LabVIEW 上位机程序