1、摘 要智能家居是时代发展的产物,是住户想享受快速网上冲浪、便捷实时的通讯、安全防范、丰富娱乐生活、便捷的生活家居管理,优质物业管理等智能化住宅所特有的生活方式,使忙碌一天的人们真正体会到智慧家带来的生活乐趣。本设计以STC89C52RC单片机为核心设计数字时钟和智能窗帘:通过光敏电阻检测光线强弱,当光线强度达到一定的程度时,通过单片机控制电机将窗帘拉上,否则打开窗帘。另外用点阵显示时间和当前室内温度,由于下午十点后基本属于睡眠时间,故忽略光线强度,拉上窗帘并自动切换到手动模式,以节约电能,待第二天起床再将其切换至自动模式。由于一般电机无法自主精确定位,需要辅助器件构成一个闭环系统才能精确的控制
2、窗帘的张合程度,故本设计采用步进电机控制,通过齿轮变速,精确控制窗帘的张合程度,避免窗帘由于过度的张合造成损害,同时由于减少了辅助器件,节省了能源。同时,本设计还选用DS12C887时钟芯片,该芯片内部自带锂电池,即使在断电的情况下仍然能继续工作。该芯片有内置晶振,能够提供准确的时间,正常工作状态下工作一个月误差为+ 1分钟。芯片内部带有闹钟功能,带有世纪寄存器,能够解决世纪问题,还有闰年补偿能多项功能。比只利用晶振驱动的电子时钟功能更强大,时间更准确。关键词:单片机;智能窗帘;时钟芯片IAbstractIntelligent furniture is outcome of the devel
3、oping time. It is a special lifestyle with which residents can enjoy fast online surfing, convenient communication, safety guard and which can enrich residents entertainment, make their furnishing management more convenient and which can optimize their property management. It can provide people who
4、have been busy for a whole day with entertainment that intelligent ones bring to them. These are designs called digital clock and intelligent curtain that center on STC89C52RC MCU. It detects whether the light is hard or not through photosensitive electric resistance. When light is hard to some leve
5、l, the curtain is closed under the control of the MCU on the generator, and is opened on the contrary. In addition, it shows time and the present indoors temperature with dot matrix. Light can be neglected after 10 oclock pm when most people have fallen asleep. At this time, the curtain is closed an
6、d get to be under manual mode, so as to cut down electricity consumption, it was not turned to automatic mode until residents getting up in the morning. Commonly seen generators are not able to fix precisely, they can form a closed loop system to realize precise control on curtains only with the hel
7、p of some assistant devices. Thus, this design precisely controls curtains under the control of steering engines and with gears to alter the speed. By that, curtains are protected from damages by over-operation. At the same time, less assistant devices are used and energy consumption is cut down. Me
8、anwhile, the design selects DS12C887 chips which contain lithium cells themselves and which can continue operating even when it is out of electricity. Such chips contain some internally installed crystal that can provide precise time with only one minutes error within one month when operating normal
9、ly. Such chips also have alarm function and century register. Thus, they can solve century problem. This design is much stronger and preciser than any electric clocks using only crystal to operate.Keywords: MCU; intelligent curtain; clock chipII设计说明基于单片机的智能家居控制系统设计是在指导老师给出的任务书并在其指导下完成的。设计任务主要是以STC89
10、C52RC单片机为核心设计数字时钟和智能窗帘:通过光敏电阻检测光线强弱,当光线强度达到一定的程度时,通过单片机控制电机将窗帘拉上,否则打开窗帘。另外用点阵显示时间,由于下午十点后基本属于睡眠时间,故忽略光线强度,拉上窗帘,待第二天八点之后再将其切换至自动模式。该智能家居系统设计有以下几点基本要求:(1) 硬件电路的设计(包含元器件的选择)。(2) 窗帘和电机之间的连接。(3) 程序设计。针对上述要求,经过考虑,我构思出具有自身特色的智能家居系统,设计主要内容为:(1) 单片机最小系统模块:整个控制系统都是依靠单片机完成。从功能和价位以及本题目要求来看,我们选择STC89C52RC芯片作为本系统
11、的控制核心,同时可以实现控制、显示等功能。(2) 点阵显示模块:由于本系统比较复杂,且所有软件和硬件设计都由本人独立完成,点阵模块原理本人比较了解,本系统需要四块16*16的点阵显示,电路焊接工作量比较大,故采购市场上现成的点阵模块。四块16*16的点阵级联后,显示年月日,星期,时分秒和当前室内温度。(3) 数字时钟模块:选用DS12C887时钟芯片,该芯片内部自带锂电池,即使在断电的情况下仍然能继续工作。DS12C887在完全没有外部电源的情况下工作11天花费10%的电量,电池最多充电1000次,即每11天充一次电,芯片能工作30年。该芯片有内置晶振,能够提供准确的时间,正常工作状态下工作一
12、个月误差为1分钟。芯片内部带有闹钟功能,带有世纪寄存器,能够解决世纪问题,还有闰年补偿能多项功能。比只利用晶振驱动的电子时钟功能更强大,时间更准确。(4) 光敏模块:通过光敏电阻检测室内光线强度,并转换为数字量输出。(5) 温度采集模块:选择温度传感器进行数据采集,并通过点阵显示当前室内温度。(6) 窗帘控制模块:通过步进电机控制窗帘是否打开。在做本设计的过程中,我查阅了很多的相关资料,其中主要的技术资料是各个芯片的资料,如:STC89C52RC单片机资料、点阵显示资料、光敏元件资料、温度传感器资料等。关键词:单片机;点阵显示;温度;时钟III目 录1 引言11.1 研究背景11.2 研究的目
13、的与意义11.2.1 国外研究情况11.2.2 国内研究情况21.3 本课题研究的主要内容和研究方案22 智能家居控制系统总体介绍32.1 系统总体方案32.2 系统功能32.3 系统结构33 智能家居控制系统硬件设计43.1 系统主要芯片介绍43.1.1 STC89C52RC43.1.2 DS12C88753.1.3 DS18B2083.1.4 74HC13893.1.5 74HC595103.2 系统各个模块硬件电路介绍113.2.1 单片机最小系统设计113.2.2 DS12C887时钟电路设计123.2.3 点阵显示电路设计134 智能家居控制系统软件设计174.1 主程序设计174.
14、2 显示程序的设计184.3 DS18B20程序流程图224.4 DS12C887程序流程图234.5 步进电机控制程序235 智能家居控制系统调试255.1 软件调试255.2 硬件调试265.2.1 短路与虚焊检测265.2.2 上电测试276 结论29参考文献30致谢31附录32附录A 电路原理图32附录B 设计源程序34V1 引 言智能家居概念的起源很早,但一直未有具体的建筑案例出现,直到1984年美国联合科技公司将建筑设备信息化、整合化概念应用于美国康乃迪克州哈特佛市的CityPlaceBuilding时,才出现了首栋的“智能型建筑”,从此揭开了全世界争相建造智能家居的序幕。1.1
15、研究背景智能家居又称智慧家居/智能住宅,在国外常用Smart Home表示。与智能家居含义近似的有家庭自动化、电子家庭、数字家园、家庭网络、网络家居、智能家庭/建筑,在中国香港和台湾等地区,还有数码家庭、数码家居等称法。 智能家居是时代发展的产物,是住户想享受快速网冲浪、便捷实时的通讯、安全防范、丰富娱乐生活、便捷的生活家居管理,优质物业管理等智能化住宅所特有的生活方式,使忙碌一天的人们真正体会到智慧家带来的生活乐趣。1.2 研究的目的与意义20世纪70年代,发达国家就开始对智能家居进行研究。1984年,美国第一栋智能建筑落成,从此以后欧美国家也相继提出了各种智能家居方案,并且广泛进行推广。目
16、前,发达国家的智能家居已经获得长足发展。如美国的x-10,CEBus和Lonwork,日本的HBS,欧洲的EIB和EHS,在国际上都比较有影响1。1.2.1 国外研究情况 1983年,美国电子工业协会组织专门机构开始制定家庭电气设计标准,并于1988年编制了第一个适用于家庭住宅的电气设计标准-家庭自动系统与通信标准。1998年5月,在“98亚洲家庭电器与电子消费品国际博览会”上,新加坡首次推出了新加坡模式的智能家居系统,并现场模拟“未来之家”,其系统功能强大,包括三表抄送、电话接入、智能布线箱、安防报警、监控中心、有线电视接入、住宅信息留言、可视对讲、家庭智能控制面板、家电控制、宽带网介入和系
17、统软件配置等功能。目前美国则有近4万户家庭安装了这类系统,在新加坡有近30个社区的约5000户家庭采用了这种家庭智能化系统2。1.2.2 国内研究情况与国外相比,我国对智能家居和家庭网络等相关产品的研制起步较晚,但是政府部门在政策和标准等方面,不断加大扶持力度,指导行业发展。目前,建设部批准建立7个普及型网络社区,北京市已经计划建设30个网络社区,总户数达3万户。我国将住宅小区智能化定义为:利用4C(计算机、通信与网络、自控、IC卡)技术,通过有效的传输网络,将多元信息服务与管理、物业管理与安防、住宅智能化系统集成,为住宅小区的服务与管理提供高技术的智能化手段,以期实现快捷高效的超值服务与管理
18、,提供安全舒适的家居环境。1.3 本课题研究的主要内容和研究方案以STC89C52RC单片机为核心,设计数字时钟和智能窗帘:通过光敏电阻检测光线强弱,当光线强度达到一定的程度时,通过单片机控制电机将窗帘拉上,否则打开窗帘。窗帘有手动和自动两种模式。另外用点阵显示时间,由于下午十点后基本属于睡眠时间,故忽略光线强度,拉上窗帘并自动切换到手动模式,以节约电能,待第二天起床再将其切换至自动模式。研究方案:(1) 利用光敏电阻采集室外的光线强度。(2) 利用单片机来分析光敏电阻采集的信号,然后输出控制信号。(3) 通过单片机控制电机来调节窗帘的起闭。(4) 利用DS12C887时钟芯片制作数字时钟,并
19、通过点阵显示。(5) 利用温度传感器检测室内温度,并通过点阵显示。2 智能家居控制系统总体介绍2.1 系统总体方案本设计以STC89C52RC单片机为核心,通过光敏电阻检测光线强弱,然后通过步进电机控制窗帘的张合程度。用温度传感器DS18B20检测当前室内温度,DS12C887时钟芯片制作数字时钟并用点阵显示时间和温度。2.2 系统功能本系统的开发设计有一下功能:(1) 通过检测光线的强弱控制窗帘是否打开。(2) 通过温度传感器DS18B20检测当前室内温度。(3) 通过时钟芯片DS12C887时钟芯片制作数字时钟。(4) 通过点阵显示年月日,时分秒,星期,温度。2.3 系统结构该系统的组成结
20、构如图2.1所示。控制器STC89C52RC光敏电阻温度传感器步进电机点阵模块时钟电路图2.1 系统组成结构3 智能家居控制系统硬件设计3.1 系统主要芯片介绍3.1.1 STC89C52RCSTC89C52RC是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52RC使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O
21、口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52RC可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选3。参数:(1) 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。(2
22、) 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)。(3) 工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz。(4) 用户应用程序空间为8K字节。(5) 片上集成512字节RAM。(6) 通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向口/弱上拉, P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻4。(7) ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。(8)
23、 具有EEPROM功能。(9) 具有看门狗功能。(10) 共3个16位定时器/计数器。即定时器T0、T1、T2。(11) 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒。(12) 通用异步串行口(UART),还可用定时器软件实现多个UART。(13) 工作温度范围:-40+85(工业级)/075(商业级)。(14) PDIP封装5。3.1.2 DS12C887(1) 器件特性:DS12C887实时时钟芯片功能丰富,可以用来直接代替IBM PC上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887相兼容。由于DS
24、12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决了“千年”问题;DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113直接通过RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方
25、波输出,并可对其内部的三路中断通过软件进行屏蔽6。(2) 引脚功能: DS12C887的引脚图排列如图3.1所示,各管脚说明如下:GND、VCC:直流电源,其中VCC接+5输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3时,DS12C887会自动将电源转换到内部自带的锂电池上,以保证内部的电路能够正常工作。MOT:模式选择脚,DS12C887有两种工作模式,即Motorola模式和Intel模式,当MOT
26、接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。本文主要讨论Intel模式。 图3.1 DS12C887引脚图SQW:方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。 AD0AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0AD7上的数据信息。 AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0AD7上出现的地址信息锁存到DS12C88
27、7上,而下一个下降沿清除AD0AD7上的地址信息,不论是否有效,DS12C887都将执行该操作。 DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0AD7上,以供外部读取。在写操作中,DS的下降沿将使总线AD0AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即Read Enable。 R/W:读/写输入端,该管脚也有2种工作模式,当MO
28、T接VCC时,R/W工作在Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intel模式,此时该作为写允许输入,即Write Enable。 CS:片选输入,低电平有效。 IRQ:中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。 在DS12C887内有11字节RAM用来存储时间信息,4字节用来存储控制信息,
29、其具体的地址及取值如表3.1所列。 由表3.1可以看出:DS12C887内部有控制寄存器的A-B等4个控制寄存器,用户都可以在任何时候对其进行访问以对DS12C887进行控制操作7。表3.1 DS12C887的存储功能地址功能取值范围十进制数取值范围二进制BCD码0 秒0-59 00-3B 00-591 秒闹钟0-59 00-3B 00-592 分0-59 00-3B 00-593 分闹钟0-59 00-3B 00-594 12小时模式1-1201-0C AM81-8C PM01-12 AM81-92 PM 24小时模式0-23 00-17 00-235 时闹钟,12小时制1-1201-0C
30、AM81-8C PM01-12 AM81-92 PM 时闹钟,24小时制0-23 00-17 00-236星期几(星期天=1)1-7 01-07 01-077 日1-31 01-1F 01-318 月1-12 01-0C 01-129 年0-99 00-63 00-9910 控制寄存器A11 控制寄存器B12 控制寄存器C13 控制寄存器D50 世纪0-99 NA 19,203.1.3 DS18B20DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线)。 DSl8B20的
31、电源可以由数据线本身提供而不需要外部电源。因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上。这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55到+125,增量值为0.5,可在ls(典型值)内把温度变换成数字8。每一个DSl8B20包括一个唯一的64位长的序号,该序号值存放在DSl8B20内部的ROM(只读存贮器)中。开始8位是产品类型编码(DSl8B20编码均为10H)。接着的48位是每个器件唯一的序号。最后8位是前面56位的CRC(循环冗余校验)码。DSl8B20中还有用于贮存测得的温度值的两个8位存贮器RAM,
32、编号为0号和1号。 1号存贮器存放温度值的符号,如果温度为负(),则1号存贮器8位全为1,否则全为0。0号存贮器用于存放温度值的补码,LSB(最低位)的“1”表示0.5。将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值(-55125)。DSl8B20的引脚如图3.2所示。每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长;采取外部供电方式则多用一根导线,但测量速度较快9。图3.2 DS18B20引脚图DS18B20电路图如图3.3所示:图3.3 DS18B20电路图3.1.4 74HC13
33、874HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8
34、输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态10。74HC138与74HC238逻辑功能一致,只不过74HC138为反相输出。74HC138的功能表如表3.2所示:表3.2 74HC138功能表74HC138引脚图如图3.4所示:图3.4 74HC138引脚图3.1.5 74HC59574HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。数据在SHcp的上升沿输入到移位寄存器中,在STcp的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则
35、移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线11。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。特点:8位串行输入/8位串行或并行输出;存储状态寄存器,三种状态;输出寄存器(三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路。)可以直接清除100MHz的移位频率12。引脚说明:Q0-Q7:8位并行数据输
36、出,其中Q0为第15脚。GND:第8脚,地。Q7:第9脚,串行数据输出。MR:第10脚,主复位(低电平)。SHCP:第11脚,移位寄存器时钟输入。STCP:第12脚,存储寄存器时钟输入。OE:第13脚,输出有效(低电平)。DS:第14脚,串行数据输入。VCC:第16脚,电源。74HC595引脚图如图3.5所示:图3.5 74HC595引脚图3.2 系统各个模块硬件电路介绍3.2.1 单片机最小系统设计单片机最小系统原理图如图3.6所示:图3.6 单片机最小系统以STC89C52单片机为核心,选用12MHZ的晶振,由于晶振的频率越高,单片机的运行速度就越快,但考虑到单片机的运行速度快会导致对存储
37、器的要求就会变高,因此 12MHZ晶振为最佳选择。外接电容的值虽然没有严格的要求,但是外接电容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选用30pF的电容作为起振电容。复位电路为按键高电平复位,当按键按下,RES端为高电平,当高电平持续4us的时间就可以使单片机复位13。3.2.2 DS12C887时钟电路设计本系统采用DS12C887时钟芯片定时及计时功能,DS12C887时钟芯片共需要13条信号线。GND、VCC:直流电源,其中VCC接+5V输入,GND接地。MOT:模式选择脚,本系统采用Intel模式。SQW:方波输出脚,当供电电压VCC大于4.25V 时,SQ
38、W脚可进行方波输出。AD0AD7:复用地址数据总线,该总线采用分时复用技术,在总线周期的前半部分,出现在AD0AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0AD7上的数据信息。AS:地址选通输入脚。DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接GND时,选用Intel 工作模式,在该模式中,该引脚是读允许输入脚。R/W:读/写输入端,该管脚也有2种工作模式,当MOT接GND时,该脚工作在Intel模式,此时该作为写允许输入。CS:片选输入,低电平有效。 IRQ :中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和R
39、AM 中的内容没有任何影响,仅内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。时钟电路如图3.7所示:图3.7 DS12C887时钟电路3.2.3 点阵显示电路设计显示部分包括了一块显示屏,以及驱动该显示屏的驱动电路。由于单片机的I/O口有限,不能直接用I/O口来驱动LED显示屏,所以需要对单片机I/O口进行扩展增加单片机并行输出的能力。LED显示屏是由一个一个的发光二极管点阵构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来;二是选用一些由单
40、个发光二极管构成的LED点阵子模块构成大的LED点阵模块。目前市场上普遍采用的点阵模块有88、1616几种;这两种屏幕构成方法各有有缺点,单个发光二极管构成显示屏优点在于当单个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。这就加大了维修的成本。两种方法相比较,决定采取模块构成的方法来制作一个LED点阵显示屏。本设计采用1664的点阵显示屏,为了降低电路出现问题时检修的难度,将1664的点阵显示屏分为四个独立的1616的LED点阵屏,
41、再将四个1616的LED点阵屏级联成1664的点阵显示屏。同时为了避免模块的缺点,选择点阵数较小的模块来减小出现这一问题的风险,所以构建一个1616的LED点阵屏选用四块88点阵模块。88点阵模块如图3.8所示:图3.8 88点阵模块一个1616的LED显示屏行和列各有16支引脚,不能单靠51单片机的端口驱动所以必须要对单片机的端口个数进行扩展。经常采用的端口扩展方法是用串并转换芯片进行译码。常用的串并转换芯片有74LS154(4线-16线译码器)、74HC138(8位串并转换器)、74HC595等。51系列单片机端口低电平时,吸入电流可达20,具有一定的驱动能力;而为高电平时,输出电流仅数十
42、甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力,所以单片机不能直接驱动LED显示屏显示。在单片机和显示屏之间还需要增加以功能放大为目的的驱动电路14。3.2.3.1 行驱动系统设计译码电路的功能是为了解决单片机I/O端口不足。行译码所用器件为串并转换器74HC138。两个138级联成4线-16线译码器,三级管Q1-Q16接显示屏H1-H16解决了显示屏供电不足的问题。具体电路如图3.9所示:图3.9 行驱动电路图3.2.3.2 列驱动系统设计列驱动电路由74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器,而且移位寄存器和输出锁存器的控制是各自独立的,可
43、以实现在显示本行各列数据的同时,传送下一行的列数据,达到重叠处理的目的。数据在SH_CP的上升沿输入,在ST_CP的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线15。工作顺序:单片机先送1个8位数据到第一个595的内部移位寄存器-然后数据会送到内部的输出寄存器-输出,当MR(10引脚)为高电平,OE(13引脚)为低电平时,数据在SHCP上升沿进入移位寄存器,在STC
44、P上升沿输出到并行端口。具体电路如图3-10所示:图3.10 列驱动电路图4 智能家居控制系统软件设计设计目标和硬件总体结构确定的情况下,软件可以分为主程序,LED显示子程序,数字时钟控制子程序,步进电机控制子程序,温度采集子程序,光线强度采集子程序六个主要部分组成。具体结构如图4.1所示。主程序LED显示子程序步进电机控制子程序时钟控制子程序光线强度采集子程序温度采集子程序图4.1 软件功能结构框图4.1 主程序设计系统软件采用C语言编写,按照模块化的设计思路设计。首先分析程序所要实现的功能,程序要实现采集温度数据,采集光线数据,采集时钟芯片数据,点阵显示,步进电机控制等功能。采集温度数据和
45、时钟芯片数据然后通过点阵进行显示;采集光线数据通过单片机控制步进电机转角。 主程序的工作流程如图4.2所示:开始系统初始化从显示数组读取数据到显示寄存器读取显示控制命令选择显示方式调用相应显示程序 图4.2 主程序流程图4.2 显示程序的设计 LED点阵屏显示方式主要由静态显示和动态扫描显示两种。 对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重新输出新的点阵数据。这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低。另一种动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分直到显示完最后一部分又重新开始显示第一部分,重复循环进行。在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面。也就是说采用动态扫描显示需要不断进行画面的刷新。在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低。大屏幕的制造、维护要容易许多,可靠性也增加了。两种显示方式的比较再结合51单片机I/O口数量有限的原因决定采用动态扫描的方式进行显示。动态扫描分为行扫描和列扫描两种方式区别在于选通端和数