基于单片机的视力保护器

摘 要

目前 越来越多青少年近视,视力保护变成全世界关注的问题。本文的设计以STC89C52为核心主器
件,超声波测量距离,显示器LCD1602显示时间、距离,光敏电阻测量光照强度,加上语音播报提醒休息,解决眼睛
疲累,坐姿不正确等问题,为保护视力提高有效依据和信息,具有较强意义和价值。

第一章 绪论

1.1 选题背景
  近年来,经济的腾飞和迅猛发展给人们的生活带来了与过去天差地别的变化,几乎人手一部手机,不出门便知
天下事,所有消息都是来源于手机、电脑,电视等电子设备,这些电子设备带来了生活上的极大便利。然而,这同
时也带来了极大的弊端:近视群体的大大增加。其中我国儿童少年近视眼发生率较高的主要因素之一,便是儿童低
龄触网。
  当下,中国有大约20%的少年儿童人均每日看电视超过四小时,超过六成少年儿童从6到10岁之间便开始接触互
联网,而短视软件的用眼时间长度占据了少年儿童通过网络娱乐生活的总时间中超过20%,中国儿童少年的眼部发展
正存在着关键和波动时期。调查统计表明,2021年,全中国六周岁孩子的近视眼数达到了14.5%,全国中小学生的近
视眼数也有了36%,但全国高三在校生中的高度近视眼(近视度数高于600度)在全国近视眼的总数量中占比已超过
了21.9%。全中国儿童青少年近视眼的总发生率也已超过了50%,而未来在中国整个总人口中至少还有约9.6亿的近视
眼人数。如无有效控制,中国未来将至少有11亿多近视眼人口,而上述现状均与中国近视眼的低龄化发展趋势分不
开。但近视眼的低龄化绝非“多戴一副眼镜”如此单纯,因为近视眼的产生和危害都是不完全可逆的,而近视眼低
龄化又会造成病程拉长,因此许多病人势必会向高度的近视眼发展,从而形成各种眼底疾病,并导致巨大的永久性视觉功能损伤,预防近视眼的工作已经刻不容缓。预防近视,从小抓起。青少年近视的原因主要有以下几点:1.联
系长时间近距离阅读、写作、玩电脑、玩手机,大脑都一直处在协调的紧绷之中。2.户外运动少,如果不能保证1.5
小时眺望远方,眼睛就无法获得放松与休息。3.不恰当的阅读坐姿和握笔姿势,会使得双眼受到姿势、视野、距离
的三重压力,引起近视,使得近视度数进一步增加。
  因此,为解决以上导致近视问题,研究一款能随时提醒读书者端正坐姿,适当放眼休息的设计有了其重要意
义,也为青少年身心健康发展提供了价值途径。
1.2 设计要求
  本次设计主要是以硬件电路和程序调试相结合达到设计要求。以STC89C52为主要控制元器件,加上能实现功能
的超声波测距模块,语音定时播报模块,光线检测模块,以实达到矫正身姿,适度用眼的目的。元器件要经过适当
挑选和比较,选择最合适的性价比,从而达到目的要求。其次是在计算机上实现硬件电路的功能调试和仿真,对于
电阻、电容等常用元器件要先在电脑上进行参数调整,设计完整体电路后才可继续线下的焊接和测试,实现设计所
需要的基本功能和要求。
本次设计主要具有以下功能和特点:
1.当检测到用户身体与写字台间距小于设定值时,将产生语音提醒,建议用户适时改变姿势;
2.当灯光亮度降到下限度或超过上限度后,会声音提示控制光强;
3.在学习时间到达设定值后,会建议用户休息片刻;
4.使用者通过按键开始学习、暂停学习和设置时间。

第二章 系统总体方案选择

2.1 总体方案
  此次产品设计采用了STC89C52单片式微型电脑用作视力保护器的核心监控主要元件,通过超音波测量脸面距离
和书桌间距,感光电阻测量光照强度,LCD1602液晶屏幕表示时刻和距离,语音播报提醒休息。时间、距离和光线设
定值皆可调整。控制系统的硬件部分电路主要构成模块有灯光检测模组、超声波测距模块、按钮模组、语言播报模
组、显示器模组等。系统硬件总体的设计工作框图,如图2-1所表示。
图2-1系统总体框图在这里插入图片描述

2.2 系统硬件设计方案
2.2.1 主控制模块
  方案一:采用主要操作库函数编程的STM32单片机。单片机都是哈弗结构的,但数据处理起来更快,外设功能丰
