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

更新时间:2024-06-01 08:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

摘要:如今这个时代被人们称为信息时代,这些年,计算机技术以不可阻挡之势迅猛发展,在工业、农业、国防、医疗、科研等众多领域发挥着重要的作用,成为各国衡量其国际竞争力的重要标准之一。单片机有着优越的控制能力,在工业控制、医疗控制,只能仪表等领域有着广泛的应用,更以有着无比的优越性从而成了微型的计算机的一个非常重要的分支。

本文主要介绍了单片机的发展概况和视力保护器的发展历程,利用单片机AT89C51设计一款性能优越的视力保护器。在AT89C51型单片机的硬件设施基础上实现测距、感光、定时、报警四大功能。其中测距模块和感光模块主要是由相应的传感器组成,实现对使用者距离和周围环境光线强度的检测和报警功能。定时模块是由单片机的运行程序构成,实现对使用者学习时间的监测和提示功能。介绍了利用Keil平台实现定时汇编语言的方法。同时也简单介绍了该技术的应用现状和发展前景。

关键词:单片机;传感器;定时器;Keil

1

Vision protector circuit design based on

single chip microcomputer

Abstract:Now this era known as the information age, these years, the technology of the computer to the irresistible trend of rapid development,and plays an important role in many fields of industry, agriculture,national defense, medical, scientific research, become one of the most important standards to measure the international competitiveness of the countries.Single chip microcomputer as an important branch of microcomputer, with its superior control function, in the industrial control, intelligent instrument system is showing its superiority.

This paper mainly describes the present situation of the development of the single chip microcomputer and the development of vision protector, using single-chip microcomputer AT89C51 design a superior performance vision protector. On the basis of type AT89C51 single chip microcomputer hardware implementation ranging, photographic, timing,alarm, four big functions. The ranging module and photosensitive module is mainly composed of the corresponding sensor, realize the user distance and ambient light intensity detection and alarm function. Timing module is made up of single chip microcomputer to run the program, implementation of the user study time monitoring and prompt functions. Introduced the method of using Keil platform implementation timing assembly language. At the same time also simply introduces the present situation of the application of the technology and development prospects.

Key words: Single chip microcomputer;transducer;timer;keil

2

目录

1.绪论..........................................................1 1.1 选题背景............................................1

1.2 视力保护器的现状及其展望............................2 1.3 主要研究内容........................................2

2.系统硬件设计.............................................4 2.1 8051单片机简介......................................4 2.2 传感器辅助坐直报警电路..............................7 2.3 8051单片机的中断系统.................................8 2.3.1中断的概念...................................8 2.3.2中断系统结构以及中断控制.....................9 2.3.3中断响应及中断处理过程......................12 2.4 光线报警电路.......................................13 2.4.1光敏电阻控制电路..........................13 2.4.2光线发声报警电路..........................13 2.5 定时报警电路.......................................14 2.5.1单片机控制电路............................14 2.5.2定时器报警发声电路........................15 3. 开发系统软件设计.......................................16 3.1 Keil C51软件简介....................................16 3.2程序的模块化划分....................................16 3.3程序模块............................................18 3.3.1超声波测距模块............................18 3.3.2外部中断模块..............................19 3.3.3定时模块..................................20 4. 结论及展望.............................................22 参考文献.......................................................23 附录.........................................................24

I

第一章 绪论

1.1选题背景

随着改革开放的发展,现如今社会对于广大社会人群要求其知识水平越来越高,特别是学生,故而现在是学生学习的高峰期,对他们的造成的学习压力也是特别繁重的。根据有关的报告显示,我国现在的盲人人数以百万计,更甚的是低度近视的以千万计。近视眼这种疾病在儿童及青少年时期极易发生,因其不注意保护自己视力,各种的坐姿和作业方式不正确。根据近年全国学生体质健康调查报告结论如下所示。更让人震惊的是,约有三十多万的人因高度近视而导致眼盲。

图1-1 视力调查表 我国因人口基数众多也因对对视力保护不够重视,故而近视眼的人数据世界第一位,同时近视眼发病的概率也是全世界最高的。学生因需经常用眼,故而在广大的近视眼人群中占据了巨大部分,有着相当多的人数。中国广大学生的近视度数还是较为偏高的,而且人数呈现出逐年递增的趋势,且递增的比例相当大。这种趋势使得社会人群普遍的关注和担忧。他们作业阅读姿势不正确和作业阅读的时间过长是导致近视眼病的主要原因,因此设计一款人性化的视力保护器对于广大学生保护眼睛来说意义重大。

1

大学生 70.34% 中学生 55.22% 小学生 22.78%

1.2 视力保护器的现状及其展望

就目前的状况来说,国内外均业已有许多电子科技公司自己都在生产本公司的视力保护器。就国内目前发展状况方面来说,比如说,有乌鲁木齐市旭之龙科技有限公司,该公司生产的“学生1.5视力保护器”也被称之为“坐视宝”,当使用者的坐姿不正确时,它能及时而有效的发出语音提醒。也还有深圳市华恒电子有限公司的“MS-3032坐姿矫正器”,矫正作业和阅读时的不良坐姿。然而,从总体状况来说,国内生产的视力保护器的功能不够丰富,甚至可以说是单一,但人们多视力保护器的多样化和个性化要求是日益增长的,故而相矛盾。从国外方面来说,他们也十分地重视对视力保护的研究。然而,他们更加倾向于对产生近视原因的思考和研究。他们普遍认为可以通过合理的饮食营养搭配,例如多吃鱼和新鲜蔬菜,和正确的学习习惯,能降低近视发生的概率。

经市场的调研表明,真正功能丰富视力保护器在广大的销售市场上是不存在的。现有的视力保护器只能实现多功能视力保护器的三大目标(定时、感光、测距)的某一个方面,功能不全面,不突出。基于以上的因素,视力保护器存在着大量的市场需求,对于视力保护器的研究和开发才处于刚刚起步的阶段,还有着很大的发展空间。在经过广大市场需求的刺激和国家大力支持此项研究的前提下,多视力保护器的发展将是十分巨大的,同时也即将为广大学子的视力问题作出很好的预防效果。

1.3 主要研究内容

因单片机普遍地具有智能处理的功能,能满足人们基础的设计需求。故而本次的设计以单片机芯片为核心,结合了理论指导和实验验证两方面的优点。首先是各个电路模块和所需的元器件的选择,同时也需对电路模块的元器件的电阻值,电容量进行大致范围的估算。进行了初步的范围的筛选后再进行进一步的精确的选择,最后确定使用。接着对各个单元电路进行调整组合,使之形成完整的电路模式,且在计算机上进行调试和仿真。单片机选择C51型,以光敏电阻来判定光照值是否达到国家标准来实现对光线强弱的警报,以水银滚珠型重力传感器来实现垂直电路从而达到对使用者坐姿的检验,以C51单片机的定时和汇编功能来实现对使用者使用时间的判定,以编程的方式来实现电路的自动复位。本次设计的多功能视力保护器主要能实现

2

+5.SENSORR22.4K.R15.1KB9012VT21MSPEAKERVDDOSCVT33VVT19013BATTERYY0R9011TG1TM801AO/P51KC1VSS0.1u.图2-4坐直电路原理图

2.3 8051单片机的中断系统

今天的计算机具有实时处理能力,能对外部发生的突发事件进行及时而有效处理。这就是靠中断技术来实现该功能的。 2.3.1中断的概念

当CPU正在处理一个事件,一个事件从外部突发需要CPU及时的处理, CPU暂时中断当前的工作,转向事件的处理。中断服务处理完事件后,然后返回到被中止,继续到原来的地方进行原来的工作,这个过程称为中断。中断系统就是能实现中断功能的部件,中断源就是能产生中断的请求源。中断请求就是中断源向CPU发出的处理请求。中断响应就是CPU中断了自身的事件处理,转向去处理请求事件的过程。中断服务就是对请求事件的整个的处理过程。中断返回就是在请求事件处理完成后,再返回到原来中断的地方。

8

.

图2-5中断流程

2.3.2中断系统结构以及中断控制

图2-6中断系统结构

