基于单片机的视力保护器设计
扫描二维码
随时随地手机看文章
为了保护青少年的视力,现如今越来越多的公司都在研发生产各种视力保护产品,国内主要有眼保姆,坐姿矫正器和各种护眼灯;国外有法国艾斯·布鲁斯研发的光明天使博士镜,以及美国眼科专家威廉贝茨研发的阿瞳二代产品。但这些产品功能单一,不能满足消费者的个性化需求。针对这一问题,本文将单片机与视力保护相结合,利用单片机芯片的智能处理功能,结合超声波测距原理,光敏电阻随光强变化的特点,单片机定时器T0,T1的工作原理,以及LCD1602液晶显示器的使用方法,设计了一个多功能视力保护器。该设计的技术要求是当学生的面部与书本或电脑的距离小于30 cm时,蜂鸣器产生声光报警,提醒学生注意坐姿;当学生学习时间超过45分钟时,蜂鸣器产生声光报警,提醒学生休息片刻;当光线过强或过弱时,蜂鸣器产生声光报警,提醒学生注意学习环境;能够分辨是什么原因引起的声光报警;并具有设置功能,能够自行设定相应的数据。
1 总体设计
1.1 系统设计方案
本系统采用STC89C52RC DPIP40单片机作为核心控制单元,通过HC—SR04超声波测距模块测量人的面部到书本的距离,当测得距离小于30 cm或设定距离时产生声光报警。利用光敏电阻的光电导效应采集光线模拟信号,并通过ADC0832模数转换器转换为数字信号,对数字信号进行光强等级处理并用1602液晶显示器显示光的强弱,当光太强或太弱时产生报警。通过单片机内部定时器T1对学习时间进行计时,当学习时间超过45分钟或设定值时产生报警,其中报警电路由一个PNP型三极管驱动。系统总体设计方框图如图1所示。
1.2 系统设计的基本步骤
本设计的主要步骤如下:
1)认真分析视力保护器的技术要求。
2)确定硬件设备,选好器件的型号。
3)画电路原理图。
4)根据硬件电路及各芯片的时序编写程序。
5)将程序输入单片机进行软件测试,查找错误,使系统程序更加完善。
6)根据电路原理图及相应元器件的焊接方法焊接硬件电路。
7)将程序写进单片机进行硬件调试。
2 硬件设计
STC89C52RC PDIP封装单片机由宏晶科技推出,其指令代码完全兼容传统8051单片机,是一种增强型8051单片机。工作电压为5. 5~3.3 V(5 V单片机),有8 K字节的用户应用程序空间,片上集成512字节RAM,内部带2 K EEPROM的存储空间。通过串口就可直接下载程序,且处理速度快,抗干扰能力强,功耗低,价格便宜,所以本设计采用STC89C52RC作为控制电路的主选芯片。
2.1 主控模块设计
该主控模块含有时钟电路、系统复位电路、电源电路。其中时钟电路由单片机内部反相放大器的输入引脚跨接在晶振两端和两个微调电容组成,构成自激励振荡器,用来产生单片机工作时必须的时钟信号。时钟电路中电容选用20 pF,晶振选用12 MHz,因为频率越高单片机的速度越快。系统采用按键复位的工作方式,其复位电路由复位按键、10μF电容和10kΩ电阻组成,单片机的复位时间由复位电路的极性电容决
定,极性电容一般采用10~30μF。单片机的时钟工作以后,只要RST引脚上出现两个机器周期以上的高电平,系统就复位。
2.2 蜂鸣器报警电路模块设计
由于电磁式蜂鸣器需要较低的电压就能发出很高分贝的声音,本设计选用电磁式蜂鸣器,其发声的原理为电流通过电磁线圈产生磁场,进而驱动振动膜片发声。由于单片机I/O引脚输出电流的驱动能力有限,所以采用PNP型三极管(放大作用)驱动蜂鸣器。当P1.3输出高电平“1”时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声,当P1.3输出低电平“0”时,三极管Q1导通,电流流过蜂鸣器线圈,蜂鸣器发声。因为发光二极管和蜂鸣器并联,所以声光报警是同时进行的。蜂鸣器报警电路图如图2所示。
2.3 光敏电阻测光电路模块设计
2.3. 1 光敏电阻
光敏电阻采用硅,锗,硫化镉,硒化铅等半导体材料制成,它的工作区在一个很薄的光敏层上,光敏层具有电阻特性,两端由金属电极引出。无光照时,光敏电阻的阻值很大,当光线照到光敏层上,半导体材料中的载流子将迅速增加,阻值下降,光线越强,阻值越低。光敏电阻通常做成片状结构,以便吸收更多光能。光敏电阻具有灵敏度高,测光范围广的优点。光敏电阻属于有源器件,工作时必须加电源。
2.3.2 光敏电阻测光电路
光敏电阻测光电路工作原理:当光线发生变化时,由于光敏电阻内部载流子发生变化,所以流过光敏电阻的电流发生变化,进而R6两端的分压产生变化,该模拟电压信号经过ADC0832模数转换器采集后便可得到相应的数字信号,再经过单片机处理后,在LCD液晶模块上显示光的强弱百分比。光敏电阻测光电路接线图如图3所示。
2.4 电源接口电路模块设计
本设计采用3节1.5 V电池串联供电,电池盒和自锁开关串联可以方便电路的通断。电源接口电路接线图如图4所示。
2.5 按键电路模块设计
本设计用按键设置学习时间、光线强弱界限以及报警距离。按键电路接线图如图5所示。其中S4为设置键,S3为开始学习键和设定值的加键,S2为时间清零键和设定值的减键。当某键按下时,低电平有效。
2.6 超声波测距模块设计
2.6.1 超声波简介
超声波是高于20 kHz的机械波,它在不同的介质中传播速度不同,在通过两种不同介质时,在介质表面会发生反射、折射现象,超声波在传播过程中有一定的衰减。超声波在空气中衰减较快,频率越高,衰减越快,故在空气中传播时采用频率较低的超声波40 kHz。
2.6.2 超声波测距原理
本设计利用超声波遇到障碍物发生反射的特性,采用往返时间检测的方法进行测距,超声波测距原理图如图6所示。
测距时,超声波发射器向某一方向发射超声波,超声波在空气中传播遇到障碍物就立即反射回来,计算出超声波在空气中传播的往返时间t,超声波在空气中传播的速度为:340 m/s。利用如下公式(1)便可知超声波探头距障碍物的距离S。
S=vt/2 (1)
2.6.3 HC—SRO4超声波测距模块
本设计采用HC—SRO4超声波测距模块测量人的脸部离书籍的距离。该模块测距范围为2~400 cm,测距精度高达3 mm;模块由超声波发射器,超声波接收器,控制电路组成,其中发射器发射超声波信号用来作为距离的采样信号,接收器接收所发射的信号。
HC—SRO4超声波测距模块采用I/O口TIRG触发测距,给TIRG最少10 s的高电平,这时模块自动发送8个40 kHz的方波,自动检测是否有信号返回,如果有信号返回,则通过I/O口ECHO输出一个高电平,高电平持续的时间便是超声波从发射到返回的时间,测试距离=(高电平时间*340 m/s)/2。HC—SRO4超声波测距模块的引脚图如图7所示。其中VCC接电源,GND接地,TIRG为触发控制信号输入端接P3.3,ECHO为回响信号输出端接P3.2。
3 软件设计
本设计使用的编程语言为C语言,根据系统要实现的功能,先写出主程序,再利用硬件电路功能及各芯片、各模块的工作时序写出子程序,最后在主程序中进行调用,这种方法简单,主程序语句少,且易于软件设计和查错,还能很好的利用硬件电路,分模块进行调试。
3. 1 主程序流程图
系统主程序流程图如图8所示。
3.2 部分子程序流程图
T0用于测超声波的往返时间,工作于工作方式1,对单片机的机器周期进行计数。定时器的定时时间与系统的时钟频率有关,由于一个机器周期等于12个时钟周期,晶振为12 MHz,则计数周期为:T=12x1/(12x106)=1μs。当超声波ECHO端为高电平时开始计时。超声波测距子程序流程图如图9所示。
学习时间由定时器T1定时,其工作于工作方式1,初值为TH1=0X3C;TL1=0XB0;50 ms中断一次,value加1,当value值加到20时,即为1 s,秒钟加1;当秒加到60时,分钟加1;当分加到60时,时加1;当时加到24时,从新开始。报警子程序流程图如图10所示。
4 系统调试
软件测试:在Keil uvision4中编写程序,进行调试,修改语法错误。
硬件测试:焊接电路之前,先用万用表测得各元器件的好坏,分清极性电容蜂鸣器、发光二极管的正负以及PNP型三极管的三个级。在焊接电路板时,从单片机最小系统开始,分模块,逐个进行焊接并随时用万用表的“二极管”挡测试电路是否导通。焊接完成后,利用STC_ISP _V479下载软件将编好程序烧进单片机芯片中,并进行功能检测。
5 结论
经过软硬件的设计与调试,系统达到了设计要求,当学生开始学习时;若光线低于设定的弱光或光线高于设定的强光时,报警电路产生声光报警,提醒学生注意学习环境;若超声波测到的距离小于30 cm或设定值时,报警电路产生声光报警,提醒学生调节眼睛到书本的距离。当学习时间到达设定值时,产生10次报警,每次3下,提醒学生注意休息。由于超声波在空气中的传播速度与温度有关,本设计没有考虑温度对超声波传播速度的影响,测量距离还有一定的误差,但误差很小,还可通过温度传感器DS18B20进一步完善,使其测量更加精确。