富大,由于寄存器较多,其售价也比普遍的更贵,但结构复杂,其功能更强大,但同时调试的困难度也加大。其固
件库很多使用了结构体与指针变量,因此如果在研发过程中不太注意结构体和指针的实际应用,那么将无法掌握其
固件库的使用逻辑。
  方案二:采用直接操作寄存器的51单片机。单片机都是冯诺依曼结构的,入门比较简单,相对来说较好学习,
但接口小,容易控制比较方便。其中,STC89C52是一款低功率、效率高的CMOS8位微控制器,并具备8K在操作系统内部的可编程Flash存储。在单片机获得更灵巧的8个CPU以及在系统可编程Flash上,让STC89C52为多种嵌入式控制应
用操作系统带来高灵巧、超高效的方案。同时可以满足本次研究的检测光信号,分析超声波传感器信号需求,最重
要的是其价格较为低廉。
因此,通过以上两种方案的分析,我们选择较为适用的方案二。
2.2.2 光照检测电路
  方法一:选择光照感应器的BH1750FVI。BH1750FVI传感器,是一个用二线型串行总线连接的数字式光强感应器
积体电路。该集成电路能够根据所获取的光强信息来改变液晶和键盘背景灯的对比度。同时由于它的高分辨率,能
够检测很大程度的光强改变。拥有着类似于人眼灵敏度的高光谱敏感度特性,并由于减小电源功率,实现了小电流
化,光源可靠性较弱,最小误差变动为±20%,还有着受紫外线干扰极小的优点。但由于较为熟悉光敏电阻,所以放
弃此方案。
  方案二:选用光敏电阻。光敏电阻对光照非常敏感,光线愈强,电阻系数也越低。由于光照强度的增加,电阻
值也迅速减少。光敏电阻与光电效应有关,没有极性,即可以使用直流电压,也可以使用交流电压。其价格低廉,
方便焊接,较为实用。
因此,尽管BH1750FVI更为适合,但是由于光敏电阻价格合适,同时也较为熟悉,更适合本次方案。所以就选择方案
二。
2.2.3 超声波测距模块
  方案一:使用红外感应器。红外线测距传感器是一个传感设备,是用红外作为介质的检测系统,测量范围很
广,但反应时间极短。其工作原理是发光管辐射红外线,而光敏接受管能够收到前方的物品反照光,能够据此确定
前方是不是有阻碍物,并且通过发射光的大小也能够确定前方物品的距离。红外测距精度的好处是方便,易制,安
全,但弊端是精确度较低,抗干扰的能力也很差。
  方案二:采用超声波测距。超声波通过被测物,所用的时间以及目前的声速结合进行运算,得到实际距离数
值,并可以根据确定的限值,实现相应的反应。其好处是检测距离远、比较抗脏污,就算感应器上有灰尘,只要没
有堵死也能够检测,适合在比较恶劣的环境条件中应用,但不足之处是准确度较低,有盲区。
  通过两种方案比较,由于红外线传感器的抗干扰性太差,测量距离如果拿到室外有阳光的情况下就会被干扰,
超声波虽然精度较低,但完成设计需求绰绰有余,因此,选择方案二。
2.2.4 报警模块
方案一:采用蜂鸣器和三个颜色不同的LED灯提示距离、时间和光线。蜂鸣器和LED灯体积小,易焊接,方便使用。
但考虑到蜂鸣器警报响起时不知道自己到底是哪里出了问题还要看一遍灯,一时分不清楚,所以其实用性不强,放
弃此方案。
  方案二:采用语音警报。语音警报方便简洁,出现坐姿哪里不规范等问题都可以直接播报出来。其缺点是价格
较贵,程序较难编程。
综合考虑,我们选择了实用与方便的方案二,虽然较难编程,但是会加油攻克难关的。
2.2.5 显示模块
  方案一:采用数码管。数码管价格低,在白天等强光条件下显示会比液晶屏更加清晰,但是厚大笨重,占用产
品结构尺寸大,显示内容是16段的中间米字型,显示内容单一。
  方案二:使用液晶显示屏。LCD1602显示屏价格比较贵,不过因为耗电量较少,寿命长,而且不会有因散光或渗
漏导致所呈现的图形有重影,并且屏幕显示内容比较丰富。所以能够实现同时设计并显示三个数据的要求。
因此,通过比较,尽管数码管的价格较为低廉,我们还是选择了更适合设计需求的方案二。
2.2 系统软件设计方案
  操作系统接通后,对系统执行初始化动作,并系统对键盘执行扫描检查,确认是否有键盘按下,再按下启动键
