单片机课程设计-触控调光灯_第1页
单片机课程设计-触控调光灯_第2页
单片机课程设计-触控调光灯_第3页
单片机课程设计-触控调光灯_第4页
单片机课程设计-触控调光灯_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计绪论随着经济发展的加快,科学技术的进步,人们生活水平得到了提高,设备逐渐完善。台灯是生活中的伴侣,我们是不喜欢与强烈的光线打交道的,因为强光对人身体是有害的,为了大家能健康地生活与工作,设计师也想出了一个较为完美的构思,就是台灯的出现,它的出现让很多朋友们得到了满意的效果,但是生活中没有完美的东西,台灯亦不例外,这就需要我们的改进。例如,很多时候我们并不需要让台灯处于全亮状态,有时候我们只需要微弱的光照即可,过强的光线反而会对使用者造成不必要的干扰,而且这也是对电能的一大浪费。此外,关于开关的使用寿命,也是影响台灯的耐用性的另一个问题。因此,本设计的指导思想就是让台灯更耐用、更好

2、用且能够调节亮度,解决过高的亮度对使用者的干扰同时也是为了节能,以及解决普通机械开关易损坏的问题。对于触模式台灯,手一触到台灯的感应部位灯就会自动亮,如果多触摸几下,台灯就会达到最亮的极限,这样就可以调节了台灯的亮度也避免了开关易坏导致的调节亮度易失灵的问题。 本文介绍了触摸式台灯调光电路的设计及工作过程。本设计目的是通过设计工作熟悉触摸式调光灯电路基本构成与基本工作原理,并能将这些技术应用实际系统设计,提高自己对电路知识的认识。一、系统工作原理本设计采用STC公司的12系列单片机为控制芯片,配合外围电路进行对触摸按键的检测及对台灯亮度和开关的控制,利用单片机产生不同占空比的PWM方

3、波实现对灯光的亮暗控制。此外,本设计的触控功能的实现则是利用单片机的I/O口的开漏模式且未加上拉电阻,在此模式下I/O更容易接受外界微弱的电平,更容易受到手指的干扰。本设计中,在被设置成开漏的I/O口要在单片机读该口前将其置1,使其成为高阻状态,当I/O接口被设置到高阻输入状态时,I/O接口就是纯电平输入状态,在接口悬空时为低电平,当有手指触摸到I/O接口时,手指上的微弱电流会使I/O接口跳变到高电平,只要读出I/O接口的电平高低就可以了解是否有触摸操作,然后加一段按键去抖程序后去调整与PWM占空比相关的数值,从而实现灯光亮度的连续可调。二、系统硬件组成本设计中所采用的芯片有STC公司的小型封

4、装插件式单片机STC12C2052AD、AMS1117 5.0降压稳压IC、以及若干二极管、三极管,电阻电容等元器件。其中:2.1 控制部分STC12C2052AD单片机的引脚位置与用途如图2-1所示:图2-1 STC12C2050AD引脚图STC12C2052AD系列单片机是单时钟机器周期(1T)的兼容8051内核单片机,是高速低功耗的新一代8051单片机,全新的流水线精简指令集结构,内部集成复位电路其优点有以下几个方面:1.性价比高  采用STC12系列单片机可以省掉复位电路、外部数据存储器(如24Cxx系列芯片),某些场合还可以省掉晶振,电路简单、价格低廉。 

5、;2.速度快 STC12系列单片机为单时钟机器周期(1T),一些指令执行速度是传统8051的24倍,最低的也是3倍。 3.安全性好  目前,很难破译STC12系列单片机加密程序,加之用户数据可以保存到单片机内部,解密者很难通过用户数据分析单片机的运行状况。 4.可以直接代替8051针对传统8051单片机开发的程序,可以直接用于STC12系列单片机,无须重新编写。在本设计中,单片机的I/O口的P3.4、P3.5、P3.7均在程序中设定为开漏模式,以连接外部触摸板来分别实现对灯光的关闭、渐亮、渐暗的控制。单片机的P1.7口被程序设定为PWM方波输出口,用来连

