基于PIC16F877微控制器触摸式调光台灯智能化控制的实现

发布者:脑洞飞扬最新更新时间:2018-04-01 来源: eefocus关键字:PIC16F877  微控制器触  智能化控制 手机看文章 扫描二维码
随时随地手机看文章

  本文系统讲述如何利用PIC16F877微控制器实现触摸式调光台灯的智能化控制,实现(1)触摸调光;(2)灯丝预热;(3)自动消除眩光、频闪;(4)定时闹钟;(5)特色铃音;(6)整点报时;(7)事件提醒;(8)日历功能;(9)中文液晶显示等功能,满足安全、高效、无眩光、无频闪、功能齐全等质量标准。

  硬件设计


  1.PIC16F877徵控制器

  PIC16F877微控制器为MicroChip公司FLASH型CPU,片内含8K的FLASH程序存储区,368字节RAM,256字节的EEPROM,35个独立I/0口,一个16位计数器/定时器,两个8位计数器/定时器,14个可独立使用也可嵌套使用的中断源,2个捕捉器、比较器、PWM模块,,白带8路10位A/D,内带看门狗WDT及电源监视,具有休眠、等待等多种节电方式,I/0口可以直接驱动LCD。

  2.硬件电路设计

触摸式调光台灯硬件框图

  触摸式调光台灯硬件框图如上图所示,硬件原理图如下图所示。

触摸式调光台灯硬件原理图

   上图中C1和T1组成EMI滤波器,一方面可以减少镇流器对电网的干扰,另一方面可以防止其它电器设备对镇流器的干扰;V1-V4组成桥式整流器;C3、C4、V5、V6和R21组成无源功率因数校正电路,使功率因数达到0.9以上,为保证功率灯管使用寿命,电路的功率峰值因数应小于1.7,本文采用PIC16F877单片机的捕捉功能对频率进行反馈回读,根据频率的变化采取相应的措施,改变IR2151的输入,从而控制IR2151的输出频率,达到控制输出功率的目的。该方法可以使光源更稳定,消除眩光、频闪,达到护眼灯的效果。

  触摸式调光灯工作时通过触摸金属片A(亮键)、B(暗键),将人体杂波信号通过耦合电容加到MCU的I/0口进行检测,同时,耦合电容还可以防止因个别器件损坏而造成麻电现象;MCU根据检测到的信号通过程序分析、运算,将PWM信号从17脚输出到IR2151,控制振荡频率;振荡器经高端(HO)和低端(LO)引脚输出,驱动两个场效应管IRF830交替导逼和截止,达到控制灯管的目的。

  灯丝的预热由热敏电阻控制,上电后,IR2151的6脚、电感L1、电容C1O、Cl3组成串联谐振电路,在Cl3上产生高压加到灯管两端,将灯点亮。其中,RT为正温度系数的热敏电阻,起到对灯丝预热的作用;电源接通后灯丝电流几乎全部加载到C1O和RT上,由于C1O电容较大,LC串联电路不发生谐振,随着温度升高,RT阻值迅速增大,RT支路相当于开路)使LC串联电路发生谐振,即达到对灯丝进行预热及软启动的作用,延长了灯管的使用寿命,整个过程MCU时刻进行监控及调整,实现真正的智能化控制。

  软件设计

  软件设计由MCU初始化、装置自检、定时采样、中断处理、液晶显示、按键处理六部分,软件流程如下图所示。

