APP下载

基于STC89C52单片机的视力保护器设计

2015-03-27北京林业大学理学院王彬媛王振中刘炳言李昱钊

电子世界 2015年19期
关键词:管脚高电平测距

北京林业大学理学院 李 骁 王彬媛 王振中 刘炳言 李昱钊 张 黔

引言

近视是一种典型的亚健康状态,它已对青少年的视力健康构成了极大的危害。如何有效地防止青少年近视,已成为国内外的热门话题。[1]设计一款可以自动检测学习环境、提醒学生坐姿和时间的视力保护器从而纠正学生的不良坐姿和生活习惯的设备对中小学学生来说很有必要。[2]通过对需求及可行性分析,本设计以STC89C52型单片机作为电路核心,具有以下功能:当使用者与书本的距离小于设定值,或学习环境光强过强过弱,以及学习时间达到设定时间,电路自动发出声光报警,提醒使用者注意;使用者与桌面的距离、光线强度、学习时间可根据用户要求设定。

1 总体设计

设计包括显示,超声波测距,光强检测,计时,报警,按键以及电源模块,实物图如图1.1所示。

2 硬件设计

2.1 显示模块

设计使用LCD1602显示模块。管脚图如图1.2所示。在程序中定义 LCD1602管脚,包括RS,R/W,E。定义中主要注明LCD管脚分别对应单片机的哪些I/O口[3]。然后定义数据读、写的子程序,并对LCD进行清屏初始化处理。最后将各电路与单片机相连,当各个物理量传给单片机时,由单片机控制显示器显示物理量。

图1.1 视力保护器结构图

图1.2 LCD1602管脚图

2.2 测距模块

设计采用HR-SC04模块进行超声波测距。超声波测距的原理(如图3所示)是:超声波的传输速度已知,设为v,在测量过程中超声波发射,遇到障碍物时返回,所用时间为t,则距离s=v*t/2。由此即可测得使用者与桌面距离。

从时序图可以知道超声波模块的工作方式。如图1.4所示,先由单片机向模块发送一个10us的脉冲信号,当模块收到信号,便发送8个40KHZ的周期电平并检测回波。检测到回波时,模块向单片机发送一段脉冲,其脉冲宽度与发射返回时间成正比,所以只需对脉冲宽度进行计时,即可求出所测距离。

图1.3 超声波测距原理图

图1.4 超声波测距时序图

2.3 光强检测模块

电路图如图1.5所示。设计采用光敏电阻作为光信号采集器件,把不易测量的光照强度转化为容易测量的电阻值。把光敏电阻串联在直流电路中即可把不同的电阻值转化为不同的电压值,于是就把对光照信号的处理转化为对电压信号来处理[4]。通过ADC0832模数转换器输出8位的二进制数据,将模拟信号转化为数字信号供单片机处理,此时8位数据代表是光敏电阻当前的阻值,由ADC0832的芯片资料,以及光敏电阻的特性曲线,即可测量当前环境下的光强强弱。

图1.5 光强检测电路

2.4 计时模块

此模块主要使用软件编程。STC89c52单片机内有两个可编程的定时器/计数器,具有两种工作模式(计数器模式和定时器模式)及4 种工作方式(方式0,方式1,方式2,方式3)。其控制字均在相应的特殊功能寄存器中,通过对它的特殊功能寄存器的编制,可以方便的选择适当的工作模式和工作方式[5]。定时器/计数器的输入脉冲和机器周期一样,为时钟频率的1/12[6]。设计中定时为50分钟,我们便以此为例进行计算。其计时初值可计算如下:50*60=3000s=30000*100ms。将单片机的两个定时器T0、T1进行分工,T0用来定时,时间为100ms,T1用来计数,次数为30000次。则将T0置为工作方式1,其初值为2^16-100ms/2us=15536=C3B0H,T1置为工作方式11,初值为65536-30000=35536=8AD0H。

当T0计时100ms后,产生溢出中断,在中断程序中进行设置,使T1计数一次,T0自动重装初始值,再次进入100ms定时。当T1进行30000次计数后,时间便达到50分钟,完成了一次50分钟的定时。

2.5 报警模块

报警电路如图1.6所示。将蜂鸣器与发光二极管并联,使其同时进行报警。蜂鸣器和发光二极管的正极接到三极管的集电极,负极接地,三极管的基级经过限流电阻R1后由单片机的引脚控制,当单片机的引脚输出高电平时,三极管Q1截止,报警电路没有形成回路,发光二极管反向截止,蜂鸣器不发声,二极管不发光;当单片机引脚输出低电平时,三极管导通,这样蜂鸣器的电流形成回路发出声音,发光二极管正向导通发光。因此,可以通过程序控制引脚的电平高低来控制报警电路是否工作。

图1.6 报警电路图

图1.7 按键电路

2.6 按键模块

由于所需的按键数量较少,设计选用了编程上较为简单的独立式键盘接法。将按键(如图1.7所示)的一端接地,另一端与单片机的某一I/O口相连。在程序中将I/O口置为高电平,按键没有按下时,I/O口保持高电平。当按键按下时,I/O口接地,此时I/O口被强制置为低电平,当按键松开后,I/O口又恢复到高电平。只要在程序中检测该I/O口的状态,即可知道按键是否被按下。在程序中加入判断语句,使得不同的按键被按下时,执行不同的语句,起到不同的功能,由此达到设置报警范围的目的。

2.7 电源电路

图1.8所示,采用3节1.5V干电池串联作为设计供电。在实际测试中,电源电路表现良好,能稳定地为各模块供电,并且便于更换电池。

图1.8 电源电路

3 软件设计

软件设计部分使用了C语言编程,先规划主程序的流程,再在其中加入子程序,与硬件模块一一对应,易于调试与检测。

图1.9 主程序流程图

图2.0 测距子程序流程图

4 结论

本设计采用模块化的设计方法,较好地达到了超声波测距报警、光线强度报警及定时报警功能,具有以下优点:(1)系统简单稳定,使用方便;(2)单片机具有的I/O口扩展功能,便于后期加上其他的模块,增加更多功能;(3)显示清晰,并且显示的是即时数据;(4)可以根据具体使用环境改变报警值的范围;(5)使用模块化设计,C语言编程,可移植性强;(6)电路结构简单,成本低廉,不易发生故障,且损坏时易修复。

同时,该设计也存在一些不足:(1)距离与光强的误差还有进一步改进的空间;(2)只考虑了学习时的视力保护,对于其他场合的使用考虑较少;(3)使用的测距与测光模块会受到环境温度的影响,后期需要考虑加上温度传感器,进一步减小误差。

[1]王晓悦,姜永东.264 名青少年学生视觉健康调查及分析[J].四川医学.2011.(7).1136-1137.

[2]张标.视力保护器[J].发明与创新,2012.9.11.21-26.

[3]赵亮.液晶显示模块LCD1602应用[J].电子制作,2007.

[4]罗均,谢少荣.微型传感器及其应用[M].北京:化学工业出版社,2005.136-138.

[5]李维民,张成胜.单片机定时/计数器工作频率的研究[J].牡丹江师范学院学报(自然科学版),2013.2.21-22.

[6]刘斌,宋荣勤.通用单片机定时系统,1991.1.

猜你喜欢

管脚高电平测距
一种基于FPGA的PWM防错输出控制电路
类星体的精准测距
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
一种异步FIFO的Read/Write Data Flow Through功能测试方法∗
浅谈超声波测距
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析
基于图像处理的异型电子元器件管脚偏移误差检测方法研究
CMOS数字IC管脚电容的估算与测量
基于PSOC超声测距系统设计