盘系统启动为工作。利用LCD1602液晶显示的时间、光照亮度和距离的数据。探测到的信息和设定值进行对比,是否
一致,如果不一致进行报警。建议使用者更重视用眼健康。
  汇编语言,是将所有由0、1构成的计算机编程语言用带有单纯含义的英文代号描述,一般用作计算机对硬件的
直接操控。效率更高,但对硬件设备的可操控性却更强,体积小,不便维修,可移植性也很差,需要的编绘知识很
多很复杂,经常被开发者使用。
  而C语言则一般用在计算机的外用功能上。它所编写的程序无法直接被机器所识别,而需要进行转换后才被运
行,因此效能相当低下,硬件的可操控性也相当差,虽然目标代码体积很大。但是易于维护,而且可移植性也相当强,可以把多个相关的机器指令合并为单条命令,同时省去了与具体操作相关而与实际执行工作不相干的具体细
节,比如采用资料堆栈、寄存器等,是一种非常简洁方便的语言,因此编程设计者也就不需要有太多的专业知识。
因此,选择较为简单易懂的C语言能更好的进行编程。

第三章 硬件实现设计

3.1 主控制模块
  STC89C52是一个低功耗,高性能的51内核的CMOS 8位单片机,具有在线编程功能。空闲模式下,CPU暂停操作,
但可使RAM、计时器/计量器、串口、中断等持续运行。掉电维护的方式下,RAM信息被存储,振波器被冻结,机器人
的一切操作中止,直至下一次暂停或将硬件恢复完毕。此最小系统包含了时钟电路和复位电路。其最小系统包括时
钟电路和复位电路。最小系统借助晶振与内部震荡电路一起工作,为单片机工作提供时钟,借助复位电路使受到外
界条件而停止运行或者陷入混乱状态的程序初始化。最小系统如下图3-1所示。
3.2 光照检测模块
  光测量模块主要是由光敏电阻、2K色环电阻,以及ADC0832晶片所制成。由于光敏电阻在暗环境里,电阻值很
高,在接受照明时,其电阻率温度系数减少,因此导致了光敏电阻阻值的降低。因此照明条件愈强,电阻系数就愈
低。而ADC0832则是由美国国家半导体有限公司设计制造的一个八位数分辨率、双通道A/D变换晶片。由于体积较
小,可靠性强,性能价格比高等,其产品目前已具有很大的市场普及率。ADC0832操作顺序主要包括2个步骤:第一
阶段为开始和通道的配置,由CPU发出命令,由ADC0832的DI端进入;第二步为AD变换数据的传输,由ADC0832从DO端
口输出,由CPU接受。电压信息由引脚数CHO传递给ADC0832芯片,然后ADC0832把输入的电流信息转变成数字信号,
这时由STC89C52的引脚向ADC0832芯片上的输入输出端口CLK输入脉冲信号,当时钟信息被芯片接受后,数字信息再
由端口D0或D1向单片机输出。最后,AD转换模块接受到了不同光线的电压值,找到设定的光线检测值。如图3-2为光
线检测系统电路图。在这里插入图片描述

图3-2 光线检测电路图
3.3 超声波测距模块
  HC-SR04超声波测距模块,可进行2cm-400cm的非接触式间距感测试能力,测试间距精确度可以高到3mm;模块涵
盖了超声波发射器、接收器和控制电路。
其基本工作原理:
(1)使用IO口TRIG触发测距,给至少10us的高电平信呈。
  (2)当Trig将低电平通过I0口拉高后,经过10us又将它拉低,模块自己发出了8个40khz的方波,并自我检验是否
有消息返回,此时Echo拉高至高电平,即超声波检测技术发送出去;
  (3)有信号返回,由IO接口ECHO提供一个高电平,高电平维持的时限也正是超声波信号从发出到回来的时限。其
中四个接口端为VCC供5V电源,GND为接地线,TRIG触发控制声音输入,ECHO回响信号输出。当超声波模块的接触脚
位有10us以上的高电位,就可以发出超声波传感器,发出的超声波测量信息以后,在接受到传回的超声波测量信息
以前,“应答”脚位出现高电位。由此,程序可从“应答”脚位的高电位脉冲持续时间,亦即换算出被测物的总长
度。其方程如下:测试长度=(高电平时间*声速(340M/S))/2;其电路原理图如3-3所示。
在这里插入图片描述

图3-3超声波测距原理图
3.4 按键模块
  按键电路由三个按键组成,包括开始学习键,暂停学习键和设置按键。按下设置按键可以将显示器界面的时