软件流程

  定时器中断子程序为软件设计的核心,包含湿度、湿度采样、调光,除眩等控制,本文对温度、湿度的精度要求不是非常的严格,采样周期设为1min,通过采样5个点求平均值,且精度满足采样要求。

  定时器初始化子程序如下;

  /***********定时器初始化*******/

  void tmint(void)

  {

  INTCON=0X00;

  /********关闭中断**********/

  GIE=1;

  /***********总中断使能INTCON.7**********/

  PEIE=1;

  /*********外围接口中断使能位,必须置1否则TMR1中

  断不好用***********/

  TMR1IE=1;

  /**********TMR1溢出中断使能位**********/

  T1 CON=0X24;

  /******************预分频器1:4暂时不打开TMR1***********/

  TMR1 L=0X77;

  TMR1 H=0XEC;

  /**************定时器赋初值20mS中断1次***************/

  TMR1ON=1;

  /***********启动TMR1开始计数。T1CON.0**************/

  }

  定时器中断子程序如下:

  /************定时器中断***********/

  void interrupt clkint(void)

  {

  int i,j,k:

  for(i=1:i<5:i++)

  {

  adwd_h[i]=adwd_h[i+1];

  adwd_I[i]=adwd_I[i+1];

  /**温度采样值移位,顶出第1位,新值存在5位***/

  }

  int m,n,t;

  for(m=1;m<5;m++)

  {

  adsd_h[m]=adsd_h(m+1];

  adsd_I[m]=adsd_I[m+1];

  /***温度采样值移位,顶出第1位,新值存在5位*****/

  }

  ADCONO=Ox41;

  /*****时钟源F/8,AO通道,允许A/D工作**********/

  ADCON 1=0x82;

  /********结果右对齐**********/

  delayms(1);

  /***************等待采样,采样电容充电时间提高精度**************/

  ADCONOㄧ=Ox04;

  /**********启动A/D转换GO.ADCON0.2***********/

  while(ADIF==1)

  /***********等转换结束位ADIF置1,PIR1.6**********/

  {

  adwd_h[5]=ADRESH;

  adwd_I[5]=ADRESL;

  /**********存温度采样结果**********/

  }

  ADCON0=0x51;

  /**********时钟源F/8,A1通道,允许A/D工作**********/

  ADCON1=0x82;

  /*****结果右对齐**********/

  delayms(1);

  /**************等待采样,采样电容充电时间——提高精度************/

  ADCON0ㄧ=0×04;

  /********启动A/D转换GO,ADCON0.2********/

  while(ADIF==1)

  /*******等待转换结束位ADIF置1,PIR1.6***********/

  {

  adsd_h[5]=ADRESH;

  adsd_1[5]=ADRESL;

  /**********存温度采样结果**********/

  }

  TMR1 IF=O;

  /*******清中断标志位********/

  TMR1 L=0X77;

  TMR1 H=0XEC;

  /********定时器重新赋初值20mS中断1次***********/

  }

  功能说明

  为使台灯亮度调节平稳过渡,本文设置8档调光:轻触金属片A亮键,灯由灭点亮,然后每触摸一下亮键,台灯亮度增加一档,至第8档时台灯达到最亮,此后再按亮键亮度也不会增加金属片B暗键功能和亮键相反,每按一次亮度减小~档,直至熄灭,同时通过液晶显示相应的状态。

  其它功能通过不同按键进入相应的功能菜单进行设置,同时通过纯中文液晶菜单显示。另外,还可设置整点语音报时、3个定日寸闹铃以及事件提醒功能,每个闹铃周期还可以分别设定,事件提醒功能包括会议、约会、参加婚礼、运动、业余学习、其它等几种事件,提醒包括提前1天、提前1小时、提前10分钟三种选择。

  由于MCU存储容量有限,闹铃铃音除了固定的铃音外,还有以下4个比较有特色的语音铃音供选择:(1)懒猪起床了,不然把你抬出去了;(2)宝贝起床,太阳都照到屁股了;(3)快点起床、快点起床,一会迟到了;(4)你的定时时间到,快去办事吧。


关键字:PIC16F877  微控制器触  智能化控制 引用地址:基于PIC16F877微控制器触摸式调光台灯智能化控制的实现

上一篇:如何使用PIC16F5X实现异步串行I/O口
下一篇:基于PIC16F877香薰美容蒸汽浴房的智能化控制的实现

推荐阅读最新更新时间:2024-03-16 15:58