中断对于单片机而言是一项不可或缺的功能,特别是对于事件处理方面,能极大的提高单片机的的工作效率。中断技术可以实现分时操作,实时处理,故障处理等功能。 1.89C51中断源

中断源一般有I/O设备、硬件故障、实时时钟、为调试程序而设置的中断源[8]。89C51中断系统的5个中断源为:

(1)INT0:外部中断0请求。在输入低电平时才有效。可以通过P3.2引脚引入。

(2)INT1:外部中断1请求。在输入低电平时才有效。可以通过P3.3引脚引入。

(3)T0:定时器计数器(0)溢出中断请求。 (4)T1:定时器计数器(1)溢出中断请求。

(5)TXD/RXD:串行口中断请求。当该串行端口,完成了发送数据或接受,就会要求中断。每个中断源都与一个中断请求标志位相对应。当中断源发出中断请

9

求后,与之一一对应的标志位的锁存是通过TCON和SCON来实现的。 2.中断控制

89C51中断系统中有4个功能比较特殊的寄存器:TCON(定时器控制寄存器)、SCON(串行口寄存器)、IE(中断允许寄存器)、IP(中断优先级寄存器)[8] 2.1 两个特殊寄存器(TCON和SCON)的中断标志位

1. TCON中的中断标志位

8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

(1)TF1:定时器计数器(T1)溢出中断请求标志。当单片机开始工作后,T1开始计数,从初值开始加1一直到最高位产生溢出,TF1置一,且向CPU发出中断,响应以后,自动将TF1置0。

(2)TF0: 定时器计数器(T0)溢出中断请求标志。作用与TF1相同。 (3)IE1:中断请求标志位(外部中断1)。当外部中断引脚上有中断请求时,IE1为1;当CPU响应了中断请求后,IE1为0。

(4)IT1:中断触发控制位(外部中断1)。当IT1为0时,外部中断为电平触发。若外部输入为低电平,IE1为1;若外部输入为高电平,IE1为0。当IT1为1时,外部中断为边沿触发。若在两个机器周期内电平以高低的方式呈现,IE1为0;当CPU响应了该中断,IE1为0。

(5)IE0:外部中断0的中断标志位。作用与IE1相同。

(6)IT0:外部中断0的中断触发方式控制位。作用与IT1相同。 2 SCON中的中断标志位

99H 98H TI RI TF1 TF0 IE1 IT1 IE0 IT0 (1)TI:串行口发送中断请求标志位。CPU使得一个数据写入发送缓冲器SBUF时,就启动发送。在每发送完一阵串行数据后,硬件置位TI。但在CPU响应中断时,不清除TI,必须在中断服务程序中由软件使得TI清0。 (2)RI:串行口接受中断请求标志位。当串行口允许接受时,每接受完一个串行帧,硬件置位RI。在CPU响应中断时不清除RI,必须实用软件对

10

其清0。在中断服务程序中有软件使得TI清0。 2.2中断允许控制位

AFH AEH ADH ACH ABH AAH A9H A8H EA ES ET1 EX1 ET0 EX0 (1)EA:中断允许总控制位。EA=0时,屏蔽所有中断请求;EA=1时,CPU开放中断。对个中断源的中断请求是否被允许,还需 源的中断允许控制位的状态。

(2)ES:串行口中断允许位。当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断

(3)ET1:定时器/计数器T1的溢出中断允许位。当ET1=0时,禁止T1中断;当ET1=1时,允许T1中断。

(4)EX1:外部中断1中断允许位。当EX1=0时,禁止外部中断1中断;当EX1=1时,允许外部中断1中断。

(5)ET0:定时器/计数器T0的溢出中断允许位。当ET0=0时,禁止T0中断;当ET0=1时,允许T0中断。

(6)EX0:外部中断0中断允许位。当EX0=0时,禁止外部中断0中断;当EX0=1时,允许外部中断0中断。 2.3中断优先级控制