6、接驱动灯光的驱动部分。图2-2为本设计控制部分的原理图:图2-2 控制部分原理图由于此次设计采用8V电压供电,为安全起见,单片机的输出端和接地端均与后面的驱动部分用二极管1N4148进行单向隔离,此外,本设计还预留了程序下载接口,方便日后功能的增强和对程序的调试。2.2 驱动部分驱动部分我采取的是用NPN型功率三极管13003级联搭建成的达林顿驱动器,以实现对较大电流负载的驱动控制。由于所使用的LED灯头内无限流电阻,且实测其全亮发光时电流高达0.5A,为防止电流过大所引起的三极管过热烧毁,因此在其负载回路串接了10 2.5W的限流电阻,以牺牲较小的光照强度来换取元件的安全。图2-3为驱动电路

7、及LED接口的原理图:图2-3 驱动电路与LED接口其中三极管13003为NPN型硅晶体管、功率开关三极管,主要用于:日光灯、电子镇流器、充电器等高压功率开关电路。其参数为:(TO-92封装)1. 芯片面积:1.63×1.63(特制芯片)2. 额定电流:1.5 A(加大电流品种)3. 饱和压降低、热性能好、反向击穿电压高、漏电流小。4. 13003最大额定值如表2-1:表2-1 三极管13003最大额定值因此,用三极管13003来搭建驱动电路能为负载提供足够的电流,能使LED发出足够的光照强度供照明使用。2.3 电源部分本设计之初经试验发现若用单节18650锂电池供电,虽然也能正常工

8、作(即触控调光可用),但由于三极管等驱动部分电路存在较大电压降,导致即使控制状态为全亮,但实际的照明亮度却很低。后经试验发现采取两节18650串联成8V供电后LED及驱动部分均能正常工作(单节18650锂电池满电状态下实测电压在4.1V左右),单片机部分则用降压稳压芯片AMS1117供电,两路不同电压电路再采取适当隔离后,整个控制驱动板即能正常工作。其供电、降压以及电源指示电路如图2-4所示:图2-4 电源及指示部分原理图其中:AMS1117是一个正向低压降稳压器,在1A电流下压降为1.2V。AMS1117有两个版本:固定输出版本和可调版本,固定输出电压为1.5V、1.8V、2.5V、2.85

9、V、3.0V、3.3V、5.0V,具有1的精度;固定输出电压为的精度为,其内部集成过热保护和限流电路,是电池供电和便携式计算机的最佳选择。AMS1117参数如下:1.输入电压 最大: 18V2.输出电流 最大: 1A3.输出电压 : 5.0V4.功耗 :5W5.输入电压 最小: 6.2V6.封装类型: SOT-223,SOT-897.工作温度范围: -20°C to +125°C(也有0°C to +125°C)由于本设计采取电池纯直流供电,所以可以省去AMS1117周围的滤波电容等元件及其电路连线,让整个控制板更小巧,以便能顺利装入空间不大的台灯底座,

10、经实测,降压稳压芯片AMS1117能正常稳定工作。三、系统软件设计系统的软件部分分为按键检测部分和PWM方波生成部分。其中,系统的软件流程图如图3-1所示:3.1 系统流程图图3-1 系统软件流程图STC12C2052AD系列单片机所有I/O口均可由软件配置成种类型之一,如表3-1所示。种类型分别为:准双向口(标准输出模式)、推挽输出、仅为输入(高阻)或开漏输出功能。每个口配置个控制寄存器控制每个引脚输出类型。STC12C2052AD系列单片机上电复位后为准双向口(标准8051输出模式)模式。其中P3口设定(P3.7,X,P3.5,P3.4,P3.3,P3.2,P3.1,P3.0,无P3.6口

11、)如下表:表3-1 STC12C2052AD I/O口配置方式在本设计中P3口的配置为P3M0=0xb0; P3M1=0xb0;即: P3.5,P3.4,P3.7为开漏输入,其余为普通双向I/O口3.2 系统程序/*文件名 :LED调光修改调试 :春阳最后修改 :2015.11.17功能 :触控调光台灯备注 :此次设计采用定时器0生成PWM信号,另外,stc12系列头文件,type.h则在本主程序下方*/#include "stc12c5a.h" /stc12系列单片机总头文件,其包含各I/O口位定义#include "type.h"/见文档末尾#def

