原创性声明
本队郑重声明:本队所设计的作品,是本队在指导老师的指导下,利用暑期课余时间进行研究工作所取得的成果。本作品除了参考文献列举的地方外,不含任何其他人已经发
表或制作的研究成果。本声明的法律结果由本队承担。
二零一零年九月三日
队员签名:***
1
目录
摘要 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 1. 系统设计方案„„„„„„„„„„„„„„„„„„„„4 1. 1方案的提出„„„„„„„„„„„„„„„„„„„4
1. 2系统方案介绍„„„„„„„„„„„„„„„„„„4 1. 3功能与指标„„„„„„„„„„„„„„„„„„„5 1. 4实现原理„„„„„„„„„„„„„„„„„„„„6 1. 5硬件框图„„„„„„„„„„„„„„„„„„„„7 1. 6软件流程„„„„„„„„„„„„„„„„„„„„10 2. 系统测试„„„„„„„„„„„„„„„„„„„„„„12 2. 1热释电红外传感测试„„„„„„„„„„„„„„„12 2. 2台灯电池满电工作时间测试„„„„„„„„„„„„12
2. 3台灯电池电能检测测试„„„„„„„„„„„„„„13 2. 4测试设备„„„„„„„„„„„„„„„„„„„„13 2. 5特色„„„„„„„„„„„„„„„„„„„„„„13 3. 结论„„„„„„„„„„„„„„„„„„„„„„„„13 4. 附录„„„„„„„„„„„„„„„„„„„„„„„„13 附1.元器件明细表„„„„„„„„„„„„„„„„„„„13 附2.电路图图纸„„„„„„„„„„„„„„„„„„„„14 附3.程序清单„„„„„„„„„„„„„„„„„„„„„15 附4.参考文献„„„„„„„„„„„„„„„„„„„„„38 5. 查新报告„„„„„„„„„„„„„„„„„„„„„„38
2
摘要
本项目针对台灯的节电和使用的方便性进行创新设计与研究,以单片机为核心,综合运用热释电红外、太阳能充电、光检测等技术,设计制作出智能型多功能LED台灯。该台灯具有自动开、关,自动调光等功能,实现对台灯用电情况和亮度调节的智能控制。本项目创造性设计出活动台灯头,可作为外用手灯,并加装语音提示电路,实现了一灯多用、充电、纠正坐姿及用眼过度语音提示的节能环保的智能型LED台灯的设计理念。
关键词:智能 单片机 LED
Abstract
This project for the use of innovative lamp design and research, by single chip processor as the core, comprehensive use of heat-releasing infrared sensor, solar energy, wireless transmission technology, design a kind of intelligent lamp, its characteristic is in when someone and external light intensity weaker can automatically open lamp, no person to turn off the lights, energy saving, According to an outside to automatically adjust the lamp brightness illumination intensity, and audio with eyes, protect eyesight, Make full use of solar energy, LED lighting, accomplish truly intelligent, energy saving, low carbon, green environmental protection.
Keywords: Intelligence MUC Low carbon
3
1系统设计方案
1.1方案的提出
台灯已是千家万户的必需生活电器,经常由于忘记关灯而造成巨大的能源浪费。在我国,照明耗电占年发电总量的12% (超过100亿kW•h) , 现在的台灯绝大部分是采用普通的白炽灯、荧光灯、节能灯和螺旋节能灯 ,并且控制方式多采用手动开关,不能连续调节,更不能自动调节。当夜晚来临时,人们又摸黑去开灯,非常不方便,与现在家电的智能化,人性化,低碳设计理念相违背。
LED被认为是21世纪的照明光源。LED发光器件是冷光源,光效高,工作电压低,而且能耗低,可控制好、无辐射,同样亮度下,LED能耗为白炽灯的10%,荧光灯的50%。LED寿命可达10万小时,是荧光灯的10倍,白炽灯的100倍。随着能源紧缺、电价越来越高、环保要求及LED的光效的提高,用LED替代现在台灯普遍使用的白炽灯或荧光灯,环保无污染。另外,LED的光谱几乎全部集中于可见光频段,其发光效率可达80~90%,并且传统的台灯中的光源体使用的是交流电,所以每秒钟会产生100-120次的频闪。LED灯是把交流电直接转换为直流电,不会产生闪烁现象,保护眼睛,可以获得“柔和”的灯光环境。
另外一个情况是现在中国约30%的人有不同程度的视力问题,其中近视是主要问题,近年来,我国的近视率已上升为全球第二,仅次于日本,但近视的总人数确是全球第一。引起近视的主要原因是用眼不健康,如用连续用眼时间过长,看书,学习时的坐姿不正确等。
现在的普通台灯90%的供电系统是用交流电经变压后直接供电,在用电高峰期时使用会增加供电系统的负担,并且停电时不能工作,移动使用性较差。太阳能是新型的绿色能源,但普及率还不高。
因此,我们提出智能LED台灯方案。
1.2系统方案介绍
本项目的设计思想来源于生活,所具有的功能也是为台灯使用的方便性及节能环保而设置。针对目前普通台灯存在的能耗高、操作使用不便及功能单一三个问题进行系统分析与研究,以单片机STC12C5410AD为控制核心,用热释电红外传感器D203B检测是否人进入使用台灯的范围,用光敏电阻判断有人在使用台灯范围时是否需要开灯,用语音芯片ISD25120进行语音提示与报警,主要利用太阳能给台灯电池充电。综合运用传感技术、光检测技术及太阳能技术,实现台灯根据使用环境中是否有人员和环境补光亮度等来自动控制台灯的开关及照明的亮度。当用户在使用台灯时的坐姿不正确就会语音提示用户纠正坐姿;当用户使用台灯时间达到预先设定值时会语音提示用户休息,科学安排用眼时间,保护视力。
人性化设计,添加用户录放音及编辑功能,让用户及其家人自行录制语音提示声,提升语音提示的易接受度和舒适度。
本项目的创新点是:
第一,智能。以人体红外辐射(波长为10um)传感控制电路实现人体距离台灯的自动检测,实现自动感应开关灯,达到智能控制和节能的目的;通信单片机控制,实现自动调光、手动调光、无线遥控调光。
第二,低碳。台灯采用LED光源体,耗电极小 ;采用太阳能电池板给台灯
4
电池充电,充分利用绿色能源,符合节能减排,营造低碳生活环境的发展趋势。
第三,多功能。台灯灯头可以与底座支架分离,变成手灯模式,移动性较强,使用范围更广;采用多路LED工作,提高电路的可靠性;加装语音提示电路,具有充电,纠正坐姿及用眼过度语音提示的人性化设计。
1.3功能与指标
1.3.1功能
(1)台灯自动感应开关功能
台灯自动感应点亮要满足两个条件:①有人在使用台灯范围内活动 ②外界环境的光照强度较弱。当有人在台灯上的热释电红外的探测范围内活动并且环境光强较弱时,台灯逐渐点亮;或者用户可以无线遥控点亮台灯。当人离开后,延时一段时间后台灯渐渐熄灭。 (2)保护视力功能
用户可根据实际情况设定用眼的提示时间,提示时间有30分钟,60分钟,90分钟,120分钟,4个模式,从用户使用台灯时开始计算,到达用户设定的提示时间后,系统会发出语音提示,提醒用户注意休息,科学安排用眼时间,保护视力;另外一种情况是,当用户使用台灯时的坐姿不正确时,系统也会发出语音提示,提醒用户纠正坐姿。两次纠正坐姿提示后,如果用户还是这种坐姿,则可认为用户伏在桌子上休息,台灯渐渐熄灭。 (3)自动,手动调光功能
在智能模式下,台灯能根据外界的光照强度自行调节台灯的亮度,使用户始终能有一个合适的光照环境;如果用户不需要自动调光,可以用旋钮来进行手动调光,或者使用无线遥控进行调光,可以根据用户自身的需要来控制台灯的亮度。 (4)太阳能充电功能
台灯除了有220V交流电供电,USB供电外,主要是利用太阳能电池板吸收太能能给台灯的电池充电,充分利用绿色能源,符合节能,低碳的发展趋势。 (5)用户自由录音功能
这是本项目的人性化设计,提示声不但可以从PC机上下载,更可由用户及其家人根据个人喜好自由录制修改。录音操作简单方便,按下录音按钮即可进行录音操作,每段录音时间8秒钟,8秒钟后用户会听到“录音完毕”的提示音,一段报警音就录制完毕。用户总共可以录制9段提示音,更改手刹使用不当和超速提示的提示音。 (6)电能监测功能
5
时实对台灯电池进行监测,当电池能量不足时,电能指示灯中的黄灯点亮,并进行语音提示用户给台灯充电,实现声光报警;当电池能量即将耗尽时,系统自动关闭,对电池进行保护作用。
1.3.1指标
工作电压:7.2V
工作电流:60mA~220mA 电池容量:800mA 静态功耗:0.072W 动态功耗:1.08W
报警方式:语音报警和灯光报警 工作环境温度:0~75℃
产品外形尺寸:长153mm,宽120mm,高350mm
1.4实现原理
1.4.1 台灯自动点亮及纠正坐姿提示
热释电红外传感器D203B是被动式的,即有人在其检测范围内活动时它工作并输出信号,信号经放大器BISS0001放大后给一个信号单片机的外部中断0,使台灯逐渐点亮;然后用单片机定时器延时点亮一段时间,如果在延时点亮这段时间内单片机再次接收到热释红外给的外部中断信号,立即从新开始点亮的延时,这样就做到了有人在使用台灯时台灯持续亮着;当人离开,在点亮延时这段时间内单片机没有再次接收到热释红外给的外部中断信号,点亮延时这段时间过后,台灯就会渐渐熄灭。
另外一个热释电红外安装在台灯底部,它的检测信号经BISS0001处理后给一个信号单片机外部中断1,由于单片机中断的优先级关系,平时正常工作是外部中断0的信号吧外部中断1的信号给屏蔽掉。但外部中断1有接收到信号而外部中断0没接收到信号时,延时一段时间,如果这种状态持续,则可判断用户坐姿不正确,语音提示纠正坐姿,两次提示后,还是这种状态,即可判断用户是伏在桌子上休息,灯就会慢慢熄灭。
1.4.2 语音提示用眼时间的设定
从台灯点亮的那一刻起开始计算用眼时间,通过两个IO口高低电平的4种不同组合方式来设定4种不同的提示时间:两个IO口为00组合时,使用台灯30分钟后提示;为01组合时,使用台灯60分钟后提示;为10组合时,使用台灯90分钟后提示;为11组合时,使用台灯120分钟后提示。
1.4.3 自动调光及手动调光
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
6
我们运用脉宽PWM法,通过测量光敏电阻两端的电压值,经AD转换后得出的数值来改变单片机的PWM的占空比,实现自动调光功能。
手动调光功能的原理也是一样,通过测量电位器两端的电压值,经AD转换后得出的数值来改变单片机的PWM的占空比,实现手动调光。
1.4.4 电池电能监测
通过测量电池两端的电压值经AD转换后与一个基准电压进行比较,以此来判断电池电量的饱和程度。
1.4.3语音提示原理
将语音芯片的总时间分成几段,利用一定的时间长度作为一个段地址,通过单片机定时器的计时平行地映射信息段的地址,从而得到每段录音的起始地址。由单片机控制语音芯片的地址和录音操作引脚, 把不同提示音录进语音芯片的不同位置。当单片机接收到放音信号时,就通过控制语音芯片的地址和放音操作引脚,把相对应的提示音播放出来。
1.5硬件框图
系统硬件框图如图(1)所示
图(1)系统硬件框图
7
1.5.1 检测模块
是否有人需要使用台灯检测单元主要由D203B热释电红外线传感器和信号处理芯片BISS0001组成。红热释电红外传感器只对波长为10μm(人体辐射红外线波长)左右的红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。 BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。配以热释电红外传感器和少量外接元器件构成被动式的热释电红外开关。当外界光强较强时,光敏电阻阻值很小,BISS0001检测到低电平,从而封锁14脚,禁止传感器PIR的信号。当外界光强较弱时,光敏电阻阻值很大,BISS0001检测到低电平,开启14脚,这样就省去了单片机的处理过程。传感器PIR检测到人体信号时,产生微弱的信号输出,经R14、R15、R2、C9、C10、C11组成的信号放大滤波电路。R18、R19、C13和C14组成的延时电路。信号经处理后从2脚输出。自动识别用户及环境光强电路如图(2)所示.
图(2)自动识别用户及环境光强电路
8
1.5.2 控制单元模块
方案一:选用传统的STCC51单片机作为核心控制器件,该系列单片机电路成熟,应用广泛,且与我们在学校学习单片机的课程内容相匹配,应用方便。但传统51单片机自身不带AD转换器、PWM寄存器等功能,选用它要另外买AD转换芯片,成本加高。
方案二;选用新一代增强型单片机STC12C5410AD,该单片机兼容传统51单片机的程序指令,学习使用方便;并且自身带10路高速AD转换器,4个PWM寄存器,功耗低,性价比更高。
综合考虑整个系统的优越性,性价比等因素,我们决定选择方案二。
1.5.2 供电模块 (1)台灯蓄电池
方案一:台灯蓄电池选用6V铅酸蓄电池,其特点是技术成熟,价格便宜,但体积大,重量大,能量质量比低,对充放电要求严格。循环寿命在200次左右,最高也就300次,最多也就能使用1-1.5年时间。铅酸蓄电池中存在着大量的铅,在废弃后若处理不当,将对环境产生污染。
方案二:台灯蓄电池选用两个3.7V锂电池,其特点是体积小,重量轻,同等规格容量的锂离子电池的体积是铅酸蓄电池体积的2/3,重量是铅酸蓄电池的1/3,无记忆效应,可随时充放电。锂离子电池循环寿命达到300次以上,标准充电(5小时率)使用,最高可达500次,甚至1000次以上。与铅酸蓄电池在同样条件下使用,寿命将会达到3年,是铅酸蓄电池的2倍。还有另外重要的一点,锂材料无任何有毒有害物质,被世界认为绿色环保电池,该电池无论在生产及使用中均无污染。但是锂电池价格比较贵,比同容量的铅酸蓄电池贵2倍。
综上所述,考虑到我们的台灯电池是放在支架上并与支架分离的,为了减轻支架的负担,更是为了低碳,耐用,实用,绿色环保,我们决定选择方案二。
(2)台灯供电
台灯主要利用太阳能给电池充电,利用绿色能源,节能低碳;当无太阳而台灯电池又没电时,可以用交流电经变压器处理后给台灯供电,或者用PC机的USB接口给台灯供电,保证台灯在任何情况下都能有电工作。
1.5.3 语音模块
语音模块选用语音芯片ISD1760,它有60秒录放音时间,可实现语音分段录音与随机组合放音。语音模块电路如图(3)所示。
9
图(3)语音模块电路
1.6软件流程 1.6.1编程算法思想
程序采用模块化设计思想。以主程序为核心设置功能模块子程序,简化了设计结构。运行过程中通过主程序调用各功能模块子程序。该系统的工作软件主要完成以下功能:信号输入模块实现相应传感器信号输入单片机数据通道,在控制系统软件中,将热释电红外探测器和光强度探测的信号经BISS0001处理后输出的信号作为单片机的外部中断信号,由此产生决定台灯开关的开关信号,另外将环境光强数据A/D转换,然后作为系统调节亮度的控制信号编码输出到系统的输出模块,达到控制LED发光亮度的目的,实现智能照明的目的。
1.6.2程序框图
10
开始 开外部中断0 开看门狗 进入掉电模式 Y 热释信号? 遥控信号? Y N N 启动台灯、记时 检测亮度、电量 Y 遥控模式? 关机? N N Y 遥控模式 坐姿有误? Y N Y 电量不足? 语音提示 语音提示 N Y 用眼达到预设时间? 语音提示 N Y 达到红外延 N 结束 11 待机模式 时时间?
2. 系统测试
2.1热释电红外传感器
热释电红外传感器一用于检测用户在当前光强下是否需要自动点亮台灯。由于我们平时使用台灯到人体的距离大概是1米左右,因此选择传感器一相应敏感距离为1.5m。芯片BISS0001的触发时间为2秒。菲涅尔透镜的角度约为139°*126°。所以传感器的检测范围在台灯使用范围之内。当用户离开或静止不动超过30秒时,传感器能迅速检测到用户离座信号,从而实现智能检测。热释放电红外传感器二用于检测用户坐姿是否正确,因此调节热释传感器二的相对敏感距离为0.8m。电压反馈电阻R17与传感器的相应敏感距离测试结果如表(1)所示,触发延时时间如表(2)所示。
表(1) 电压反馈电阻R14与传感器的相应敏感距离测试
电压反馈电阻R26 50K 20K 15K 10K
表(2) 触发延时对照表 时间调节电阻R28 220K 390K 触发延时时间 2s 4s 第一级放大倍数 440 1100 1466 2200 相对应敏感距离 0.8m 1.5m 2.4m 3.5m 490K 6s 2.2台灯电池工作时间
本项目设计出的智能型多功能台灯由于主要是利用太阳能充电以及可以作为手电筒使用,所以电池是极其重要的一个部分。因此,本项目中我们加入了对电池进行了实时监测功能。电池充满电后的使用时间如表(1)所示,电能监测情况如表(2)所示。 台灯工作模式 连续工作时间 第一次测试 第二次测试 第三次测试 智能工作模式 5h 4.6h 4. 手电筒模式 3.4h 2.8 3.2 待机模式 表(1)电池充满电后的使用时间
12
电池两端电压 黄、绿指示灯情况 绿灯亮,黄灯灭 黄灯亮,绿灯灭 黄灯灭,绿灯灭 语音报警 无 有 无 台灯工作情况 正常工作 正常工作 不工作 表(2)电能监测情况
2.3测试设备
万用表、示波器、稳压电源、秒表
2.4特色
1.针对目前普通台灯缺乏但却又是人们十分需要的功能设计研究,具有较强的实用性。创造型设计灯头与灯座可分离结构,可作为手灯使用,实现一灯多用。
3.太阳能充电为主,绿色环保,响应并很好地宣传了当今低碳生活的潮流。辅以交流电、USB供电,使台灯随时随地都可工作。
4.人性化的设计理念,提示音自由编辑,语音提示效果户可随个人喜好更改提示音,增强了语音提示的舒适度。
3. 结论
本项目本着智能,多功能,低碳,人性化的设计理念,智能地实现了台灯自动感应人体及环境光强和自动调节亮度;语音提示用眼时间,保护视力;语音提示电池电能情况,保护电池,增强使用寿命;太阳能充电,节能低碳,绿色环保;台灯的底座可分离,分离后台灯可以作为手电筒使用,使用范围广。项目达到了初定的目标,同时还提出人体追踪(即台灯跟着人体的活动而自动调整照明方向)等设想,但由于时间关系,只能作为本项目的扩展功能,以对设计进行进一步的完善。
4. 附录
附1:元器件明细表 序号 元器件名称 1 单片机 2 语音芯片 3 太阳能电池板 4 热释电红外传感器 5 信号处理芯片 6 白光大草帽LED 7 无线发射接收器 8 零散原件 9 800mA锂电池 合计
元器件型号 STC12C5410AD ISD1700 110*70mm B203 BISS0001 13
数量 1 1 2 2 2 36 1 2 价格(元) 10 12 24 6 5 6 8 3 26 98元
附2:电路图图纸
系统总电路原理图
14
附3:程序清单
MYSTC12C5410AD.H:
#define uchar unsigned char #define uint unsigned int #define ulong unsigned long
uint cnt,sec,sec1,sec2,sec3,sec4; //分别为:定时器溢出次数、使用台灯时间、红外延迟时间、亮度检测时间、电源检测时间、防近视延时时间 uint set_time=60; //用眼提示时间,单位是1s uint eye_time=20; //防近视提示时间,单位是1s bit eye_flag=0; //用来暂存IE1 bit eye_start=0; //防近视记时启动标志 uchar cnt1=0,pwm=0xff,pwmh=0; //因为是8路AD,所以pwm=255,pwmh是高电平的次数 uchar control_pwmh; //遥控设置的pwmh值 bit light_flag=1; //0是遥控控制,1是电位器或光敏电阻控制
uint set_light_time=2; //设置亮度检测时间,单位是500us
uint set_power_time=10; //设置电源检测时间,单位是1s
uchar bdata SR0_L; // SR0 寄存器 uchar bdata SR0_H;
uchar bdata SR1; // SR1 寄存器
sbit CMD=SR0_L^0; // SPI 指令错误标志位 sbit PU=SR0_L^2; // 上电标志位 sbit EOM=SR0_L^3; // EOM 标志位 sbit INTT=SR0_L^4; // 操作完成标志位
sbit RDY=SR1^0; // 准备接收指令标志位 sbit PLAY=SR1^2; // 播放标志位 sbit REC=SR1^3; // 录音标志位 sbit ERASE=SR1^1; // 擦除标志位
/*******************************接线**************************************/ sbit out=P3^0; //LED输出 sbit t1=P1^2; //设置提示时间的锁存开关 sbit t2=P1^3; sbit power_green=P3^4; //电源的2个状态灯
15
sbit power_yellow=P3^5; sbit SS=P1^7; //语音模块接线 sbit SCK=P1^6; sbit MOSI=P1^5; sbit MISO=P1^4; sbit r0=P3^2; //遥控接收A端 sbit r1=P2^1; //遥控接收B端 sbit r2=P2^2; //遥控接收C端 sbit r3=P2^3; //遥控接收D端
/**********************************接线**************************************/
void Feed() //看门狗函数 { WDT_CONTR=0x34; //不在空闲模式时计数,溢出时间:629.1ms }
void Delay(uint k) //延时程序 { uint i; while(--k){for(i=0;i<120;i++);} }
void Delayus(uint k) //us级延时程序 { while(--k); }
16
ISD1700.H
uchar ISD_SendData(uchar DATA) {
uchar i,BUF_ISD=DATA;
SCK=1; //初始条件
SS=0; //使能ISD1700 的SPI Delayus(4); for(i=0;i<8;i++) {
SCK=0; Delayus(2);
if(BUF_ISD&0x01) MOSI 端口
MOSI=1; else
MOSI=0;
BUF_ISD>>=1; if(MISO) 存在BUF_ISD //的最高位 BUF_ISD|=0x80; SCK=1;
Delayus(6); }
MOSI=0;
return(BUF_ISD); }
void ISD_PU() { ISD_SendData(0x01); ISD_SendData(0x00); SS=1; }
void ISD_PD() { ISD_SendData(0x07); ISD_SendData(0x00); SS=1; }
//延时
//发送&接收8 位数据 //将BUF_ISD 中的最低位数据发送到 //BUF_ISD 右移一位
//逐个接收MISO 端口的数据。将数据 //返回接收到的数据 //令ISD1700上电 //令ISD1700掉电 17
void ISD_STOP() //令ISD1700停止当前工作 { ISD_SendData(0x02); ISD_SendData(0x00); SS=1; }
void ISD_RD_Status() //读取ISD1700状态 { ISD_SendData(0x05); ISD_SendData(0x00); ISD_SendData(0x00); Delayus(2); SR0_L=ISD_SendData(0x05); SR0_H=ISD_SendData(0x00); SR1=ISD_SendData(0x00); SS=1; }
void ISD_CHK_Mem() //检查ISD1700环形存储结构 { ISD_SendData(0x49); ISD_SendData(0x00); SS=1; }
void ISD_CLR_Int() //清楚中断和EOM位 { ISD_SendData(0x04); ISD_SendData(0x00); SS=1; }
void ISD_SET_Play(uchar sl,sh,el,eh) //选址播放声音片段 { ISD_SendData(0x80); ISD_SendData(0x00); ISD_SendData(sl); ISD_SendData(sh); ISD_SendData(el); ISD_SendData(eh); SS=1; }
18
void ISD_WR_APC2(uchar apcdatal,apcdatah) { ISD_SendData(0x65); ISD_SendData(apcdatal); ISD_SendData(apcdatah); SS=1; } //对APC寄存器进行写数据
//ISD1700初始化
void ISD_Init() { SS=1; SCK=1; MOSI=0; do { ISD_PU();Delay(50); ISD_RD_Status(); }while(CMD|(!PU)); ISD_WR_APC2(0x40,0x00); do { ISD_RD_Status(); }while(RDY==0); }
void ISDWORK_Play(uchar num) { ISD_Init();
ISD_CHK_Mem(); if(num==1)
段 { ISD_CLR_Int(); do{ISD_RD_Status();}while(RDY==0); Delay(5); ISD_SET_Play(0x20,0x00,0x77,0x00); do{ISD_RD_Status();}while(PLAY==1); ISD_CLR_Int(); } if(num==2) 段 { ISD_CLR_Int(); do{ISD_RD_Status();}while(RDY==0);
19
//播放指定声音片段 //初始化ISD1700芯片 //检查环形存储结构 //调用用眼时间提示语音片
//调用电源电量提示语音片
Delay(5); ISD_SET_Play(0x79,0x00,0xd0,0x00); do{ISD_RD_Status();}while(PLAY==1); ISD_CLR_Int(); }
if(num==3) { ISD_CLR_Int(); do{ISD_RD_Status();}while(RDY==0); Delay(5); ISD_SET_Play(0x20,0x01,0xd0,0x01); do{ISD_RD_Status();}while(PLAY==1); ISD_CLR_Int(); }
ISD_PD();
}
20
//调用防近视提示语音片段
//ISD1700掉电
台灯.C
#include\"MYSTC12C5410AD.H\" #include\"ISD1700.H\"
void Init() //中断初始化函数 { Feed();TMOD=0x21; TH0=(65536-50000)/256;TL0=(65536-50000)%256; TH1=(65536-500)/256;TL1=(65536-500)%256; 为2KHz ET0=1;TR0=1;ET1=1;TR1=1; PT0=1;PT1=1; 和T1优先 EX1=1;IT1=1; 降沿触发 sec1=0; }
void Key() { Feed(); if(t2==0 && t1==0)set_time=60; 间 if(t2==0 && t1==1)set_time=30; if(t2==1 && t1==0)set_time=90; if(t2==1 && t1==1)set_time=120; }
uchar ADC(uchar adcvcc) { Feed(); P1M0 = 0x03;P1M1 = 0x03; P1.0口为开漏模式 ADC_CONTR |= 0x80; A/D转换电源 Delay(10); ADC_CONTR &= 0xE0; ADC_FLAG,ADC_START位和低3位 ADC_CONTR = ADC_CONTR&0xf8|adcvcc; 号
21
//T0为50ms定时 //T1作为PWM的频率,//开中断,T0和T1运行//设置中断优先级,T0//开外部中断1,设置下//初始化红外延时 //设置提示时间函数 //喂狗 //四种状态,四个提示时//AD转换函数 //设置P1.1口和 //1000,0000打开 //延时20ms //1110,0000 清 //设置当前通道
Delay(10); //延时使输入电压达到稳定 ADC_DATA = 0; //清A/D转换结果寄存器 ADC_CONTR |= 0x08; //0000,1000ADCS = 1,启动转换 do {;} while((ADC_CONTR & 0x10)==0); //0001,0000等待A/D转换结束 ADC_CONTR &= 0xE7; //1110,0111清ADC_FLAG和ADC_START位,停止A/D转换 return ADC_DATA; //返回转换结果 }
void Power_Light(uchar power_data) //检测电源状态函数 { if(power_data<=0xff & power_data>0xbd) { power_green=0;power_yellow=1; //5V到3.7V,绿灯亮 } if(power_data<=0xbd & power_data>0xa3) { power_green=1;power_yellow=0; //3.7V到3.2V,黄灯亮 } if(power_data<=0xa3) { power_green=1;power_yellow=1; //3.2V以下,灯全灭 ISDWORK_Play(2); //语音提示电量不足 } }
void Light_Light() //LED亮度调节函数 { if(light_flag) { if(ADC(0)<=0x28) //0.8伏以下屏蔽 control_pwmh=pwmh=0x28; else control_pwmh=pwmh=ADC(0); //将AD转换结果送给pwm的高电平个数 } else pwmh=control_pwmh; }
22
void Control() { if(!r0)light_flag=1; //交由电位器或光敏控制亮度 if(r1) { pwmh=control_pwmh; //防止关灯时亮度跳变 sec1=300; //关台灯,进入掉电模式 } if(r2) { if(control_pwmh>=255) light_flag=0; //如果占空比达到100%,就不变,交由遥控控制亮度 else { light_flag=0; //交由遥控控制亮度 control_pwmh=pwmh; //遥控的占空比值取台灯的占空比值 control_pwmh++; //遥控的占空比值加1 Delay(2); //延时 } } if(r3) { if(control_pwmh<=31) light_flag=0; else { light_flag=0; //交由遥控控制亮度 control_pwmh=pwmh; //遥控的占空比值取台灯的占空比值 control_pwmh--; //遥控的占空比值减1 Delay(2); //延时 } } }
void Check() //检测亮度、电源、提示函数 { Control(); //检测遥控信号 if(sec2>=set_light_time) { sec2=0; //清零台灯亮度记时时间 Light_Light(); //运行亮度调节函数
23
} if(sec3>=set_power_time) { sec3=0; //清零电量记时时间 Power_Light(ADC(1)); //运行电源检测函数 } if(sec>=set_time) { sec=0; //清零用眼提示时间 ISDWORK_Play(1); //播放用眼提示声音片段 } if(IE0==0 & eye_flag==1)eye_start=1; //开始防近视提示记时 if(sec4>=eye_time) { sec4=0; //清零防近视记时时间 ISDWORK_Play(3); //播放防近视提示声音片段 } }
void Auto_Light(uchar auto_light_data,bit flag) //亮度逐渐变化函数,flag=1时:逐渐变亮;flag=0时:逐渐变暗 { uchar t; //定义临时变量 if(flag) //判断变亮还是变暗 for(t=0;t<=auto_light_data;t++) { pwmh=t;Delay(2);Feed(); //占空比逐渐变大,LED逐渐变亮 } else { for(t=auto_light_data;t>0;t--) { pwmh=t;Delay(2);Feed(); //占空比逐渐变小,LED逐渐变暗 } ADC_CONTR=ADC_CONTR&0x00; //关闭AD } }
void main() //主函数,开了必要的中断后进入掉电模式 {
24
EA=1; //开总中断 IT0=1; EX0=1; Feed(); Delay(20);PCON=0x02; }
void Time0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; cnt++; if(cnt>=20) { sec++;sec1++;sec3++;cnt=0; if(eye_start)sec4++; Key(); } }
void Time1() interrupt 3 数 { cnt1++; if(cnt1<=pwmh) out=0; else out=1; if(cnt1>=pwm) cnt1=0; sec2++; }
void Int0() interrupt 0 { PCON=0x00; Feed(); Init(); Auto_Light(ADC(0),1); Power_Light(ADC(1)); do { Check(); if(IE0)
//设置外部中断0为下降沿触发 //开外部中断 //喂狗 //延时后进入掉电模式 //T0中断服务函数 //初始化T0计数 //定时器T0溢出数加1 //cnt=20时,时间为1s //各种秒数加1 //sec4开始记时 //检测提示时间设置按键 //T1中断服务函数。T1主要用于PWM的计 //定时器T1溢出数加1 //当计数小于高电平次数时,LED亮 //当计数大于高电平次数时,LED灭 //重置计数 //亮度检测时间加1 //外部中断服务函数 //单片机进入正常模式 //中断初始化 //LED逐渐亮 //检测电源状态 //运行检测函数 25
{ sec1=0;IE0=0; //重置红外延时时间,并清零外部中断位 eye_flag=0;eye_start=0;sec4=0; //重置防近视相关记时和标志 } if(IE1) { sec1=0;IE1=0; //重置红外延时时间,并清零外部中断位 eye_flag=1; //防近视标志置1 } }while(sec1<20); //如果连续20秒热释没有收到信号,单片机退出循环,进入掉电模式 Auto_Light(ADC(0),0); //LED逐渐灭 out=1;power_green=1;power_yellow=1; //关所有的灯 EX1=0; //关外部中断1 ISD_STOP();ISD_PD(); //ISD1700掉电 ET0=0;TR0=0;ET1=0;TR1=0; //关T0和T1的中断,并让它们停止计数 }
26
附4:参考文献
[1]丁向荣,贾平.单片机应用系统与开发技术.清华大学出版社,2009.
[2]丁向荣,谢俊,王彩申.单片机C语言编程与实践.电子工业出版社,2009. [3]苏士美.模拟电子技术.人民邮电出版社,2009.
[4]张毅,唐红.用ISD器件实现现场语音分段录音与随机组合放音.电子技术应用,2002.
5.查新报告
项目名称:智能LED台灯
查新点:台灯的智能化、用眼时间提示和利用绿色能源的研究和开发
查新要求:查国内外有无相同或相类似文献与研究报告,并作对比分析即新颖性判断。
查新结论:利用互联网进行查新检索,对智能台灯检索:目前市场上还没有真正智能化的台灯,部分的高档台灯有手动调光功能,但单有这个功能的台灯的价格已经达到100元左右;现在90%以上的台灯的光源体采用普通的白炽灯、普通的节能灯或荧光灯,其供电模式单一,主要为交流电220V经不通电源电路处理后直接供电,使用范围窄,不灵活,不节能,不符合现代低碳环保的发展趋势;网上资料显示,哈尔滨工业大学的学生也曾做出了一个智能台灯,能自动检测人体、环境光强从而实现自动开关灯的功能,但没有自由录音这个人性化设计,没有用到LED节能灯,更没有利用到太阳能这个新型绿色能源。 而本作品从一开始就是本着智能,节能,低碳,多功能的设计理念,实现自动检测环境光强和人体,从而实现自动开关灯,自动调节亮度;把太阳能作为主要的供电来源,光原体采用LED灯,处处体现了智能节能低碳这一设计理念;照明部分和支架部分可分离,台灯可以变为手电使用,可移动性较强,使用范围广,实现多功能。语音提示可根据用户需要选择自己或家人等自由录音,也可以用PC机音频下载喜欢的提示音,体现出作品人性化的特点。因此,本作品在现在以人为本,提倡、推广绿色环保,低碳生活的社会环境,绝对是一种优势。
27
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务