《基于单片机的视力保护器设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的视力保护器设计说明.doc(20页珍藏版)》请在课桌文档上搜索。
1、Abstract5基于单片机的视力保护与身姿乔正器设计6第一章、产品开发背景61.1引言61.2研究背景与意义6第二章 、产品的功能72.2、具体设计7第三章 、硬件设计83.1、主电路的组成83.2、单片机最小系统电路83.3、超声波检测电路83.4、光线检测电路93.5、显示电路103.6、报警电路103.7、其他辅助电路11第四章、软件设计124.1、程序框图12第五章 、产品的制作、组装、调试135.1、元器件的购置135.2、产品制作步骤135.3、电路的调试135.4、程序的烧录13第六章、结 论14参考文献15附录1620 / 20毕业设计真实性承诺与指导教师声明学生毕业设计真实
2、性承诺本人重声明:所提交的毕业设计是本人在指导教师的指导下,独立进展研究工作所取得的成果,容真实可靠,不存在抄袭、造假等学术不端行为。除文中已经注明引用的容外,本设计不含其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。如被发现设计中存在抄袭、造假等学术不端行为,本人愿承当相应的法律责任和一切后果。学生签名:日 期:指导教师关于学生毕业设计真实性审核的声明本人重声明:已经对学生毕业设计所涉与的容进展严格审核,确定其成果均由学生在本人指导下取得,对他人论文与成果的引用已经明确注明,不存在抄袭等学术不端行为。指导教师签名: 日 期:注:此声明
3、由指导教师和学生本人亲笔签名。基于单片机的视力保护与身姿乔正器设计 摘 要近年来,我国青少年近视率大大增加。对此本文提出了一种以单片机为核心的视力保护与身姿乔正器设计。 本文利用大学三年课堂中所学习的的一些理论知识和实训课中所学到的实践能力,以STC89C52单片机为核心元器件,围绕它进展硬件电路设计和软件程序设计。其中硬件电路有,整体电路的核心单片机最小系统电路、用来检测书写距离的超声波检测电路、用来检测学习时光线强弱的光线检测电路、用来作为显示设备的LCD1602液晶显示电路、以与用来作为提醒报警的蜂鸣器LED提醒电路。软件程序方面,本设计主要利用单片机C语言作为软件语言,其中比拟主要的有
4、超声波模块驱动程序、定时报警程序、LCD1602液晶屏驱动程序等。本设计以我们大学三年所学的单片机原理与接口技术、C语言程序设计、数字电子技术、模拟电子技术等课堂里的知识和我自学的传感器等知识为主要理论依据,具体就多功能视力保护器的理论与硬件设计进展了研究。关键词:单片机原理与接口技术;传感器技术;C语言程序设计;数字电子技术AbstractIn recent years, our country juvenile myopia rate is greatly increased.This paper puts forward a kind of with the single chip pr
5、ocessor as the core of multifunctional protector design vision.In this paper, using the university three years of learning in the classroom of some theoretical knowledge and practical training lessons learned in the practical ability, STC89C52 single-chip microcomputer as the core components, revolv
6、e around its hardware circuit design and software programming.There hardware circuit, and the overall circuit at the core of the single chip microcomputer minimum system circuit, used to detect writing distance ultrasonic detection circuit, used to detect when studying the light intensity of the lig
7、ht detection circuit, used as a display device of the LCD1602 LCD display circuit, and used as a reminder alarm buzzer LED to remind circuit.Software program, this design mainly use singlechip C language as software language, which is leading with ultrasonic module driver, timing alarm procedures, L
8、CD1602 LCD driver, etc.This design we are studying in the university three years with single-chip microcomputer principle and interface technology, C language programming, digital electronic technology, analog electronic technology, such as the knowledge in the classroom and I taught myself sensors
9、such as knowledge as the main theoretical basis, specific theory and hardware design of the multifunctional vision protector were studied.Key words: single chip microcomputer principle and interface technology;Sensor technology ;C language program design;Digital electronic technology基于单片机的视力保护与身姿乔正器
10、设计第一章、产品开发背景1.1引言眼睛是心灵的窗户,一个良好的视力是每一个人所希望拥有的,但是根据我国最新的统计显示,我国青少年近视率居世界之首,在青少年近视群体中,高中生的近视检出率最高,达72.8%。小学生、初中生近视率分别为39.05%和64.3%,分别比十年前提高25.7%和26.86%。而在最近回收的网络问卷“你觉得造成你眼睛近视的主要原因是什么选项中,选择“写字看书姿势不正确的占了最大的比列52.4%。由此可以看出,中国学生视力低下的状况十分严重,而写字看书姿势不正确和看书写作业的时间太长是导致中小学生近视的主要原因。1.2研究背景与意义大局部中小学生,由于学生缺乏自觉意识,家长和
11、教师又不能时时守在身边加以提醒,不良的阅读写字习惯一旦养成就很难改掉,日复一日的恶性循环使许多学生过早的架上眼镜,不仅在生活上很不方便,在孩子的心理上也会留下深刻的阴影。同时中小学生时代是孩子身体成长的旺盛时期,坐姿和读写姿势不正确,会影响到孩子骨骼的健康成长,很容易引起脊椎弯曲或侧弯变,造成含胸驼背,不仅影响形象,并且在以后的招飞、参军,以与很多要求形象的工作上面都大大吃亏,对孩子的前途影响甚远。通过对现有产品的调查,市场上的视力坐姿矫正器主要机械平衡式坐姿矫正器,列如电子平衡式防瞌睡报警器、背背佳、利资坐姿乔正器、支架式坐姿矫正器等等。这些产品主要是通过力的作用,将身资强行纠正。因此自身存
12、在着很大的局限性。列如,对身体有很大的负担,会造成呼吸不畅,身体紧绷长时间得不到放松等等。而且还会让人产生厌倦的心理,一旦不使用,读书学习的姿势又会变得原来那样,不能让人养成一个良好的学习习惯。本产品是以人机交互和以人为本的理念,将电子学、物理学、人体工程学相结合的智能调控设备。本产品能够随时提醒读写者,端正坐姿,挺直腰背,养成良好的读写习惯,提高学习效率,有效防止驼背、脊椎弯曲以与近视等身理疾病,有效的保护学生的身心健康。第2章 、产品的功能2.1、预计功能本产品叫做视力保护与身姿乔正器,它主要的功能就是保护使用者的视力和纠正使用者不正确的学习姿势,帮助学生做到国家教委规定:学生在读写时,应
13、在适宜的亮度下,眼离读物一尺,身离书桌一拳。保护青少年的身心健康。2.2、具体设计1当使用者脸部与桌面之间的距离小于30CM时,电路将发出声音提示; 2当读写环境光线照度不足时,电路将发出声音提示; 3当使用时间达到45分钟时,电路自动发出提示,提醒使用者注意休息; 4电路测光报警的灵敏度可调;5电路可靠,做出实物能够实现相应的功能。第3章 、硬件设计3.1、主电路的组成其中硬件电路有,整体电路的核心单片机最小系统电路、用来检测书写距离的超声波检测电路、用来检测学习时光线强弱的光线检测电路、用来作为显示设备的LCD1602液晶显示电路、以与用来作为提醒报警的蜂鸣器LED提醒电路,还有给电路供电
14、的电源电路。3.2、单片机最小系统电路单片机最小系统是整个设计的核心,可称之为大脑,或者心脏,其中又细分为单片机、复位电路、晶振电路。 本产品使用的是STC89C52单片机,这款单片机有4组32个io口,一个8位数据总线接口,一个串口,一个外部中断输入,功能上完全满足本产品的设计要求,并且价格较低,通用性强。复位电路使用的是手动按键复位,由一个按键和一个10uf的电解电容与一个10k的色环电阻并联接到单片机的RST脚上。用来使电路恢复到起始状态。晶振电路,由一个12.000hz的晶体振荡器,两个20pf的瓷片电容组成,与单片机的XTAL1、XTAL2两个引脚连接。用来给单片机提供稳定的时钟信号
15、,使单片机的每一条指令都能够严格按照机器周期来执行。图 1 单片机主控电路3.3、超声波检测电路本产品的超声波检测电路主要由一个是HC-SR04超声波测距模块构成。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度高达3mm;模块包括超声波发射器,承受器与控制电路。模块有四个引脚,VCC接5v电源,GND接地线,Trig口输出触发控制信号接单片机的P3.2脚,Echo口输入回响信号接单片机的P3.3脚。 超声波是一种在弹性介质中的机械振荡,其频率超过20KHz,分横向振荡和纵向振荡两种,超声波可以在气体、液体与固体中传播,其传播速度不同。它有折射和反射现象,且
16、在传播过程中有衰减。波长波的传播速度是用频率乘以波长来表示。电磁波的传播速度是3108m/s,而声波在空气中的传播速度很慢,约为344m/s (20时)。在这种比拟低的传播速度下,波长很短,这就意味着可以获得较高的距离和方向分辨率。正是由于这种较高的分辨率特性,才使我们有可能在进展测量时获得很高的准确度。要探测某个物体是否存在,超声波就能够在该物体上得到反射。由于金属、木材、混凝土、玻璃、橡胶和纸等可以反射近乎100的超声波,因此我们可以很容易地发现这些物体。由于布、棉花、绒毛等可以吸收超声波,因此很难利用超声波探测到它们。同时,由于不规那么反射,通常可能很难探测到凹凸外表以与斜坡外表的物体,
17、这些因素决定了超声波的理想测试环境是在空旷的场所,并且测试物体必须反射超声波。图 2 超声波模块3.4、光线检测电路光线检测电路由光敏电阻,2k色环电阻和JR42AH型AD转换芯片组成。光敏电阻将检测到的光线强弱的模拟量经芯片CH0脚输入芯片,通过AD转换芯片的处理变成数字量,再通过芯片CLK、DO、DI三个引脚将信息传送到单片机P15、P16两个引脚当中。当光线发生变化时,光敏电阻的阻值也就不同,然后分得的电压也不同。经过AD采集后就可以得到各种光照强度下的电压值。从而设定出理想的光线强度报警值。图 3 光线检测与AD转换电路3.5、显示电路LCD1602液晶显示电路,由LCD1602液晶显
18、示屏和一个2k色环电阻组成。能够较好的显示。图 3 液晶显示电路3.6、报警电路报警电路由一个8550三极管,两个2k色环电阻,一个发光二极管,一个蜂鸣器组成。当光线或超声波检测异常时,发出警报。当P13脚发生变化时,报警电路发生反响。图 4 报警电路3.7、其他辅助电路 由一个塔式开关和一个电源接口组成电源电路,由三个独立按键组成控制电路。图 5 其他辅助电路第四章、软件设计4.1、程序框图本设计采用c语言编写。c语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
19、本产品主要程序都是利用C语言编写。主要有:超声波模块驱动程序、LCD1602液晶屏驱动程序、AD转换程序、定时报警程序、按键程序,延时程序等。详细程序见附录。多功能视力保护器主程序超超声波驱动程序测按键程序测定时报警程序测液晶显示程序测AD转换程序第5章 、产品的制作、组装、调试5.1、元器件的购置元器件清单:STC89C52单片机一个,LCD1602液晶显示屏一个,超声波检测模块一个,光敏电阻一个,AD转换芯片一个,蜂鸣器一个,LED灯一个,色环电阻五个,按键四个,开关一个,电源接口一个,晶振一个,瓷片电容两个,电解电容一个。5.2、产品制做步骤5.2.1、测试元器件是否可用买好元器件之后,
20、按各元件的检测方法分别进展检测,将测试不正常的元器件替换,确定组装产品的元件都能够正常使用。5.2.2、元器件的组装与焊接 参考原理图的位置放置各个元器件,先放置、焊接较低的元件,后焊较高的和要求较高的元件。容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。有正负的元器件要判断出方向再进展焊接。5.3、电路的调试将电路组装、焊接好之后,利用万用表测试具体回路是否导通,是否有短路的地方,将异常线路的问题找出来,重新焊接,将问题解决。确定所有电路都已经正常之后,给电路上电,再测量供电是否正常,如有异常再进展修改。5.4、程序的烧录本产品为了程序烧录的方便,专门留了
21、一个下载器接口。首先将程序下载器与产品下载接口连接好,利用STC-isp软件将程序下载到单片机中。然后测试液晶显示,显示正常。说明显示局部无误。然后参加超声波测距程序,调节超声波的灵敏度使达到理想效果。在调试程序时,发现有的指令用的不正确,导致电路功能不能完全实现,另外软件程序中的延时有的过长、有的过短。类似的现象还有很多就不一一列举了。第6章 实物展示图 6 产品正面图 7 产品背面图 8 产品侧面一图 9 产品侧面二第7章 、结 论本次毕业设计硬件上完成了一个STC89C52单片机的视力保护器的设计,并在此平台上用单片机C语言进展软件设计,经过测试,根本满足设计目标,可以完成各项根本功能。
22、本系统开发空间大,使用灵活,便于用户扩展功能。当然,由于时间关系,本次设计的系统也有某些不太完善的地方,有待进一步改善。本文探索并实现了多功能视力保护器设计的完整过程。,该系统具有很高的使用价值,很好地达到了设计的目的;本文创新点:1开展了利用单片机设计视力保护器的思想,增加了单片机在现实生活中的应用。利用光敏电阻电路检测光照,通过超声波传感器辅助帮组学生坐直进而校正其视力,简单方便且不会产生系统稳定性方面的问题。2尽可能发挥系统优势,可以方便向其他功能扩展,也就是利用平台优势可以衍生更多功能。参考文献1 天汉 单片机原理与接口技术电子工业 33-352 唐文彦 传感器机械工业 45-473
23、金锋 金欢阳名传感器与其应用电子科技大学 32-354 吴金戌 庆阳8051单片机实践与应用清华大学 48-495 王东峰 单片机C语言应用100例电子工业 78-806 谭浩强 C语言程序设计清华大学 137-1397 康华光 电子技术根底 高等教育 234-2368 健 实用声光电与无线电遥控电路300例中国电力 23-249 高 静 怎样用万用电表检测电子元器件修订本人民邮电 34-3510 王新贤 通用集成电路速查手册第二版 科学技术 56-5711 王玉凤51单片机应用从零开始清华大学 89-9012 胡汉才单片机原理与系统设计清华大学8-14 13 马忠梅单片机的C语言应用程序设计
24、航空航天大学53-58. 14 康华光电子技术根底数字局部高等教育23-2615 战民液晶屏显示方法的比拟 科技信息70-7116 熊再荣、雷建龙、汉玲液晶与显示257-25917 伍洁、跃、斌Proteus与Keil在单片机开放性实验中的应用100-107.18 全国大学生电子设计竞赛获奖作品选编理工大学出版 34-36超声波程序/*超声波测距程序*/void send_wave()c_send = 1; /10us的高电平触发 delay();c_send = 0; TH0 = 0; /给定时器0清零TL0 = 0;TR0 = 0; /关定时器0定时while(!c_recive); /当
25、c_recive为零时等待while(c_recive) /当c_recive为1计数并等待flag_time0 = TH0 * 256 + TL0;if(flag_time0 40000) /当超声波超过测量围时,显示3个888TR0 = 0;flag_csb_juli = 2;distance = 888;break ;else flag_csb_juli = 1;if(flag_csb_juli = 1)TR0=0; /关定时器0定时distance =flag_time0; /读出定时器0的时间distance *= 0.017; / 0.017 = 340M / 2 = 170M =
26、 0.017M 算出来是米if(distance 500) /距离 = 速度 * 时间distance = 888; /如果大于3.8m就超出超声波的量程 液晶显示程序/* 名称 : write_data(uchar dat)* 功能 : 1602写数据函数* 输入 : 需要写入1602的数据* 输出 : 无*/void write_data(uchar dat)e=0;rs=1;rw=0;P0=dat;delay_uint(3);e=1;delay_uint(25);e=0;/*lcd1602上显示两位十进制数*/void write_sfm2(uchar hang,uchar add,uc
27、har date)if(hang=1) write_(0x80+add);elsewrite_(0x80+0x40+add); write_data(0x30+date/10%10);write_data(0x30+date%10);/*lcd1602上显示超声波距离*/void write_sfm_csb(uchar hang,uchar add,uint date)if(hang=1) write_(0x80+add);elsewrite_(0x80+0x40+add); write_data(0x30+date/100%10);write_data(.);write_data(0x30+
28、date/10%10);write_data(0x30+date%10);/* 名称 : init_1602()* 功能 : 1602初始化,请参考1602的资料* 输入 : 无* 输出 : 无*/void init_1602()write_(0x38);/write_(0x0c);write_(0x06);/* 名称 : write_string(uchar hang,uchar lie,uchar *p)* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示ab cd ef ,调用该函数如下 write_string(1,5,ab cd ef;)* 输入 : 行,列,需要输入1602的数据* 输出 : 无*/void write_string(uchar hang,uchar add,uchar *p)if(hang=1) write_(0x80+add);elsewrite_(0x80+0x40+add);while(1) if(*p = 0) break;write_data(*p);p+;uchar key_can;