一种基于PIC单片机电压采样的功率因数在线检测
1.引言 功率因数是交流电路中的重要参数,是衡量电力系统是否经济运行的一个重要指标,也是供电线路在线监测系统的重要检测量,在功率因数补偿系统中需对其进行实时测量 。因此设计出结构简单、检测精度高的功率因数在线检测电路十分必要。而功率因数的测量一般都要对被测电路的电压、电流进行采样,然后进行处理提取功率因数信号,通常由电压、电流取样电路、整形电路、同步周期测量、相位测量等组成,其缺点是结构较复杂,检修困难,有时会出现功率因数的测量精度不高的问题 。为此,作者基于电压采样,经单片机软件进行分析、计算可得出被测电路的功率因数,通过显示电路显示出功率因数的大小,并由通信接口电路将被测功率因数进行远距离传输。这样既简化功率因数测量电路的结构,
[单片机]
一种基于PIC<font color='red'>单片机</font>电压采样的功率因数在线检测
pic16f877单片机TMR1的使用笔记
一、结构 1、TMR1可以作为通用的定时器和计数器,也可以利用内置的低频时基振荡器实现实时时钟RTC功能;通过TMR1与CCP模块的配合使用,TMR1还可以实现输入捕捉和输出比较功能。 TMR1是一个16位的可读可写的计数寄存器,由高低两字节组成(TMR1H和TMR1L)16位寄存器从0000H到FFFFH加1计数,然后回到0000H。在从FFFFH到0000H的过程中,置位中断标志位TMR1。 TMR1带有一个3位的可编程预分频器和一个低功耗低频时基振荡器。 二、特点 1、由16位的时钟信号上升沿触发的累加计数寄存器对 TMR1H,TMR1L; 2、TMR1H和TMR1L是在RAM中统一编址的寄存器对,地
[单片机]
PIC16F877矩阵键盘的识别
关于矩阵键盘的识别方法在51矩阵键盘识别中已经说过,现在要说的是PIC单片机与51单片机的区别,主要是PIC单片机的口子的输入输出需要TRISn寄存器设置,具体如下: 扫描法: #include pic.h #define uchar unsigned char #define uint unsigned int uchar num; const uchar SSEG ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay1ms(uint z) { uint x; uchar
[单片机]
LCD显示器与PIC16F877单片机连接
一.引言     液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。而美国Microchip公司生产的PIC系列单片机系用精简指令集(RISC),哈佛总线结构、2级流水线取指令方式,具有实用、低价、指令集小、简单易学、低功耗、高速度、体积小、功能强而逐渐成为8位单片机的新潮流。这里以JHD161A液晶模块与PIC16F877的连接来介绍它的使用方法。 二.JHD161A  LCD显示器及其与PIC16F877单片机的连接     JHD161A液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,是武汉博控科技有限公司生产的1行16个字符的LCD显示模块
[单片机]
LCD显示器与<font color='red'>PIC16F877</font><font color='red'>单片机</font>连接
PIC16F877的EEPROM读与写实验
PIC16F877的EEPROM每一个单元的读/写所用时间典型值为:4ms,最大值为8ms。在烧写每个EEPROM单元过程中,需要CPU插入等待时间,既可利用中断功能,也可利用软件查询方式来解决。在此我们利用了软件查询方式,循环检测WR烧写控制位兼烧写完成标志位。 PIC16F877的EEPROM读/写实验硬件连线图
[单片机]
<font color='red'>PIC16F877</font>的EEPROM读与写实验
智能化网络家电控制中电力载波模块的设计
    摘要: 在家庭自动化研究中,利用电力载波进行信息传送正成为研究的热点。基于ST7536开发了一种面向短消息、短命令的网络家电控制的电力载波通讯试验平台,并进行了大量的试验研究。其结果表明,电力载波模块能够较好地构成建家庭通讯网络,是一种性能价格比较高的控制方式。     关键词: 网络家电 电子载波 ST7536 通讯协议 信号衰减与阻抗匹配 电力载波(PowerLine CarrierWave,简称PLCW)通信是利用电力线进行信息传送的一种通信方式 。电力载波通信在远程三表(水表、电表、煤气表)信息的自动采集和传输中得到广泛的应用,在智能小区建设中备受青睐。随着信息技术的发展,智能化网络家电逐渐成为
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved