多功能视力保护器本科毕业论文(3)

2019-04-09 15:28

① 接收中断请求。② 应答中断。③ 执行中断服务程序(ISR)。 (3)中断标志寄存器(IFR)

中断标志寄存器是一个存储映射的CPU寄存器,可以识别和清除有效的中断。当一个中断出现时,IFR中的相应的中断标志位置1,直到CPU识别该中断为止。

该设计在软件编程中需用到单片机的中断系统和中断指令,具体指令和程序见下章。

2.4 光线报警电路

该电路分为光敏电阻控制电路和光线发声报警电路。其功能是完成由光敏电阻控制的电路在条件满足时发出脉冲,该脉冲作用于89c52单片机的P1.0口,通过检测p1.0口是否为高电平,由中断控制利用P1.1口给出满足发声电路需要的脉冲,再由发声电路发出声音提醒学生光线太暗了,需要调节光的亮度,进而达到保护学生视力的目的。

[7]

2.4.1 光敏电阻控制电路

图2-3 光敏控制电路

图2-3是光敏控制电路原理图。当光敏电阻受到较强的光照照射时,光敏电阻阻值变低,输出端输出高电平,为模拟信号,经1/4LM339(四电压比较器,用其中的一个即可)转换成数字信号然后经反相器传给单片机,此时,传过去的信号为低电平,即光线正常时输出信

8

号为低电平;当光敏电阻受到较弱的光照照射时,光敏电阻阻值为无穷大,输出电压为Vce=0.7v,为低电平,经比较器输出为零,再经反相器作用后输出为1,即光线较暗淡时,总的输出电压为高电平即1。反馈到单片机上,触发蜂鸣器报警。

[8]

图2-4 LM339的结构图

图2-4为LM339的结构图。其中LM339集成块内部装有四个独立的电压比较器,该电压比较器的特点是:(1)失调电压小,典型值为2mV;(2)电源电压范围宽,单电源为2-36V,双电源电压为±1V-±18V;(3)对比较信号源的内阻限制较宽;(4)共模范围很大,为0~(Ucc-1.5V)Vo;(5)差动输入电压范围较大,大到可以等于电源电压;(6)输出端电位可灵活方便地选用。

LM339集成块采用C-14型封装,图2-5.1为LM339原理图的外型及管脚排列。由于LM339使用灵活,应用广泛,所以世界上各大IC生产厂、公司竟相推出自己的四相比较器,如IR2339、ANI339、SF339等,它们的参数基本一致,可互换使用。

2.5 定时报警电路

报警电路分为单片机控制电路和报警发声电路。它主要通过单片机的定时计数功能完成定时45分钟并使报警电路发出报警声,用以提醒学生休息!

89c52单片机内有两个可编程的定时器/计数器,满足诸如对外部脉冲进行记数,产生精确的定时时间,作串行口的波特发生器等功能的需要。它们具有两种工作模式(计数器模式和定时器模式)及4种工作方式(方式0,方式1,方式2,方式3)。其控制字均在相应的特殊功能寄存器中,通过对它的特殊功能寄存器的编制,可以方便的选择适当的工作模式和

9

工作方式。

当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计数满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为:

T=1/(12×106)Hz×1/12=1μs

这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。

当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。

工作方式控制寄存器TMOD用于控制定时器/计数器的工作模式及工作方式,它的字节地址为89H。定时器/计数器的两个作用是用来精确的模拟一段时间间隔(作定时器用)或累计外部输入的脉冲个数(作计数器用)。当作定时器用时,在其输入端输入周期固定的脉冲个数,即可计算出所定时间的长度。当89c52内部的定时器/计数器被选定为定时器工作模式时,记数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1,因此,定时器/计数器的输入脉冲和机器周期一样,为时钟频率的1/12。本设计采用的时钟周期为6MHz,记数速度为500KHz,输入脉冲的时间间隔为0.5秒。

[10]