12、ine FRE 22118400#define TIME_FRE 10000000 /计时1/10000000=0.0000001s=0.0001ms (此时间是用来加快LED闪烁频率)#define T0RELOAD (65536 - (FRE / TIME_FRE)/*初始化变量*/volatile U32 SYS_TIME = 0;volatile U32 LED_PWM = 0;/*函数名:毫秒级CPU延时函数调 用:delay(?);参 数:165535(参数不可为0)返回值:无结 果:占用CPU方式延时与参数数值相同的毫秒时间备 注:应用于1T单片机时i<600,应用于12T

13、单片机时i<125*/ void delay(unsigned int a) unsigned int i; while( -a != 0) for(i = 0; i < 600; i+); /*函数名:定时器0初始化函数调 用:Timer0_Init();参 数:无返回值:无结 果:设置定时器0工作方式备 注:*/void Timer0_Init() TMOD &= 0XF0; TMOD |= 0X01; /定时器0的16位计数方式 TH0 = T0RELOAD / 256; TL0 = T0RELOAD % 256; AUXR |= 0X80; / 计数器0时钟为Fos

14、c,即1T PT0 = 1; / 定时器0优先级控制位, 1 为高优先级 0 为低优先级 EA = 1; /开总中断 ET0 = 1; /开定时器0中断 TR0 = 1; /启动定时器0/*函数名:主函数调 用:无参 数:无返回值:无结 果:程序开始处,无限循环备 注:触控调光台灯主程序,包含按键检测及占空比调节*/void main() Timer0_Init(); P3M0=0xb0; /P3口配置:P3.7,P3.5,P3.4为开漏输入,其余为普通双向I/O口 P3M1=0xb0; while(1) P34 = 1; /p3.4置为开漏高阻态if(P34 = 1) / KEY1 直接关灯

15、键delay(2); /延时消抖if(P34 = 1)LED_PWM = 0; / 熄灭LED P35 = 1; /p3.5置为开漏高阻if(P35 = 1) / KEY2 按键一直按着,LED逐渐变亮delay(2); /延时消抖if(P35 = 1)if(LED_PWM < 100)LED_PWM +; /灯光渐亮P37 = 1; /p3.7置为开漏高阻if(P37 = 1) / KEY3 按键一直按着,LED逐渐变暗delay(2); /延时消抖if(P37 = 1)if(LED_PWM >0)LED_PWM -; /灯光渐暗 /*函数名:T0定时器中断服务程序调 用:无参

16、数:无返回值:无结 果:提供PWM波输出I/O口的电平翻转备 注:*/void Timer0_Routine() interrupt 1 TH0 = T0RELOAD / 256; TL0 = T0RELOAD % 256; SYS_TIME +; if(SYS_TIME < LED_PWM) P17 = 1; /点亮LED else P17 = 0; /关闭LED if(SYS_TIME > 100) SYS_TIME = 0;/* type.h */#ifndef _TYPE_H_#define _TYPE_H_ typedef unsigned char U8;typedef

17、 signed char S8;typedef unsigned int U16;typedef signed int S16;typedef unsigned long U32;typedef signed long S32; #endif四、总结与体会经过一段时间的焊接与调试,总算把台灯制作完成,期间也经历过各种意想不到的问题。就以三极管搭建的达林顿驱动来说,在找到功率三极管13003之前,我只找到了一堆9014,由于三极管9014的功率有限,无法承受灯头20多个LED带来的0.5A的强大电流,即使使用了几对分立元件搭建的达林顿也一样,表现均是高度发热,用万用表实测温度已高达130,所以根

18、本无法用在实际应用当中。由于电流过大,所以也无法使用集成达林顿IC,直到找到能允许较大功率的三极管13003后,才使得整个系统的温升控制在能接受的范围。归其原因就在于所使用的LED灯头,此灯头来自一电源报废的商品LED充电台灯,由于灯头的LED仅仅采用并联的做法做在一块专用PCB板上,上面无任何限流保护措施才导致此次制作LED工作时电流过大,以至于在寻找驱动方法上费了好大功夫。本次的课程设计不但顺利完成,而且所制作的调光台灯很实用,也整好满足我的日常需求。由于设计过程中除单片机外大部分器件均来自废旧电路板上的拆机件,经检测性能正常后装进控制板。包括所用的功率三极管13003就是在一废旧电子镇流器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论