间、距离和光照值调大或者调小,达到符合国家教委的标准。当按键按下时,单片机插针变为低电平有效工作;当
按钮放松时,单片机的插针变成低电平,电路断开,没有电流通。通过设计,就能够确定按钮能否被正确按下了。
3.5 报警模块电路
  报警模块所使用的是WT588D语言,而WT588D语言晶片则是一种功用很强的,可反复擦除烧写的语言单片机芯片。
繁琐的外设控制电路,可由高集成化的单片机技术WT588D所代替。配合WT588D的VoiceChip上位机操作软件,可以随
时改变WT588D语音单片机电芯的任意一个功能状态,将该软件加载在SPI-Flash上同时进行。其简单易懂的运行模
式,不但提高了语言运用能力,而且极大限度地缩短了语言编辑的时限。而且由于完全是在线下载,所以即使是在
WT588D通电的状态下,也能够通过下载器给所关联的SPI-Flash设备下发信号,把WT588D语音的电路恢复一下,就可
以改变从刚下载时的操作方式。功能多音色高使用范围广泛功能稳定,是WT588D系列语音单片机的主要特点,克服
了以往各种语言单片机应用领域范围狭窄的弊端,提供支持6K~22KHz取样率的声音负载,MP3操控模型、键盘遥控模
型、键盘组合功能模块、并口管理模板、一线串口控制模块、三线串口控制模块和三线串口管理控制端口等扩展的
输入输出模组,让使用人士可以把电子产品放置到几乎能够想象得到的地点。
  本次使用的方案为三线串口的模式。三线串口遥控状态下,可以调节语音播放、暂停、循环播放和声音控制,
或者直接产生0219地址位的任意语音,发码速率约为600us2000us。PO1为DATA,PO2为CS,PO3为CLK。由MCU发送
信息对WT588D进行控制。P17也是BUSY信号输入输出端子,能够在上位机软件端设定的放映状况中直接提供为高电平
或低电平。在高电平时,电流类似于VDD的电源压力。用于连接发光二极管,作放音状况的指示以及忙信号判断。
VDD=DC2.85.5V,而VCC=DC2.83.6V。当使用DC3.3V电源时,可通过短接VDD和VCC,使用DC5V电源时,在VDD端垂直
接入5V,而VCC端则必须在VDD一端串入2个二极管,以提高运行电流。由于VDD1是MCU的工作电压。若VDD1与VDD之间
出现压差阻力,则必须在MCU与WT588D-20SS的连接线DATA、CS、CLK线上串入电流。PWM的输入输出方法,直接扬声
器。此输入输出方法下,PWM+、PWM-都无法通过短接地或接电阻电容到地。
  用上位机软件在对SPI-FLASH内存的25L3236F设备烧写语言编程时,可以选用三线串口控制模块。I/0口PO1被界
定为DATA数据口,PO2为CS片选口,PO3为CLK时钟口,单片机控制器也可使用三个控制口对WT588D语音模块实现管
理。在三线串口控制模块下,对PO0、PO4、PO5、PO6、PO7、P10、Pll、P12等都无效。PI7端口则是BUSY忙信号输入
输出端口,可以设定为广播状态LED亮或者广播状态LED灭。SPI-FLASH存储器25L3236F的电压范围为要稳定在2.8
V~3.5V,而VDD-SIM是通过WT588D语音芯片的串口供电管理输入输出端口,把25L3236F的VCC接通在此端口,就可以
自动平衡在WT588D和25L3236F之间的串行接口电流。而PM输出端口则禁止接电容到地或直接接地,FWM+/DAC和PMA端
谨防短路。
3.6 显示电路
  LCD1602液晶显示又叫1602字符式液晶显示,可以同时显示32个字符。显示器的基本原理是利用液晶显示的物理
特点,再利用电压对其指示范围加以控制,就能够指示出数字、字母、图形以及少量自定义字符。共有16个插针,
有八个数据总线D0-D7,运行供电为5V,同时具有文字对比度调整功能和背光。程序设计时使用的重要管脚,依次
是:RS(数据信息指令选项端),R/W(读取选项端),E(使能信号);程序便首先包围着这三种管脚展开按时间
完成初始化,然后写指令,再写数据。LCD1602表示单个文字就比较复杂,但是对于对内带文字发生器的控件来讲,
直接表示文字就比较简单了,我们应该直接将控件工作在文字方面,通过按照从LCD上起始出现的文字行列号和每个
行的系列号找出与显示RAM相应的文字位置,并设定光标,然后在此送上该文字相应的代号就可。其显示电路图如3-
7所示。
图3-7 LCD1602显示器电路图
在这里插入图片描述

第四章软件设计思路