2.5.1 单片机控制电路

单片机控制电路由89c52单片机的P3.4和P3.5即T0和T1定时/计数器通过单片机的汇编语言来实现!定时时间为50分钟,其计时初值可计算如下:

50*60=3000s=30000*100ms

100ms用T0定时设置T0工作方式1,30000次用T2计数,设T2工作方式为11。 T0的定时初值为:2^16-100ms/2us=15536=C3B0H; T1的计数初值为65536-30000=35536=8AD0H

其中T0为定时器,T1为计数器,定时器T0定时100ms后,计数器T1计数一次,此时,

10

定时器T0进行中断服务程序ZDT0进行定时器T0循环定时进入下一个定时周期,当满足又一次定时满100ms时,再由计数器T1计数一次,如此循环下去,直到满足计数器T1计数30000次,计数器T1进入中断服务程序ZDT1,其功能是使单片机的P3.0引脚发送一个脉冲触发定时报警发声电路,由定时报警发声电路发出报警信号,使学生意识到已经学习了45分钟了,需要休息一下,进而达到保护学生视力的目的。此时,学生应关闭视力保护器电源,休息后在开启电源以进行节能。开启电源后,定时器T0和计数器T1进行到下一循环,对定时器进行赋值,T0定时,T计数,再进行报警。

定时用的c语言程序见附录。

2.5.2蜂鸣器报警发声电路

图2-5 蜂鸣器报警发声电路

如图2-5所示,三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,利用单片机的定时功能通过P3.3产生一个振荡脉冲方波,输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。

3 开发系统软件设计

由于简单的程序可以用汇编明显提高执行速度,但在大型程序开发时,需要考虑多方面因素,工程开发周期等需要合理选择编程语言,所以本文主要采用单片机c语言来完成软件设计和程序代码的编写,程序简单易懂,可执行性强。

3.1 系统软件设计

软件采用Keil Software,使用单片机汇编语言。因为汇编可以完成有些C语言完成不

11

了的操作。程序中对时间要求苛刻的部分可以用内嵌汇编来重写,以促进速度上的显著提高。但是,开发和测试汇编代码是一件辛苦的工作,它将花费更长的时间,因而要慎重选择要用汇编的部分。一个合格的程序员应该是写出高质量标准化程序。

主程序的流程采用模块的方法设计,先规划出各功能子模块,然后各个击破,这也是软件开发的方式,可以由简入难,比较符合人的思维习惯。

图3-2使定时器T0的中断程序流程图,图3-3使计数器T1终端服务流程图,其程序设计原理如下:

单片机控制电路由89c52单片机的P3.4和P3.5即T0和T1定时/计数器通过单片机的汇编语言来实现!定时时间为45分钟,其计时初值可计算如下:

50*60=3000s=30000*100ms

100ms用T0定时设置T0工作方式1,30000次用T2计数,设T2工作方式为11。 T0的定时初值为:2^16-100ms/2us=15536=C3B0H; T1的计数初值为65536-30000=35536=8AD0H

其中T0为定时器,T1为计数器,定时器T0定时100ms后,计数器T1计数一次,此时,定时器T0进行中断服务程序ZDT0进行定时器T0循环定时进入下一个定时周期,当满足又一次定时满100ms时,再由计数器T1计数一次,如此循环下去,直到满足计数器T1计数30000次,计数器T1进入中断服务程序ZDT1,其功能是使单片机的P3.0引脚发送一个脉冲触发定时报警发声电路,由定时报警发声电路发出报警信号,使学生意识到已经学习了45分钟了,需要休息一下,进而达到保护学生视力的目的。此时,学生应关闭视力保护器电源,休息后在开启电源以进行节能。开启电源后,定时器T0和计数器T1进行到下一循环,对定时器进行赋值,T0定时,T计数,再进行报警。

12


多功能视力保护器本科毕业论文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新版人教版一年级上册语文全册教案教学设计(2018最新编辑)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: