《智能点阵式灯光控制器的中心控制器设计毕业论文.doc》由会员分享,可在线阅读,更多相关《智能点阵式灯光控制器的中心控制器设计毕业论文.doc(34页珍藏版)》请在三一办公上搜索。
1、智能点阵式灯光控制器的中心控制器设计前 言近年来随着我国社会经济的快速发展,人与社会、人与自然的和谐成为人民日益关注的焦点,建设节约型社会是摆在我们面前的重大课题。传统的开关是人工的、机械的、离散的。本文以此为出发点,在保留其优越性的基础上加以改进,真正实现其智能化,并在智能化的基础上更进一步实现节能和操作方便快捷性能。本文所介绍的智能点阵式灯光开关控制器中核心控制系统设计是实现节能和智能化的必要前提。该项目主要是针对多媒体合堂教室、礼堂、图书馆阅览室和课堂教室在进行教学、会议、自主学习等活动中,有时需要将照明灯光按照窗子的排列方向进行“列”进行“开灯”、“关灯”控制,而在进行多媒体教学活动时
2、,又需要将全部的照明灯光按照与黑板或者银幕平行的“行”方向进行“开灯”、“关灯”控制。而现有的机械式开关只能实现“行”或者“列”一种控制方式,不具有灵活性和通用性,无法满足实际状态的需要。另外,经常出现在授课前需要打开照明灯光,随着授课时间的进行,阳光的光照强度越来越强,应该关闭照明灯光,但是无法中断授课过程进行“关灯”操作,甚至于也无人理会,经常出现“长明灯”现象;有的时候,在这些活动场所内空无一人,也经常出现“灯火通明”的空照明现象,极大地浪费了能源。鉴于此,研发设计、制作了这一个通用性、适应性高,又具有自动光控和人体红外线控制的“智能点阵式照明灯光集控器”。智能点阵式控制系统以台湾凌阳公
3、司的SPCE06A-16位单片机为控制核心;以制作按键阵列、光敏检测电路和人体红外线检测电路组成输入控制器;利用电磁继电器阵列形成开关动作阵列板。通过输入控制器输入各种需要的控制信息数据,传入到核心控制器,控制器将输入的控制请求数据进行运算处理得到需要的控制编码数据,通过其端口向开关阵列发出数据控制灯光阵列的“亮”、“灭”动作。智能点阵式控制器由三部分构成: “按键阵列”与光照强度检测与人体红外检测;以凌阳SPCE061A单片为核心的控制处理模块;由解码电路、电磁继电器阵列组成的开关动作阵列。通过按键阵列及相关检测电路模块向核心控制系统发出相关请求的状态信息,核心控制模块接收到请求信息及检测状
4、态数据后,根据需求通过其I/O口向开关阵列模块发出相应的控制数字信息,开关动作模块接收到控制数据信息后,由译码电路进行解码处理,将解码得到的控制数据传递到驱动电路,进而控制电磁继电器的吸合或者释放动作,最终控制照明灯具的点亮或者熄灭。1智能点阵式灯光控制器的背景介绍1.1 研究背景在多媒体教室、礼堂、图书馆、阅览室和课堂教室等场所,进行不同的课堂教学时,对于灯光的照明方式需求是不同的。1.一般的课堂教学和自学阅览及举行会议时,可能仅仅需要将远离窗户的中间纵向区域进行照明;2.在进行计算机多媒体教学时,需要将前方横向区域的灯光关闭,现有的机械式开关只能完成纵向或者横向一种控制方式,不能同时满足不
5、同阵列控制的需求;3.大多数情况下,进行授课或者会议开始的时候,需要打开灯光进行照明,随着时间的进行,室内光照强度变大,需要关闭灯光时,也无人理会或者不方便关闭照明灯光,常常出现“长明灯”;4.更有甚者,教学、学习场所内空无一人时,也经常出现“空照明”现象,这一切情况都极大地浪费能源;基于此,急需设计、制作一套智能化的多功能照明灯光控制器,本项目就是围绕着这一需求进行设计与制作。1.2 系统功能要解决以上所出现的具体问题要求控制系统具备以下功能:1.按键阵列每一个按键对应控制阵列每一盏灯。实现单点控制功能,可以使任意一盏灯或则任意区域的灯亮或灭,达到灵活控制灯光的目的。2.系统必须具备行和列控
6、制功能。按下行控制键之后,再按下行号键,则对应此行灯泡全亮。再按下列号键,则对应此列灯泡全亮。3.点阵式灯光控制系统需安装有光敏感应装置。当光照相对较强时,光敏电阻会将检测到的光信息传达到单片机,可以实现自动熄灭灯泡的功能。从而达到自动控制的功能,以此节省电能。4.点阵式灯光控制器同时需安装有红外检测装置,红外检测器可以将人体的信息传达到单片机,单片机接收到人体信息时,自动实现控制功能。当室内无人时,单片机会发出熄灭所有灯光的信号,熄灭所有的灯泡,达到节能的目的。1.3 基本思路智能点阵式灯光开关控制器设计核心是对全部照明灯光进行“点阵式”控制,根据照明场所的需求,自动组合成“行”或者“列”进
7、行“点亮”和“熄灭”动作。另外,再配合以光敏检测和人体红外线检测,根据光照度和红外线的检测结论进行自动“熄灭”和“点亮”控制,避免“长明灯”和“空照明”现象的发生。通过按键阵列、光照强度检测电路、人体红外检测电路向核心控制系统发出相关请求信息,核心控制模块接收到请求信息及检测状态数据后,根据需求通过其I/O口向开关阵列模块发出相应的控制数字信息,开关动作模块接收到控制数据信息后,由译码电路进行解码处理,将解码得到的控制数据传递到驱动电路,进而控制电磁继电器的吸合或者释放动作,最终控制照明灯具的点亮或者熄灭。1.4 研究内容本项目设计的目的是设计、制作出一套功能齐全、性能稳定可靠、可以直接实用的
8、照明灯光控制器。智能点阵式照明灯光集控器的设计、制作内容主要包括:按键阵列电路、光照强度检测电路、人体红外线检测电路,电磁继电器开关阵列电路,工作电源线路,模块连接线路和核心控制程序代码设计等几部分。设计控制器的原理图;选择元器件及相关器材;生成PCB线路图;雕刻、制作PCB线路板;元器件焊接、制作电子线路板;设计、调试控制代码并“写入”单片机的程序存储器;连接输入线路板、单片机和开关阵列板。 1.5 研究原理本项目采用行、列扫描方式对按键阵列进行识别处理得到的按键编码;利用光敏电阻进行光照强度检测,配合软件的“防抖动”处理,获取到稳定、可靠的光控数据;采用红外线检测开关识别教学场所内是否有学
9、习人员信息,传递到单片机的输入端口得到控制数据;利用C语言环境设计、调试单片机的控制程序代码;选用ULN2003作为电磁继电器的译码和驱动芯片控制继电器的吸合与释放动作,从而控制照明灯光的“亮”、“灭”动作。2智能点阵式灯光控制器的功能介绍2.1 键盘电路与灯光阵列示意图12435678910121113141516171819204x5键盘阵列132546781211101615149134x4灯光阵列图2.1 键盘电路与灯光阵列示意图2.2 点对点灯光控制功能键盘电路的前16个功能键组成4x4键盘阵列,此阵列每一个按键对应控制阵列每一盏灯。控制方法:如果灯处于熄灭状态时,按下按键灯会变亮,
10、再次按下按键时灯会熄灭,每次按键按下灯会向相反的状态转变。实现单点控制功能,可以使任意位置的灯亮或灭,达到灵活控制灯光的目的。2.3 行控制和列控制功能此项能为智能点阵式灯光的主要功能。键盘电路的第17号和第18号功能键分别对应控制灯光阵列的行和列。 控制方法:按下行控制键之后,再按下第一行的1号功能键,第一行灯泡全亮。依次类推,按下第2、3、4 号功能键对应控制第二、三、四行灯泡的亮与灭。同样,每次按键按下执行相反操作。同理,列控制也是如此。2.4 自动光照强度控制功能点阵式灯光控制器安装有光敏感应装置,光敏电阻通过三极管连接单片机。当光照相对较强时,光敏电阻会将检测到的光信息传达到单片机,
11、可以实现自动熄灭灯泡的功能。从而达到自动控制的功能,以此节省电能。2.5 自动红外检测控制点阵式灯光控制器同时安装有红外检测装置,红外检测器可以将人体的信息传达到单片机,单片机接收到人体信息时,自动实现控制功能。当室内无人时,单片机会发出熄灭所有灯光的信号,熄灭灯泡达到节能的目的。3. 智能点阵式灯光控制系统研究的主要问题3.1 键盘电路的每个键值的区分与计算计算键值采用二进制直接推算,编程时需将二进制转换为十六进制表示,才可进行人机对话,单片机所认识的只是“0”和“1”二进制数值,不可以按照人类的思维主观的进行编写程序。计算每一个键值都要做到认真、细心不能出现一点错误,否则无法正确的编写程序
12、,导致系统无法正常工作。3.2 环境光强度采集的问题光敏电阻器的阻值相当大,应当具体的使用万用表测出其阻值,根据光敏电阻器阻值的变化范围,计算出电路所需要的连接电阻的阻值,然后设计出电路的连接方法,进行原理图的绘制。3.3 人体信息的红外采集问题红外检测器需要9v16v的电源供电才可以正常工作。要选择合适的红外设备,否则不能正常工作。3.4 uln2003与继电器的连接问题单片机要与继电器连接需用驱动,智能控制系统采用uln2003作为驱动,连接时采用倒灌电流接法,才能保证正常工作。4 .智能点阵式灯光控制系统的模块连接介绍4.1 模块连接的重要性要完成智能控制功能,还需要用8位的并口排线将各
13、个线路板相连接。使其成为完整的系统,实现具体的功能。4.2 模块连接示意图人体红外信号光照强度信息键值键盘控制信息凌阳十六位单片机SPCE061A5x4控制键盘阵列4x4灯泡阵列自动光敏检测电路自动红外开关控制电路驱动阵列继电器阵列核心控制器控制信息220V 零线火线图4.1 模块连接示意图4.3 模块整体调试智能点阵式照明灯光控制器主要包括:按键阵列模块、光敏与人体红外线检测电路模块,电磁继电器阵式开关灯光控制器模块,工作电源线路板模块。安装完毕后,接通电源。分别对按键阵列模块、光敏与人体红外线检测电路模块,电磁继电器阵式开关灯光控制器模块,工作电源线路板模块各个模块进行调试,若发现故障,逐
14、个排查改进直至成功。5 . 智能点阵式灯光控制器的中心控制器的模块介绍5.1 凌阳十六位单片机SPCE061A5.1.1 凌阳十六位单片机SPCE061A简介1.SPCE061A 是继nSP(Microcontroller and Signal Processor)系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SP
15、CE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。2.SPCE061A封装图如下:图5.1 SPCE061A封装图5.1.2 凌阳十六位单片机SPCE061A的性能16位micro nSP微处理器;工作电压(CPU) VDD为2.43.6V (I/O) VDDH为2.45.5V;CPU时钟:0.32MHz49.152MHz ;内置2K字SRAM;内置32K FLASH;可编程音频处理;体振荡器;系统处于备用状态下(时钟处于停止状态),耗电仅为2µA3.6V;2个16位可编程定时器/计数器(可自动预置初始计数值);2个10位DAC(数-模转换)输出通道;32位通
16、用可编程输入/输出端口;14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;具备触键唤醒的功能;使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;锁相环PLL振荡器提供系统时钟信号;32768Hz实时时钟;7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;具备串行设备接口;具有低电压复位(LVR)功能和低电压监测(LVD)功能;内置在线仿真电路ICE(In- Circuit Emulator)接口;具有保密能力;具有WatchDog功能。 5.1.3 SPCE
17、061A的结构介绍SPCE061A有两种封装片,一种为84个引脚,PLCC84封装形式;另一种为80个引脚,LQFP80封装。在PLCC84封装中,有15个空余脚,用户使用时这15个空余脚悬浮。在LQFP80封装中有9个空余脚,用户使用时这9个空余脚接地。 5.1.4 SPCE061A最小系统 最小系统在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上0.1µF的去藕电容提高抗干扰能力。 图5.2 SPCE061A最小系统原理图5.1.5 SPCE061A的应用领域家用电器控制器:冰箱、空调、洗衣机
18、等白色家电; 仪器仪表:数字仪表(有语音提示功能) 电表、水表、煤气表、暖气表;工业控制;智能家居控制器;通讯产品:多功能录音电话、自动总机、语音信箱、数字录音系统产品;医疗设备、保健器械(电子血压计、红外体温监测仪等)体育健身产品(跑步机等);电子书籍(儿童电子故事书类)、电教设备等;语音识别类产品(语音识别遥控器、智能语音交互式玩具等) 词条图册更多图册;5.2 智能点阵式灯光控制器按键阵列5.2.1 智能点阵式灯光控制器按键阵列原理图图5.3 点阵式灯光控制器按键阵列原理图5.2.2 智能点阵式灯光控制器按键阵列控制原理在键盘的行与列之间安装20个按键,前16个按键对应16个灯泡,后4个
19、对应行,列,全亮/全灭和复位。根据需要16盏灯需要对应16个按键,当灯处于熄灭状态时,按键按下就会使灯点亮,相反,当灯处于点亮状态时,按键按下就会使灯熄灭。也就是说每次按键按下,灯泡会变为相反的状态。其次,行键和列键用来与数字键相互配合之后达到控制行和列的目的。5.3 智能点阵式灯光控制器光敏检测电路5.3.1 智能点阵式灯光控制器光敏检测电路原理图图5.4 智能点阵式灯光控制器光敏检测电路原理图5.3.2 光敏电阻器简介1.光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。图5.5 光敏电阻2.光敏电阻又称光导管,常用的制作
20、材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。5.3.3 光敏电阻器结构简介通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。当它受到光的照射时,半导体片(光敏层)内就激发出电子空穴对,参与导电,使电路中电流增强。为了获得高的灵敏度,光敏电阻的电极常采用梳状图案,它是在一定的掩膜下向光电导薄膜上蒸镀金或铟等金属形成的。光敏电阻器通常由光敏层、玻璃基片(或树脂防潮膜)和电极等组成。光敏电阻
21、器在电路中用字母“R”或“RL”、“RG”表示 5.3.4 光敏电阻器的主要参数与特性根据光敏电阻的光谱特性,可分为三种光敏电阻器:紫外光敏电阻器:对紫外线较灵敏,包括硫化镉、硒化镉光敏电阻器等,用于探测紫外线。 红外光敏电阻器:主要有硫化铅、碲化铅、硒化铅。锑化铟等光敏电阻器,广泛用于导弹制导、天文探测、非接触测量、人体病变探测、红外光谱,红外通信等国防、科学研究和工农业生产中。 可见光光敏电阻器:包括硒、硫化镉、硒化镉、碲化镉、砷化镓、硅、锗、硫化锌光敏电阻器等。主要用于各种光电控制系统,如光电自动开关门户,航标灯、路灯和其他照明系统的自动亮灭,自动给水和自动停水装置,机械上的自动保护装置
22、和“位置检测器”,极薄零件的厚度检测器,照相机自动曝光装置,光电计数器,烟雾报警器,光电跟踪系统等方面。 5.3.5 光敏检测电路工作原理单片机持续给IOA相应的端口输出低电平,光照弱时,电阻很大IOA口的电平也一直是低电平,当光照强度大时,电阻减小,NPN管的基极电流Ib增大,由NPN管的特性知发射极电流Ie=Ic+Ib,因此IOA口扫描到的IOA_DATA为高电平,从而控制灯泡全部熄灭。光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。用于制造光敏电阻的材料主要是金属的硫化物、硒化物和碲化物等
23、半导体。在黑暗环境里,它的电阻值很高,当受到光照时,只要光子能量大于半导体材料的禁带宽度,则价带中的电子吸收一个光子的能量后可跃迁到导带,并在价带中产生一个带正电荷的空穴,这种由光照产生的电子空穴对了半导体材料中载流子的数目,使其电阻率变小,从而造成光敏电阻阻值下降。光照愈强,阻值愈低。入射光消失后,由光子激发产生的电子空穴对将复合,光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到波长的光线照射时,电流就会随光强的而变大,从而实现光电转换。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。半导体的导电能力取决于半导体导带内载流子数目的
24、多少。 5.4 智能点阵式灯光控制器人体红外线检测电路5.4.1 人体红外线检测电路原理图图5.6 人体红外线检测电路原理图5.4.2 红外技术简介红外技术的内容包含四个主要部分:1.红外辐射的性质,其中有受热物体所发射的辐射在光谱、强度和方向的分布;辐射在媒质中的传播特性-反射、折射、衍射和散射;热电效应和光电效应等。 2.红外元件、部件的研制,包括辐射源、微型制冷器、红外窗口材料和滤光电等。 3.红外技术在军事上和国民经济中的应用。由此可见,红外技术的研究涉及的范围相当广泛,既有目标的红外辐射特性,背景特性,又有红外元、部件及系统;既有材料问题,又有应用问题。红外技术的发展关键在于红外材料
25、的研制、红外设备的制冷、红外设备向更长波段发展、红外焦平面阵列器件的研制和红外设备与数据处理设备的结合等。 5.4.3 人体红外线检测装置简介红外探头可以感应人体的温度,当有人是红外开关处于闭和状态,一旦室内无人了,红外开关便断开。将红外探头与单片机相连,通过红外开关的断开与闭和来控制IOA口的数据,然后来控制灯泡的状态。红外是一种无线通讯方式,可以进行无线数据的传输。红外的特征:红外传输是一种点对点的传输方式,无线,不能离的太远,要对准方向,且中间不能有障碍物也就是不能穿墙而过,几乎无法控制信息传输的进度。红外接口是新一代数字设备进行数据交流技术.红外通讯有着成本低廉、连接方便、简单易用和结
26、构紧凑的特点,因此在小型的移动设备中获得了广泛的应用.通过红外接口,各类移动设备可以自由进行数据交换。5.4.4 红外探测器简介红外探测器(Infrared Detector)是将入射的红外辐射信号转变成电信号输出的器件。红外辐射是波长介于可见光与微波之间的电磁波,人眼察觉不到。要察觉这种辐射的存在并测量其强弱,必须把它转变成可以察觉和测量的其他物理量。一般说来,红外辐射照射物体所引起的任何效应,只要效果可以测量而且足够灵敏,均可用来度量红外辐射的强弱。现代红外探测器所利用的主要是红外热效应和光电效应。这些效应的输出大都是电量,或者可用适当的方法转变成电量。5.4.5 红外探测器工作原理不同种
27、类的物体发射出的红外光波段是有其特定波段的,该波段的红外光处在可见光波段之外。因此人们可以利用这种特定波段的红外光来实现对物体目标的探测与跟踪。将不可见的红外辐射光探测出并将其转换为可测量的信号的技术就是红外探测技术。从目前应用的情况来看,红外探测有如下几个优点:环境适应性优于可见光,尤其是在夜间和恶劣天候下的工作能力;隐蔽性好,一般都是被动接收目标的信号,比雷达和激光探测安全且保密性强,不易被干扰;由于是目标和背景之间的温差和发射率差形成的红外辐射特性进行探测,因而识别伪装目标的能力优于可见光;与雷达系统相比,红外系统的体积小,重量轻,功耗低;探测器的光谱响应从短波扩展到长波;探测器从单元发
28、展到多元、从多元发展到焦平面;发展了种类繁多的探测器和系统;从单波段探测向多波段探测发展;从制冷型探测器发展到室温探测器;由于红外探测技术有其独特的优点从而使其在军事国防和民用领域得到了广泛的研究和应用,尤其是在军事需求的牵引和相关技术发展的推动下,作为高新技术的红外探测技术在未来的应用将更加广泛,地位更加重要。 6 . 智能点阵式灯光控制器的中心控制器的控制方法6.1 SPCE061A的使用与开发方法SPCE061A的开发是通过在线调试器PROBE实现的。它既是一个编程器(即程序烧写器),又是一个实时在线调试器。用它可以替代在单片机应用项目的开发过程中常用的软件工具硬件在线实时仿真器和程序烧
29、写器。它利用了SPCE061A片内置的在线仿真电路ICE(In- Circuit Emulator)接口和凌阳公司的在线串行编程技术。PROBE工作于凌阳IDE集成开发环境软件包下,其5芯的仿真头直接连接到目标电路板上SPCE061A相应管脚,直接在目标电路板上的CPU-SPCE061A调试、运行用户编制的程序。PROBE的另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在线调试功能。6.2 按键响应原理由于行线与列线通过按键相连接,当按键按下时,行线与列线相连通,假如行线输出低电平,列线输出高电平,此时按键按下就会使得列线的电平拉低,
30、从而改变了IOA_DATA。然后使用反转法,将得到的行IOA_DATA与列IOA_DATA相加和得到了独一无二的KEY值。举例说明:第一行第一列的按键确定方法。a、IOA口输出111110000;b、按键按下,第一行第一列相连通;c、将第一行电平拉低,此时扫描IOA口得到一个行值定义为KEY_H,它的值可知为011110000,用十六进制数表示为0x001e;d、反转输出,IOA输出000001111,同样由于拉低原理得到了列值KEY_L,它的值显然为000000111, 用十六进制数表示为0x01a0;e、加和。KEY=KEY_H+KEY_L,这个值就是第一行第一列键的键值,即为0x01be
31、。同理推导出第1到第20功能键的十六进制代码表示值:0x01be、0x017e、0x00fe、 0x01dd 、0x01bd 、0x017d 、0x00fd、 0x01db 、0x01bb、 0x017b、 0x00fb 、0x01d7 、0x01b7、 0x0177、 0x00f7 、0x01cf、 0x01af 、0x016f 、0x00ef。6.3 智能点阵式灯光控制器数据发送 单片机控制灯泡的总体思想是单片机的IOA口与灯泡相连,当IOA口输出高电平时灯泡发光,当IOA输出低电平时灯泡熄灭。在第六章代码介绍中,会具体的介绍单片机的控制代码。6.4 键盘控制与灯光状态转变的开关控制方法
32、6.4.1 简单开关控制方法示意图 简单开关控制并不是简单的机械开关控制方法,而是通过单片机接收信号,处理信号后,发出执行信号来完成的。12434x5键盘阵列13244x4灯光阵列SPCE061AAA接收控制信号执行控制命令图6.1 开关控制方法示意图6.4.2 简单开关控制原理点阵式灯光控制器具有简单的开关控制功能,单片机控制灯泡的总体思想是单片机的IOA口与灯泡相连,当IOA口输出高电平时灯泡发光,当IOA输出低电平时灯泡熄灭。键盘电路的前16个功能键组成4x4键盘阵列,此阵列每一个按键对应控制阵列每一盏灯。如果灯处于熄灭状态时,按下按键灯会变亮,再次按下按键时灯会熄灭,每次按键按下灯会向
33、相反的状态转变。实现单点控制功能,可以使任意位置的灯亮或灭,达到灵活控制灯光的目的。6.4.3 单片机控制灯光开关电路代码介绍1.单片机接收键盘信号以此获得键值单片机输出行列控制信息:*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x001f;key_h=*P_IOB_Data;(获取IOB端口信号) delay_1();(去抖动 延时)key=*P_IOB_Data; 再次获取信号,以此来判断是否有键按下。if (key_h!=key) continue;key=*P_IOB_Data;key_hang=key_h&0x01ff; if
34、(key_hang!=0x001f)*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x001f;delay_1();key_h=*P_IOB_Data; if(key_hang!=0x001f)*P_IOB_Data=0x01e0; key_l=*P_IOB_Data;key_lie=key_l&0x01ff;key=key_lie+key_hang; /if循环等待直到出现键盘按下信息,并获取键值。 2.第一行第一列第一个按键控制第一个灯的代码如下:case 0x01de:第一个按键按下时的键值con=*P_IOA_Data; 获取输出
35、端口的状态con_1=con&0x0001; 采用相与封锁不相关状态con_2=con0x0001;采用异或处理为相反状态con_3=con&0xfffe;采用相与封锁不相关状态if(con_1=0x0000)如果此时灯处于熄灭状态则进行相反操作*P_IOA_Dir=0xffff; *P_IOA_Attrib=0xffff; *P_IOA_Data=con_2; else*P_IOA_Dir=0xffff;*P_IOA_Attrib=0xffff; *P_IOA_Data=con_3; break; 6.5 点阵式灯光控制器的行控制和列控制方法 6.5.1 行控制方法对应代码进行介绍case
36、0x01cf : 第 5行第1列;第17号功能键的键值-控制行 i=1; break; 设定状态为“1”,代表行状态,另外此状态起到跳出循环的重要作用case 0x01af : u=1; break; 第 5行第2列第18号功能键控制列 hang() while(i=1)进入行循环,只有在“1”状态才进行循环处理,与上面对应。(键盘程序省略)switch(key)case0x01de: 采用一号键作为第一行的行控制键con=*P_IOA_Data;con_1=con&0x000f;con_2=con0x000f;con_3=con&0xfff0;if(con_1=0x0000)*P_IOA_D
37、ir=0xffff;*P_IOA_Attrib=0xffff;*P_IOA_Data=con_2;与简单开关控制程序控制原理相同。else*P_IOA_Dir=0xffff;*P_IOA_Attrib=0xffff; *P_IOA_Data=con_3; break;(其它行控制程序省略) /hang 键盘电路的第17号和第18号功能键分别对应控制灯光阵列的行和列。 按下行控制键之后,再按下第一行的1号功能键,第一行灯泡全亮。依次类推,按下第2、3、4 号功能键对应控制第二、三、四行灯泡的亮与灭。同样,每次按键按下执行相反操作。6.5.2 列控制方法对应代码进行介绍同理,列控制原理与行控制也是
38、如此。6.6 自动光照强度控制方法6.6.1 光照控制方法原理点阵式灯光控制器安装有光敏感应装置,光敏电阻通过三极管连接单片机。实际上也是一个开关装置,当光照相对较强时,光敏电阻会将检测到的光信息传达到单片机,可以实现自动熄灭灯泡的功能。就相当于按下熄灭灯光的按键。6.6.2 光照控制方法代码介绍g_h=key_h&0x0600;封锁与光敏和红外控制端口无关端口if(g_h=0x0400) 如果此时光敏端口所获状态为高电平,则熄灭所有灯光*P_IOA_Dir=0xffff;*P_IOA_Attrib=0xffff;*P_IOA_Data=0x0000; 6.7 自动红外检测控制方法6.7.1
39、红外控制方法原理点阵式灯光控制器同时安装有红外检测装置,红外检测器可以将人体的信息传达到单片机,单片机接收到人体信息时,自动实现控制功能。当室内无人时,单片机会发出熄灭所有灯光的信号,熄灭灯泡达到节能的目的。6.7.2 红外控制方法代码介绍g_h=key_h&0x0600; 封锁与光敏和红外控制端口无关端口if(g_h=0x0200) 如果此时红外端口所获状态为高电平,则熄灭所有灯光*P_IOA_Dir=0xffff; *P_IOA_Attrib=0xffff;*P_IOA_Data=0x0000;/+红外。7.核心控制程序代码设计7.1 软件编程工具选择7.1.1 C语言简介单片机软件采用C
40、语言编制,采用模块化结构设计、条理清晰、通用性好,便于改进和扩充。C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。7.1.2 C语言的特点 1.C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2.C是结构式语言。结构式语言的显著特点是代码
41、及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 7.2 开发工具nSPIDE介绍1.nSP集成开发环境,它集程序的编辑,编译,连接,调试以及仿真等功能为一体。具有友好的交互界面,下拉菜单,快捷键和快速访问命令列表
42、,使人们的编程,调试工作更加方便而且高效。2.开发工具nSPIDE的窗口Workspace Window、Edit Window、Output Window、Debug Window(变量表Watch Window、寄存器Register Window、内存Memory Window、反汇编Disassamble Window)。7.3 程序流程图如下:检测光敏检测红外全部熄灭黑天有人时扫描键盘扫描IOA口YY控制行控制列全亮/全灭高低1011121314151617181234567891920复位图7.1 程序流程图7.4 核心控制系统完整的代码程序#include SPCE061V004
43、.hint key_l,key_h,key,con,con_1,con_2,con_3,key_lie,key_hang,i,u,g_h;main()while(1)/*键盘key_l=0;key_h=0;key=0;con=0;con_1=0;con_2=0;con_3=0;key_lie=0;key_hang=0;i=0;u=0;g_h=0;*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x001f;key_h=*P_IOB_Data; delay_1();/+去抖动 延时key=*P_IOB_Data; if (key_h!=key
44、) continue;key=*P_IOB_Data;g_h=key_h&0x0600;if(g_h=0x0400)*P_IOA_Dir=0xffff;*P_IOA_Attrib=0xffff;*P_IOA_Data=0x0000;/+光敏if(g_h=0x0200)*P_IOA_Dir=0xffff; *P_IOA_Attrib=0xffff;*P_IOA_Data=0x0000;/+红外key_hang=key_h&0x01ff; if(key_hang!=0x001f)*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x001f;de
45、lay_1();key_h=*P_IOB_Data; if(key_hang!=0x001f)*P_IOB_Data=0x01e0; key_l=*P_IOB_Data;key_lie=key_l&0x01ff;key=key_lie+key_hang; /if while(1)*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0x001f; key_h=*P_IOB_Data; key_h=key_h&0x01ff; if(key_h!=0x001f)continue;break;/*键盘switch(key)/+第一行 第一列 控制第一个灯case 0x01de:con=*P_IOA_Data;con_1=con&0x0001;con_2=con0x0001;con_3=con&0xfffe;if(con_1=0x0000)*P_IOA_Dir=0xffff; *P_I