基于单片机的环境噪声监测仪的设计 - 图文(8)

2019-09-02 14:50

信息工程学院 基于单片机的环境噪声监测仪的设计

中断入口 关T0、T1 读计数器 重新初始化T0、T1 开T0、T1 中断返回 图4-2 中断服务程序流程图

一、 T0中断子程序的设计

计数功能是对外来脉冲进行计数。芯片有T0(P3.4)和T1(P3.5)两个输入引脚,分别是这两个计数器的计数脉冲输入端。当输入信号产生由1至0的负跳变时,计数器的值增1。每个机器周期的S5P2期间,对外部输入引脚进行采样。如在第一个机器周期中采得的值为1,而在下一个机器周期中采得的值为0,则在紧跟着的再下一个机器周期S3P1的期间,计数器加1。由于去确认一次负跳变要花两个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为振荡器频率的1/24。

由于本设计采用T0计数器,当定时时间到时产生中断,故需要编写中断子程序。本设计把T0作为计数器,采用方式1计数,当定时1秒后,即产生中断,而计数器T0的溢出中断TF0作为外部中断请求的标志,于是,CPU暂时终止当前的工作,转去执行中断服务程序,这时除了硬件会自动把断点地址(16位程序计数器PC的值)压入堆栈之外,还得保护有关工作寄存器、累加器、标志位等信息,在完成中断服务程序后,恢复有关的工作寄存器、累加器、标志位内容,最后执行中断返回指令,从堆栈中自动弹出断点地址到PC,继续执行被中断的程序,如图4-3所示为中断子程序流程图。

第 32 页 共46页

信息工程学院 基于单片机的环境噪声监测仪的设计

关中断 现场保护 开中断 中断处理 现场恢复 中断返回

图4-3 T0中断服务程序流程图

二、 T1中断子程序的设计

所谓定时功能也是通过计数器的计数来实现的,不过这时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加一。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。如果单片机采用6MHz晶体,则计数频率为0.5MHz。这样就可以根据定时时间的要求计算出计数器的初值。因此本设计中T1的初值为(216?X)?10?6?10?1,即X=15536=3CB0H,因此TH1=3CH,TL1=B0H。

定时功能:用T1做定时1秒,每满1秒,就读计数器的内容。具体的T1中断子程序软件流程图见图4-4。

第 33 页 共46页

信息工程学院 基于单片机的环境噪声监测仪的设计

中断服务子程序T1 保护现场 关定时闸门 Y 中断次数计数器 R0-1=0? N 读计数结果 存入RAM 开闸门 开中断屏蔽 开闸门 开屏蔽 重新置计数器 初值和R0初值 结果送结果单元并加累加器内容 恢复现场 返回 图4-4 T1中断服务程序

第 34 页 共46页

信息工程学院 基于单片机的环境噪声监测仪的设计

4.4 查表子程序

声学中常用声压级LP来反映声压的变化,将声压P声压级表示成

LP?20lg(P/P0)dB

(4-1)

其中,基准量P0为20m Pa。当P=P0时,Lp=0dB,而当P=200 Pa时,LP=140dB。 值得指出的是,查表程序实现了计数值向声压级的转换。由式(4-1)知声压每增加12.2%,声压级增加1dB,因此T0计数值每增加12.2%,声压级增加1dB。在E2PROM中定义一张表格,每四个字节为一组数据,其中前两个字节为计数值,后两个字节为压缩BCD码表示的声压级值。调试时,参照精密声级计,读出某声压级所对应的计数值,从而确定表格中两参数的对应关系,当程序固化后,还可通过硬件电路对其进行调整。由于设计要求声压级的测量范围为40~96db,所以给表格设定了上下限。下面给出定义该表格的伪指令格式。

TAB:DB 1BH,0AH,0BH,0BH DB 18H,9DH,09H,06H;表格上限 ...

DB 05H,83H,08H,03H DB 05H,00H,08H,03H DB 04H,0EAH,08H,02H DB 04H,61H,08H,01H DB 04H,00H,08H,01H DB 03H,0E7H,08H,00H …

DB 00H,0BH,04H,01H

DB 00H,0AH,04H,,00H;表格下限 DB 00H,00H,0AH,0AH

查表子程序流程图如图4-5所示。

第 35 页 共46页

信息工程学院 基于单片机的环境噪声监测仪的设计

查表子程序入口 置表首地址 i=i+1 Y 取表中双字节数xi xi>(TH0)(TL0) N 数值显示 返回 图4-5 查表子程序流程图

4.5 显示子程序

根据一般城市内噪声等级、测量方法和标准,显示只需四位即可满足要求,显示格式:× × d b。

数据处理完后,显示子程序开始工作,由于LED显示为段码的显示,所以处理后的十进制数要首先取段码,然后送显示单元。

本设计的显缓单元为5CH-5FH,采用两个四位LED显示,先把要显示的数据存入显缓单元,然后取段码,再把段码送到指定的位上,用R5进行位的选择,显示程序流程图如图4-6所示。

第 36 页 共46页


基于单片机的环境噪声监测仪的设计 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:冷却塔维护维修更换相关技术参数 - 图文

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

马上注册会员

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