89C51有两个中断优先级。每一个中断请求源都可以编程为高优先级中断或低优先级中断。在中断系统中有两个不可寻址的“优先级生效”触发器,其中一个指出CPU是否正在执行高优先级的中断服务程序,另一个指出CPU是否正在执行低优先级中断服务程序。当这两个触发器为1时,则分别屏蔽所有的中断请求。89C51内有一个中断优先级寄存器IP。IP中的低5位为个中断源优先级的控制位,可以使用软件来设定。各位的含义如下所示: BCH BBH BAH B9H B8H PS PT1 PX1 PT0 PX0 取决于个中断

(1)PS:串行口中断优先级控制位。

(2)PT1:定时器/计数器T1中断优先级控制位。 (3)PX1:外部中断1中断优先级控制位。

11

(4)PT0:定时器/计数器T0中断优先级控制位。 (5)PX0:外部中断0中断优先级控制位。 2.3.3中断响应及中断处理过程 1.中断响应

1.中断响应条件 CPU响应中断条件有:

(1)有中断源发出中断请求。 (2)中断总允许位EA为1。

(3)申请中断的中断源的中断允许为1。 (4)无同级或更高级中断正在被响应。 (5)当前的指令周期已经结束。 2.中断响应的自主操作过程

89C51单片机CPU在每一个机器周期才分别采样每一个中断源,按照优先级顺序查询中断标志位。若一些中断的中断允许位都在在允许状态(即为1),在接下来的某时间段内按其优先级进行中断处理。这就表现为CPU的自主操作。 3.中断响应时间

CPU地不同情况下的中断请求的响应时间是不一样的,甚至也不是响应所有情况下的中断请求的。同时在中断请求处理过程中若是受到了阻碍,中断请求的时间也是会有所延长的。 2.中断处理

中断处理就是从中断服务程序的第一条指令开始到返回指令结束。其中包括:保护现场、中断源服务。中断服务子程序流程为:关闭之后中断请求,保护现场,开启现在响应的中断,开始中断服务,关闭处理好的中断,恢复现场,开启中断请求允许位,中断返回。3.中断返回

当一个中断源发出中断请求,CPU对该请求响应与否能自主决定。若响应,就需要在某条指令完成后,需要把中断地址放入堆栈中保护起来,即为中断保护。当中断处理完以后,再将之前仿佛堆栈中的指令的后面的指令地址返回PC中,这被称之为恢复断点,程序返回到之前中止的地方,继续原来的工作。中断返回

[10]

12

}

/*********************初始化子程序*************************/ void Init(void) {

TMOD=0x11;//定时器0 定时器1 16位定时模式

IT0=1;//INT0下降沿触发中断

TH0=(65536-46075)/256;

TL0=(65536-46075)%6;

ET0=1; //定时器0中断允许位 TR0=1;//启动定时器0

counter=0;minutes=0;seconds=0; }

/**********************发射超声波***************************/ void SendSound(uchar nums) {

uint i=0; Set40=0; nums=nums; Set40=1;

for(i=0;i

ET1=1; //定时器1中断允许位 TR1=1;//启动定时器1

EX0=1; //开启中断0

28

}

/********************外部中断0计算距离***********************/ void int0srv(void) interrupt 0 {

//distance=SOUNDSPEED*time/1000000/2; countwave++; if(countwave==2)

{ }

/*****************T0计时子程序 计算是否超过45分钟******************/ void timer0() interrupt 1 using 2 //45分钟到则标志位置1报警 {

TH0=(65536-46075)/256;

TL0=(65536-46075)%6;

ET1=0; //定时器1中断允许位

TR1=0;//启动定时器1

EX0=0;//INT0允许中断 backwaveflag=1; countwave=0;

}

counter++;

if(counter==20) {

seconds++;

// if(seconds==5)

{time5sflag=1;}

counter=0;

if(seconds==60) {

29

}

minutes++; seconds=0; if(minutes==45) {

minutes=0; timeflag=1;

} }

}

/**********T1计时子程序 计算返回来超声波的时间**********/ Tvoid timer1(void) interrupt 3 using 1 {

ET1=0; //定时器1中断允许位

TR1=0;//启动定时器1 }

void delayms(uint ms) // 延时子程序 { }

uchar i; while(ms--) { }

for(i = 0; i < 120; i++); EX0=0;//INT0允许中断

30

本文来源:https://www.bwwdw.com/article/yhk6.html

Top