




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七届创兴杯电子设计 竞赛论文 智能 led 台灯 智能 led 台灯 完成人:黄 xx(组长,电子 1004) ;翟 xx(电子 1004) ;洪 xx(电子 1004) 指导教师:xx 摘要摘要: 本文介绍了设计的框架结构和组成模块以及各模块的原理, 介绍了各部分硬件设计和 各部分软件设计以及软件流程图。 该设计是以 stc89c52 单片机为控制核心的集多种功能于 一体的智能 led 台灯。该台灯实现了自动检测屋内是否有人并自动开启/关闭功能;台灯光 亮度具有调节功能;具有时间显示功能;具有温度显示功能;闹铃功能。硬件设计分为单片 机控制模块、按键模块、台灯模块、温度模块、时钟模块、闹铃模块、显示模块,红外传感 模块等八个部分。 单片机控制就用 stc89c52, 显示模块用 lcd1602c 液晶显示温度、 时间、 日期等内容,按键模块用来调整时间、日期、led 的亮度等,时钟用 ds12c887 时钟芯片, 台灯模块用 16 颗 led,用蜂鸣器发出闹铃声,温度传感器用 ds18b20 芯片,检测人的用 bis0001 红外热释传感器。软件设计用单片机 c 语言编写,实现了全部控制功能。 关键词关键词:单片机,智能,显示,温度,时间。 1 led 台灯功能描述及总体该方案 1.1 功能描述 根据主要功能要求,该设计利用 51 单片机实现了电子时钟、温度的显示以 及设置闹铃等功能。具体可分为一下几种: 1) 显示当前的时间,24 时制的时、分、秒; 2) 可调节时间; 3) 显示当前屋内温度; 4) 能检测屋内是否有人并自动开启/关闭; 5) 可调节 led 光亮度; 6) 可设置闹铃时间并报警。 1.2 系统组成及工作过程 六大模块以 stc89c52 单片机为控制核心,实现了该智能台灯的各项要求,外接一个 5v 的直流电源,为整个系统供电。图 1 为设计的系统组成框图。 图 1系统组成框图 根据设计要求,该智能 led 台灯可分为八大模块: 1) 单片机控制模块; 2) 按键模块; 3) 台灯模块; 4) 温度模块; 5) 时钟模块; 6) 闹铃模块; 7) 显示模块; 8)红外传感模块。 加上 5v 直流电源后,后七大模块在单片机控制之下分别工作。 2 硬件设计 2.1 单片机控制模块设计 硬件电路如图 2, 单片机控制模块 显 示 模 块 温 度 模 块 闹 铃 模 块 台 灯 模 块 按 键 模 块 时 钟 模 块 红外传感模 块 图 2 单片机控制模块电路 这里我们选用 12m 的晶振,晶振系统由两个 30pf 的电容 cap 和晶振组成, 接到单片机的 18、 19 两管脚。 晶振给单片机提供硬件本身的时钟振荡。 一个 10f 的电解电容和一个 1k 的电阻组成复位电路,接至单片机的第 9 管脚。p0 口加上 排阻,即其就是 p0 口的上拉电阻,这就是给 p0 加驱动电路,电源通过排阻向 p0 口供电,使其能够驱动与 p0 口相连的元件。 2.2 按键模块电路设计 按键模块电路如图 3, 图 3 按键模块电路 按键 k5、k6 用来调节台灯的亮度,k7 控制模式,即控制台灯是工作在感应 模式下还是工作在手动模式下, 亦或是关闭状态。 其余的用作调节时钟以及闹铃。 按键均采用低电平有效连接方式。通过按下按键 k5 可以让台灯变暗,按下按键 k6 可以让台灯变亮。其余几个 s1 到 s4 按键可以对时钟进行设置调节,并调节 设置闹铃,当时间与设置的时间一致是闹铃报警,即蜂鸣器响。 2.3 台灯模块电路设计 台灯模块电路如图 4, 图 4 台灯模块电路 本设计采用 16 颗 led 作为发光系统,每两颗并联在一起后和一个 1k 的电 阻串联,用 p00 到 p03 口控制。电阻起限流作用,考虑到 i/o 口资源,我们用每 两个并联的方式以节省 i/o 口资源。通过按键 k5、k6 调节 pwm 输出以达到调 节光亮度的效果。4 个 i/o 均采用低电平有效方式,即给相应的 i/o 低电平 led 工作。 2.4 温度模块电路设计 温度模块电路如图 5, 图 5 温度模块电路 由于 ds18b20 温度传感器的集成度很高,封装简单,所以我们选用该芯片 作温度模块电路。1 脚接电源 vcc,2 脚数据线接单片机 p24 口,3 脚接地。芯 片采集到的数据通过 2 脚传给单片机的 p24 口让单片机进行处理, 之后送给显示 模块进行显示。 2.5 时钟模块电路设计 时钟模块电路如图 6, 图 6 时钟模块电路 因为 ds12c887 时钟芯片的集成度都很高,而且它自带锂电池,即使断电了 时钟仍然在工作,所以我们选择了 ds12c887 时钟芯片作为时钟。各脚的连接见 图 6.由于其集成度很高,我们只需按照其数据手册焊接电路即可。 2.6 闹铃模块电路设计 闹铃模块电路如图 7, 图 7 闹铃模块电路 闹铃模块主要就是一个蜂鸣器, 其作用是当到达设定的时间到时发出蜂鸣声 报警。用一个 pnp 型三极管和蜂鸣器连接主要是给蜂鸣器一个驱动,让蜂鸣器 为高电平有效,即 p07 口高电平时蜂鸣器发声报警。 2.7 显示模块电路设计 显示模块电路如图 8, 图 8 显示模块电路 液晶显示部分,我们选用 lcd1602c,其接法和普通的 1602 接法一样。1 脚接地,2 脚接电源,3 脚接一个电位器以调节液晶显示器的亮度,16 脚接地, 15 脚接背光电源,其余接法见图 8。在调试的时候,有时液晶不亮,多半是因为 遗漏背光电源,也有可能是虚焊导致。 2.8 红外传感模块电路设计 红外传感模块电路如图 9, 图 9 红外传感电路 检测屋内是否有人我们选用 bis0001 红外热释传感器, 因为该传感器灵敏度 好,好控制,而且价钱不贵。3 脚接电源 vcc,1 脚接地,2 脚通过一个 npn 型 的三极管接至单片机的 p37 口。 由于该传感器的带负载能力较弱, 加一个三极管 作为其驱动电路,当 p37 口给低电平时有效。检测距离可通过软件调节。 3 软件设计 3.1 主程序的设计 图 10 主程序流程图 主程序如图 10,一给单片机上电,单片机就初始化。然后通过接收并处理 bis0001 传感器出阿叔过来的数据,检测屋内是否有人,若有人则工作。然后检 开始 led 工作 显示时间、日期、温 度 检测屋内有人? 闹钟 按键按下? 修正时间,设置闹钟 系统初始化 测按键是否按下,判断工作在那个模式下。单片机接收并处理来自 ds18b20 传 过来的数据在液晶上显示当时的室内温度,液晶还显示当前的时间,日期。当需 要设置闹钟或调整时间时,又检测按键是否按下,以便对时间进行修正、设置闹 钟时间。最后进入循环。 3.2 按键模块程序设计 按键用来调整时间和设置闹钟, 调光亮度, 各键功能在介绍硬件部分已描述。 因为有年月日,时分秒几个参数要调,所以设置这几个参数的计数。当按下一个 键时,单片机进行相应的操作。当调光亮度时,按下 k5 键变暗,按下 k6 键变 亮,这是通过调 pwm 实现的。 3.3 台灯模块程序设计 该模块只需给 p00 到 p03 口送低电平即可,再通过按键调光亮。 3.4 温度模块程序设计 设计初始化函数,设计读 ds18b20 数据和对 ds118b20 写数据的函数,再写出 从 ds18b20 读温度并转换为十进制的函数,最后写显示温度的函数。 3.5 时钟模块程序设计 分别出写时间、日期的函数,再写出时间、日期的显示函数。设计时、分、 秒,年、月、日几个变量分别表示时分秒,年月日。 3.6 闹铃模块程序设计 对蜂鸣器,在其所接的 i/o 口写 1 即可实现它的蜂鸣,写程序时给它加了个 延时,以形成闹铃声。用数组来存储闹铃的值,闹铃声我们采用普通的嘀嘀嘀闹 铃声。 3.7 显示模块程序设计 设计 1602 的初始化函数,编写对 1602 写命令指令和对其写数据的子函数。 让所有的日期,时间,温度都在液晶上显示出来。 3.8 红外热释传感模块程序设计 编写一个从红外传感读数据的函数,检测有人与否,若有人,传感器发给单 片机一个高电平,单片机控制去 led,使得单片机的 p00 到 p03 口为低电平, led 亮,否则给低电平,led 灭。这就实现了检测屋内有人与否并自动开启或 关闭的功能。该传感器检测距离通过编写程序控制。 以上的程序见附录三。 4 总结 该设计实现了自动检测屋内是否有人并自动开启/关闭功能;台灯具有光亮 度调节功能;具有时间显示功能;具有温度显示功能;具有闹铃功能。但在细节 方面还有不足之处。led 亮度达不到很亮的程度,只能在一个很小的范围变化, 以致于光亮度不够。 附录一实物照片 附录二硬件电路图 附录三程序 #include #include void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void delay1(unsigned char t) while(t-); void di() beep=0; delay(100); beep=1; void write_com(char com) rs = 0; rw = 0; lcden=0; p1=com; delay(1); lcden=1; delay(1); lcden=0; void write_date(char date) rs=1; rw = 0; lcden=0; p1=date; delay(1); lcden=1; delay(1); lcden=0; void init() uchar num; flag1=0; flag=0; flag_ri=0; a=0;/人体感应 ea=1; ex1=1; it1=1; t0_num=0; slnum=0; write_com(0x38); write_com(0x01); write_com(0x06); write_com(0x0c); write_com(0x80); for(num=0;num 0 ; i-) dq = 0 ; / 给脉冲信号 dat = 1 ; dq = 1 ; / 给脉冲信号 if(dq) dat |= 0x80 ; delay1(4) ; return (dat) ; writeonechar(unsigned char dat) uchar i = 0 ; for (i = 8 ; i 0 ; i-) dq = 0 ; dq = dat delay1(5) ; dq = 1 ; dat=1 ; read_temperature(void) init_ds18b20() ; writeonechar(0xcc) ;/ 跳过读序号列号的操作 writeonechar(0x44) ;/ 启动温度转换 init_ds18b20() ; writeonechar(0xcc) ;/跳过读序号列号的操作 writeonechar(0xbe) ;/读取温度寄存器 temp_data0 = readonechar() ;/温度低 8 位 temp_data1 = readonechar() ;/温度高 8 位 disp_temperature() display4=temp_data0 display0=ditabdisplay4+0x30 ;/查表得小数位的值 display4=(temp_data0 display3=display4/100+0x30 ; display1=display4%100 ; display2=display1/10+0x30 ; display1=display1%10+0x30 ; if(display3=0x30)/高位为 0,不显示 display3=0x20 ; if(display2=0x30)/次高位为 0,不显示 display2=0x20 ; write_com(0x80+0x49) ; write_date(display3) ;/百位数显示 write_com(0x80+0x4a) ; write_date(display2) ;/十位数显示 write_com(0x80+0x4b) ; write_date(display1) ;/个位数显示 write_com(0x80+0x4d) ; write_date(display0) ;/小数位数显示 void keyscan() if(flag_ri=1) if(s1=0)|(s2=0)|(s3=0)|(s4=0) delay(5); if(s1=0)|(s2=0)|(s3=0)|(s4=0) while(!(s1di(); flag_ri=0; if(s1=0) delay(5); if(s1=0) slnum+; if(flag1=1) if(slnum=4) slnum=1; flag=1; while(!s1);di(); switch(slnum) case 1: write_com(0x80+0x40+6); write_com(0x0f); break; case 2: write_com(0x80+0x40+3); break; case 3: write_com(0x80+0x40); break; case 4: write_com(0x80+12); break; case 5: write_com(0x80+9); break; case 6: write_com(0x80+6); break; case 7: write_com(0x80+3); break; case 8: slnum=0; write_com(0x0c); flag=0; write_ds(0,miao); write_ds(2,fen); write_ds(4,shi); write_ds(6,week); write_ds(7,day); write_ds(8,month); write_ds(9,year); break; if(slnum!=0) if(s2=0) delay(1); if(s2=0) while(!s2);di(); switch(slnum) case 1:miao+; if(miao=60) miao=0; write_sfm(6,miao); write_com(0x80+0x40+6); break; case 2:fen+; if(fen=60) fen=0; write_sfm(3,fen); write_com(0x80+0x40+3); break; case 3:shi+; if(shi=24) shi=0; write_sfm(0,shi); write_com(0x80+0x40); break; case 4:week+; if(week=8) week=1; write_week(week); write_com(0x80+12); break; case 5:day+; if(day=32) day=1; write_nyr(9,day); write_com(0x80+9); break; case 6:month+; if(month=13) month=1; write_nyr(6,month); write_com(0x80+6); break; case 7:year+; if(year=100) year=0; write_nyr(3,year); write_com(0x80+3); break; if(s3=0) delay(1); if(s3=0) while(!s3);di(); switch(slnum) case 1:miao-; if(miao=-1) miao=59; write_sfm(6,miao); write_com(0x80+0x40+6); break; case 2:fen-; if(fen=-1) fen=59; write_sfm(3,fen); write_com(0x80+0x40+3); break; case 3:shi-; if(shi=-1) shi=23; write_sfm(0,shi); write_com(0x80+0x40); break; case 4:week-; if(week=0) week=7; write_week(week); write_com(0x80+12); break; case 5:day-; if(day=0) day=31; write_nyr(9,day); write_com(0x80+9); break; case 6:month-; if(month=0) month=12; write_nyr(6,month); write_com(0x80+6); break; case 7:year-; if(year=-1) year=99; write_nyr(3,year); write_com(0x80+3); break; if(s4=0) delay(5); if(s4=0) flag1=flag1; while(!s4);di(); if(flag1=0) flag=0; write_com(0x08+0x40); write_com(0x0c); write_ds(1,miao); write_ds(3,fen); write_ds(5,shi); else read_alarm(); miao=amiao; fen=afen; shi=ashi; write_com(0x08+0x40); write_sfm(0,ashi); write_sfm(3,afen); write_sfm(6,amiao); void read_alarm() amiao=read_ds(1); afen=read_ds(3); ashi=read_ds(5); void dsq() d1=0; d2=0; d3=0; d4=0; tmod=0x21 ; th0=0xfc ;/1ms 延时常数 12m tl0=0x18 ;/频率调节 th1=pwm ;/脉宽调节 tl1=0 ; ea=1; et0=1; et1=1; tr0=1 ; void dsq1() ea=0; d1=1; d2=1; d3=1; d4=1; void main() init(); while(1) if(a=1 m=1; if(a=0 m=0; delay(20); if(k7=0 if(k7=0 di() ; n=1; m=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 救援技师考试题库及答案
- 电工考试的实操电路题及答案
- 国际组织视角下的兽药残留风险分析与管理策略探究
- 全国教师笔试试题及答案
- 2025年自考审计学试题及答案
- 2025年保护环境知识竞赛题库及答案
- 青岛市幼师考编笔试题及答案
- 青岛地铁招聘笔试题库及答案
- 前端面试笔试题及答案
- 2025年岗位模拟主管护师考试试题及答案
- 南昌大学 2018-2019学年第二学期期中考试大学英语试卷
- 2025-2030酒吧行业市场发展分析及投资前景研究报告
- 预防阿尔茨海默症
- 2025-2030中国妇科中成药市场营销趋势及投融资发展状况研究报告
- 艾滋病防治知识宣传
- 危重患者肠内营养的护理
- 主题班会:养成教育
- 2024年全国职业院校技能大赛高职组(建筑工程识图赛项)考试题库(含答案)
- 《简单相信傻傻坚持》课件-中职语文高二同步课件(高教版2023职业模块)
- 人身安全主题课件
- 《中国象棋基础教程》课件
评论
0/150
提交评论