当前位置: 首页 > >

(完整版)红外感光智能LED台灯设计毕业设计

发布时间:

本科毕业论文(设计) 题 学 院 专 姓 目: 红外感光智能 LED 台灯 校: 山东科技大学 系: 机械电子工程学院 业: 机械设计制造及其自动化 名: 胡登极 指导教师: 于涛 摘要 随着社会的进步,人们生活水*日益提高,追逐高质量生活已经成了当 下的主题。智能化产品更是当下的发展趋势。为了满足人们高质量生活的 诉求,现设计一种红外感光智能 LED 台灯,该产品可以克服普通台灯不 能根据环境光强自动调节光的亮度的问题,使得使用者有更舒适的体验, 并且能在一定程度上保护人眼,且比较节能。 本次设计的内容基于单片机控制,使得该台灯具有人体感应,自动根据 环境光强度自动调节台灯亮度,同时为了满足使用者的某些特殊要求,该 台灯还设有手动调节功能,台灯的控制分为台灯按键控制和红外遥控控制 两种,这使得台灯的控制更加方便,灵活。 本次设计包括硬件部分和软件部分,硬件电路的核心是由单片机的控制 模块, PCF8591+光敏电阻的自动调光模块, HC-SR501 人体感应模块, HS0038 遥控红外接收模块,红外遥*鳎琇ED 发光电路共同组成,软件 采用比较灵活的 C 语言进行编程,进而对硬件电路进行有效控制。 关键字:单片机;HC-SR501;自动调光模块;HS0038;红外遥* ABSTRACT With the social progress and the improvement of living an standards, pursuing order to meet the demands of people of infraredphotosensitive inligent LED lamp in this design.The product can overcome the question of the common desk lamp can not automatically adjust the brightness according to the environmental light intensity,which allows the users to get more comfortable experience and can protect the in a certain extent and more energy-efficient. The content of this design is based on the control of MCU .It makes the lamp with the function of body induction, automatically adjust the lamp brightness according to the ambient light intensity,.And in order to meet some special requirements of the users, the lamp is also provided with a manual adjustment function.The control of lamp includes the key control and the infrared remote control.which makes the lamp control more convenient and flexible. The design includes body induction module, HS0038 infrared remote control receiving module, infrared remote controller, the LED luminous circuit composed. The software uses flexible C language programming to get the effective control of the () { uint8 jj=0; while(1) { sweep(); if((mode==0)&&(ii==0)) { if(; uint8 byte=0; SDA=1; for(n=0;n<8;n++) { SCL=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); byte<<=1; if(SDA==1) byte=byte+1; _nop_(); _nop_(); } SCL=0; _nop_(); return(byte); } void Ack_I2c(uint8 a) { *判断是否非应答信号* if(a==0) SDA=0; else SDA=1; _nop_(); _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=0; _nop_(); _nop_(); } void writeIIC(uint8 x,uint8 y) *写两个 IIC 字节* { iicstart(); iicsendbyte(x); if(ack==0) return; iicsendbyte(y); if(ack==0) return; iicstop(); } uint8 readIIC(uint8 z) { uint8 bb; iicstart(); iicsendbyte(z+1); if(ack==0) return(0); bb=iicreadbyte(); Ack_I2c(1); iicstop(); return(bb); } void delay() { uint16 dd; uint8 ee; for(ee=0;ee<40;ee++