系统软件设计是将程序编程与逻辑运算相结合在Keil uVision4软件上实现出来,达到设计目的。Keil
uVision4软件是一种广泛应用于PLC编程中的应用软件开发工具,其具备了强大的仿真仪、调试程序、宏汇编程序、
单板设计工具和满足复杂工程要求的Keil编译器等,在嵌入式软件开发的道路上具有更深层次的开发进展,并有助于
在嵌入式开发中所进行的复杂系统配置。在软件上的程序编写是任务中最重要的一部分,也是设计的关键。
4.1 主程序设计
  主流程设计时首先确定并设计子进程,然后按照硬件的实现功能一一调试子程序,最后再将各个子程序调试到
主程序中,这样方便后期的程序调试,哪个功能出现问题时直接找到对应子程序,使功能调试方便快捷、一目了
然。系统设计总体框图如图4-1所示。
图4-1 系统设计总体框图
在这里插入图片描述

4.2 光照检测子程序
  程序初始化之后,ADC0832模数转换将随着光敏电阻光线一直改变的阻值产生的电压信号转换为数字信号输出给
单片机,从而检测光强,再与设置的光线值进行比较,光线过亮警报电路就会发出警报,提醒使用者注意光线亮
暗,及时调整光线。光照检测子程序流程图如图4-2所示。在这里插入图片描述

图4-2 光照检测流程图
4.3 超声波测距子程序
  程序启动后,系统对的超声波测距子流程开始进行初始化,通过单片机的接口P3.2向超声波输送40kHz的正方形
脉冲信号,此时开定时器完成了时间计时。如果有信号返回时,就给外部中断输入低电平,打开外部中断,关闭定
时器0计数,读出定时器0时间,最后进行距离计算。如果测量距离大于设定值就返回程序运行,反之,就触发语音
报警。如图4-3所示为其程序流程图。在这里插入图片描述

图4-3 超声波测距子程序流程图
4.4 语音模块子程序
程序初始化以后,按下开始学习按键,程序运行,光线强度达不到标准、距离小于设定是或者时间到都会发出语音
警报提醒使用者,这些警报可以同时进行。语音警报子程序流程图如图4-4所示。在这里插入图片描述

图4-4 语音警报子程序流程图
4.5 定时中断子程序
定时子程序流程图如图4-5所示。
在这里插入图片描述

图4-5 定时子程序流程图

第五章 总体仿真与功能测试

5.1系统仿真
  控制系统的模拟用到了Proteus软件系统。Proteus是由加拿大Labcenter有限公司研发的一款功用巨大的电子设
计自动化应用软件,实现了智能工作的原理图设计控制系统、SPICE仿真电路、数位集成电路和MCU元件的混合仿真
控制系统,以及PCB产品设计控制系统功能等。它不但能够模拟传统的电路设计试验、模拟电气电子设备试验、数位
集成电路试验等,还同时能够模拟嵌入式系统的产品设计试验,它最大的特点就是能够进行嵌入式系统(单片机应
用系统、ARM应用系统)的产品设计模拟试验,这也是其它任何模拟软件控制系统都无法及的能力。在翻译器技术领
域方面,它可以实现如Keil和MPLAB等的各种翻译器。在Proteus中,真实做到了完全在电脑中从原理图工程设计、
电路系统解析、单片机程序设计、系统仿真测试到实现PCB设计的整个流程,也真实做到了从构思到生产的完整产品
设计过程
5.1系统功能测试
  连接好硬件以后,把单片机和电脑之间通过USB口相连接,将Keil软件中的程序编译后下载到单片机上。加载完
毕后,再插上电源,打开按键开关。LCD1602液晶液晶屏幕可以显示用户脸部到桌面距离,学习时间和光照强度。
  显示屏显示使用时间、距离和光照强度后,如果想改变系统设定值,可按下设置按键可对其进行修改,调整成
自己需要的数值,按键设置参数如图5-3所示。
  当系统通电后,按下按键开关,并开始学习。如果出现距离小于设定值,光线太亮或者太暗,时间到达等问题
就会发出语音警报,提醒使用者注意休息。当按下暂停学习按键,电路将不再工作,即使距离光线不符合所设置参
数,电路都不会发出警报。按下暂停按键如图5-4所示。
经过程序调试和硬件设计,系统工作达到预期效果。

第6章 总结

本文基于STC89C52单片机设计视力保护器的功能,完成了电路的硬件设计,程序的设计,以及电路在Proteus的
仿真。经过焊接与测试,各个模块能完成各自工作,满足设计的基本需求,对保护视力上有一定作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值