基于STC15F2K60S单片机的光控灯设计.doc

上传人:仙人指路1688 文档编号:4148289 上传时间:2023-04-07 格式:DOC 页数:18 大小:287.50KB
返回 下载 相关 举报
基于STC15F2K60S单片机的光控灯设计.doc_第1页
第1页 / 共18页
基于STC15F2K60S单片机的光控灯设计.doc_第2页
第2页 / 共18页
基于STC15F2K60S单片机的光控灯设计.doc_第3页
第3页 / 共18页
基于STC15F2K60S单片机的光控灯设计.doc_第4页
第4页 / 共18页
基于STC15F2K60S单片机的光控灯设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于STC15F2K60S单片机的光控灯设计.doc》由会员分享,可在线阅读,更多相关《基于STC15F2K60S单片机的光控灯设计.doc(18页珍藏版)》请在三一办公上搜索。

1、基于STC15F2K60S单片机的光控灯设计摘要:本设计为遥控调光控制系统,主要由触摸感应模块、无线发射与接收模块、显示模块、调光电路模块和主控模块构成,通过感应触摸屏输入控制信号经无线收发模块将信号送至主控器处理,主控器接到信号后控制调光电路实现对白炽灯的光强度控制,同时并用12864液晶屏显示。本设计感应灵敏,发射距离长,调光连续,电路结构简单,成本低,操作方便。关键词:遥控 感应 信号收发 调光一、整体系统电路分析遥控技术广泛应用到通信系统和其他电子系统中。如电视跳台、空调调温,若发收距离长时,还可以进行远程控制。系统是基于STC15F2K60S单片机的无线遥控灯光控制系统,通过感应触摸

2、屏输入控制信号经无线收发模块将信号送至主控器处理,主控器接到信号后控制调光电路实现对白炽灯的强度控制。题目要求遥控传输距离大于7米,实现触屏感应按键对白炽灯进行光暗控制。基于以上要求,信号传输我们使用无线传输模块,触摸按键使用电容型按键,调光控制电路使用光耦和双向晶闸管进行调光,并实时显示光照强度。根据要求,总体电路可由五个模块构成:1.感应触摸键盘模块; 2.无线收发模块; 3.主控CPU模块; 4.12864液晶显示模块; 5.调光电路模块。系统的设计框图如下图1所示:图1 遥控调光系统框图二、系统方案设计与论证2.1主控器选择方案一:主控部分采用STC89C51单片机,STC89C51是

3、一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。该单片机使用方便,控制简单,单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。并且,由于芯片引脚少,在硬件很容易实现。但考虑到对负载连续控制,就要求单片机要产生占空比连续可调的方波,程序较复杂。方案二:主控部分采用STC15F2K60S单片机,STC15F2K60S是一种新型的低功耗、高性能CMOS8位微控制器,具有 61K 在系统可编程Flash 存储器。该单片机使用方便,控制简单,单片机算术运算功能强,软件编程灵

4、活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、功能齐全和成本低等优点。基于以上比较我们选择方案二满足题目要求。2.2感应触摸按键选择方案一:采用触摸屏实现触摸遥控功能,这种触摸屏是电阻式的,电阻式触摸屏是一种传感器,它将矩形区域中触摸点(X,Y)的物理位置转化为代表X坐标和Y坐标的电压来判断按键的位置。这种方案也可以实现,但是不符合题意。方案二:采用市场上的全触电容屏,这种电容式触摸感应按键的基本原理是当人体(手指)接触金属感应片的时候,由于人体相当于一个接大地的电容,因此会在感应片和大地之间形成一个电容,感应电容量通常有几pF到几十pF。利用这个最基本的原理,在外部

5、搭建相关电路,就可以根据这个电容量的变化,检测是否有人体接触金属感应片。电容式触摸按键比电阻式的更加灵敏,所以选择方案二。 图2 按键示意图2.3无线收发模块选择方案一:我们可以选择NRF2401无线发射模块,NRF2401是单片射频收发芯片,芯片内置频率合成器功率放大器,晶体振荡器和调制器等模块,芯片功耗非常低,但是成本比较高,发射信号过程容易受到干扰。方案二:选择红外线编码发射信号,在接收端通过解码芯片解码后给单片机处理,发射速度NRF2401快,我们选择红外发射模块。2.4调光电路选择方案一:选用固态继电器的开关来控制交流电,固态继电器原理跟继电器比较相似,但是固态继电器的频率可以达到1

6、20HZ,这样用PWM波控制它的开关通断就可以实现灯光亮度的调节,不过灯光闪烁不停。方案二:选用高频,高压的晶体管和光耦,光耦用作隔离,而且速度很快,利用光耦的通断在输出端输出高低电平来控制晶体管的通断,我们试了以后发现交流电电压太高,将晶体管烧坏了。方案三:我们用光耦和双向晶闸管来做调压电路,晶闸管交流开关门级毫安级电流的通断可控制晶闸管阳极几十到几百安培电流的通断,交流开关的特点是晶闸管在承受正版周期电压时触发导通,而它的关断是利用电源负半周期在管子上加反电压来实现,在电流过零是自然关断。因此过零检测很重要,要保持同步触发,我们选择方案三。2.5光传感器采用光敏电阻采集光的强度,与电阻串联

7、进行分压,然后用A/D采样后送给单片机处理实时检测并且显示光亮的强度。由于光敏电阻的随光照的强度非线性,我们在软件上进行补偿。三、系统电路设计3.1触摸按键电路触摸按键采用STM8S103K3可编程芯片对采集的按键信息采集,进过处理后输出高低电平,从而达到触摸的目的。3.2红外发射电路红外发射电路我们采用集成发射、接受模块,只需对发射和接受进行编码和解码,然后送给单片机进行处理,该模块价格低且使用起来较简单。3.3调光电路本调光控制器的框图如下:图3调光电路框图(1)控制部分为了便于灵活设计,选择可多次写入的可编程器件,本设计方案中选用的是ATMEL公司生产的AT89C51单片机。(2)驱动部

8、分由于驱动的对象是交流负载,且为了实现连续调节的目的,本电路中采用了无触点开关元件双向可控硅。双向可控硅能够对交流电源的导通进行无触点连续控制,以小电流控制大电流,且动作快、寿命长、可靠性高。(3)负载部分本电路的负载是60W白炽灯(纯阻负载)。3.4交流电源过零检测电路交流电源同步信号的产生如图4电路所示,图中的同步信号就是我们需要的交流电压过零点信号。各部分波形如图5所示。图中整流后波形中的水平虚线表示光耦P52l输入二极管的门限电压。P521是TLP521的简称。图4过零点信号提取电路图5 过零点信号(同步信号)波形图图7 可控硅主电源导通区间,同步信号和触发信号时序图图8 调光电路3.

9、5光传感器电路 图9采光电路如上图,光敏电阻串联50欧的电阻供给+5V的电源,分析可知当光照强度强市AD口电压低,光照弱时电压高,通过AD采样送单片机处理获取光照强度。由于光敏电阻的特性曲线是非线性的,所以我们在软件中进行了补偿,从而得到光照强度。3.6时钟控制电路 图10 DS1302时钟芯片 图11 DS1302工作原理DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM,可通过简单的串行接口与单片机进行通信。Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc27米能否实现能能能能能

10、能能能表1遥控距离测试表由表可以看出遥控距离大于7米,满足题目要求。六、结论与改进措施经过一个星期的努力,本系统能达成课程设计的基本要求。6.1 基本要求(1)遥控器的遥控距离大于7米。(2)遥控器不少于6个感应触摸按键。(3)负载L为60W白炽灯。(4)各个按键的功能及调光效果,如表2所示。要求达到程度按键1白炽灯打开,亮度100% (基本要求)满足按键2白炽灯关闭,亮度0%(基本要求)满足按键3白炽灯打开,亮度 60% (基本要求)满足按键4白炽灯打开,亮度 30%(基本要求)满足按键5按着按键白炽灯渐变暗,松开按键后亮度为当前松开按键时的亮度(发挥部分)满足按键6按着按键白炽灯渐变亮,松

11、开按键后亮度为当前松开按键时的亮度 (发挥部分)满足表2 按键功能及对应调光效果6.2 存在的问题与改进措施(1)同步触发信号比较难以实现,实现多路分别控制十分有难度。(2)光敏传感器是非线性的,用A/D转换器采样显示的时候比较难以做到很精确,只能得到近似值。七、总结通过本次课程设计,我们对不仅对电力电子这门课有了更多的了解,而且基本锻炼我们使用电力电子器件和单片机的能力。学会了初步的电子仿真设计。锻炼了自己的思考能力和创新能力。自己对电路的设计和看课本上的电路感觉完全不同,在设计过程中要考虑很多的因素,比如器件的选择要考虑到参数,还要看软件中的元件库中有没有此元件,还要通过查资料了解元件的结

12、构和原理。在仿真过程中会有一些错误,所以需要分步分析电路的错误,因此而学会了如何对电路进行分析测试的方法,并想办法加以改正。同时也一定程度上掌握了单片机方面的控制思想,对我们以后学习的过程中会有很大的帮助。八、参考文献1 李玉梅基于MCS-51系列单片机原理的应用设计国防工业出版社2 谢自美电子线路设计实验测试武汉:华中科技大学出版社,20023 全国大学生电子设计大赛获奖作品选编北京:北京理工大学出版社,20014 第六届全国大学生电子设计竞赛获奖作品选编北京:北京理工大学出版社,20035张兴.电力电子技术. 北京:科学出版社,2010.九、附录:1:整体实物图 图13 熄灭状态实物图 图

13、14 60%光强度状态的实物图2:程序代码#include #include #include#include Data_def.h#include Delay.h#include 12864.h#include ds1302.h#include DS18B20.hbit ReadTimeFlag;/定义读时间标志#define T1MS (65536-1000) /定时1mssbit OUT1= P12;/第一路触发信号输出sbit K1= P20;/8个触摸按键定义 为高电平是表示有键按下sbit K2= P21;sbit K3= P22;sbit K4= P23;sbit K5= P24

14、;sbit K6= P25;sbit K7= P26;sbit K8= P27;sbit IRIN = P32; /红外接收器数据线uint count1,count2;/两路延时计数器uint num1,num2;/两路预置参考值uchar IRCOM7;/存放红外数据uchar flag1;/两路选择标志 0时第一路 1时第二路uchar i=0;void exint_init()/外部中断初始化/INT1由过零触发信号触发IT0 = 1; /设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿) EX0 = 1; /使能INT0中断/INT0由遥控器触发IT1 = 1;EX1 =

15、1; EA = 1;void timer_init()/定时器初始化AUXR &= 0x3f; /定时器0和定时器1为1T模式 TMOD = 0x00; /设置定时器为模式0(16位自动重装载) TL0 = T1MS; /初始化计时值 TH0 = T1MS8;TL1 = T1MS; /初始化计时值 TH1 = T1MS 8;ET0 = 1; /使能定时器0中断 EA = 1;void data_init()count1=0;OUT1=1;flag1=0;num1=7;void delay(void) /140us,为红外准备uchar i,j;i = 2;j = 159;do while (-

16、j); while (-i);void exint0() interrupt 0 /INT0中断入口,控制红外 unsigned char j,k,N=0;EX0 = 0; delay();if (IRIN=1) EX0 =1;return;/确认IR信号出现 while (!IRIN) /等IR变为高电平,跳过9ms的前导低电平信号。delay();while (IRIN) /等 IR 变为低电平,跳过4.5ms的前导高电平信号。delay();for (j=0;j4;j+) /收集四组数据 for (k=0;k=15) EX0=1;return; /0.14ms计数过长自动离开。 /高电平

17、计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0”if (N=8) IRCOMj = IRCOMj | 0x80; /数据最高位补“1”N=0;/end for k/end for jif (IRCOM2!=IRCOM3) EX0=1;return; IRCOM5=IRCOM2 & 0x0F; /取键码的低四位IRCOM6=IRCOM2 4; /右移4次,高四位变为低四位if(IRCOM6=0&IRCOM5=12)num1=3;Display_str(2,4,100%亮度);if(IRCOM6=1&IRCOM5=8)num1=4;Display_str(2,4, 60%亮度);i

18、f(IRCOM6=5&IRCOM5=14)num1=6;Display_str(2,4, 30%亮度);if(IRCOM6=0&IRCOM5=8)num1=8;Display_str(2,4,熄灭状态);if(IRCOM6=1&IRCOM5=12) num1=3;Delay_ms(100); while(num13)num1-;Delay_ms(20);Display_str(2,4,逐渐变亮);EX0 = 1; void exint1() interrupt 2 /INT1中断入口,输出触发信号 TR0 = 1;void timer0() interrupt 1 /定时器中断count1+;

19、if(count1=num1)if(num1!=10)count1=0;OUT1=0;Delay_ms(1);OUT1=1;TR0 = 0;void keyprocess()if(K8)/100%亮度num1=2;Display_str(2,4,100%亮度);if(K2)/80%亮度num1=3;Display_str(2,4, 80%亮度);if(K3)/60%亮度num1=5;Display_str(2,4, 60%亮度);if(K4)/20%亮度num1=7;Display_str(2,4, 20%亮度);if(K5)/扫描 逐渐变暗num1=3;Delay_ms(2000);whil

20、e(num13)num1-;Delay_ms(2000);Display_str(2,4,逐渐变亮);if(K7)/20%亮度num1=8;Display_str(2,4,熄灭状态); void Display() uint temp_data,TempDec;write_LCD_cmd(0x93);write_LCD_dat(temp_data/100+0x30);write_LCD_dat(temp_data%100/10+0x30);write_LCD_dat(temp_data%10+0x30);write_LCD_dat(.);write_LCD_dat(TempDec/1000+0

21、x30);write_LCD_dat(TempDec%1000/100+0x30);write_LCD_dat(TempDec%100/10+0x30);write_LCD_dat(TempDec%10+0x30);void main() LCD_init();Ds1302_Init();data_init();exint_init();timer_init();Display_str(0,0,遥控调光控制系统);Display_str(1,0,室温:);Display_str(1,7,);Display_str(2,0,光照强度);Display_str(2,4, 10%亮度); Displ

22、ay_str(3,1,月);Display_str(3,3,日);while(1)Display(); keyprocess();/触摸按键函数调用 ReadTimeFlag=1;/ds1302时间调用 if(ReadTimeFlag=1) ReadTimeFlag=0; Ds1302_Read_Time(); display1(time_buf14); /时 display2(time_buf15); /分 display3(time_buf16); /秒 if(time_buf14=8)&(time_buf15=24)&(time_buf16=00) num1=8; display4(time_buf12); /月 display5(time_buf13); /日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号