今天在GitHub上更新了大学的时候曾经写过的一些程序,可以在我的GitHub上查看。第一个是图书馆人员计数器,第二个是超声波测距仪,第三个是基于MATLAB的回波信号的产生与消除。其中前两个程序是我和同学一起制作,最后一个程序是我自己单独制作。欢迎查看。

图书馆人员出入计数器

1.设计任务

设计一个图书馆出入人员计数系统,要求利用2组红外发射接收对管组成模拟图书馆出入人员计数系统,使其能够模拟统计图书馆出入人员计数, 并使用数码管显示计数信息。

2.基本要求

(1) 任何一对红外管能够检测到有人走过,并将计数显示出来;
(2)当障碍物依次从红外发射管1到2走过的时候,人员数加1;
(3)在实现(2)的基础上,实现则有分,如果不能保证两个同时实现,则不加分。当障碍物依次从红外发射管2到1走过的时候,人员数减1。

3.发挥部分

(1)充分发挥两对红外对管的功能,实现当人员走到一半再返回,则计数不变功能;
(2)为保证系统稳定性,当人员从第1对红外发射管经过之后,直接从中间取出,不计数;当人员从中间直接经过第2个管子之后, 不计数;待再次从第1、2对红外管经过时,正常计数。

4.下载地址

[下载地址]

超声波测距仪

关于程序

本设计利用超声波具有指向性强,能量消耗慢,传播距离较远等优点,设计了一个基于51系列单片机的超声波测距系统,该系统使用ATMEL公司的51系列单片机,由单片机控制产生超声波脉冲并使用定时器计时,计算超声波自发射至接收的往返时间,从而得到实测距离,并用四位LED数码管显示出来,利用按键还可以实现距离的记录和乘积计算以及报警功能。整个硬件电路由单片机核心控制模块、超声波发送与接收模块、显示电路模块、蜂鸣器模块、按键模块和供电模块等组成。此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点。实现后的作品可用于需要测量距离参数的各种应用场合。

设计要求

本系统的设计目的是,通过自己设计并画出电路原理图、PCB板,焊接电路,同时编写程序实现以下功能:
S1:按下S1不放,则数码管显示数字定住,表示此时确定了一个距离L1,松开S1,则继续测距。
S2:按下S2不放,则数码管显示数字定住,表示此时确定了一个距离L2,松开S2,则继续测距。
S3:距离L1与距离L2相乘的结果。(注意:由于数码管显示有限,只能显示4位,所以L1和L2为两位数时,相乘结果才正确)
S4:按下S4,约10秒后蜂鸣器响,按复位键后恢复正常。

硬件选择

本设计的MCU采用的是DIP(Dual In-line Package塑料双列直插式)封装的STC89C52高性能8位单片机。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。

系统框图


该系统由1个中心模块、5个功能模块组成。
单片机核心控制是整个系统的心脏。在本系统中,它将产生一个电平使超声波发送模块产生40kHZ的方波并发送出去;利用其中的定时器实现计时,并计算出距离,然后将其显示在数码管上;接收来自按键模块的信息;控制蜂鸣器模块的工作。
供电模块是系统的电源供给部分。来自电池的9V电压将通过该模块降为5V供给其它各个模块。
其它模块不在此再累述。

系统测试结果

测试次数12345
系统测试值(单位:mm)239348421520685
直尺测试值(单位:mm)248358430532691
误差(单位:mm9109126

下载地址

[下载地址]

基于MATLAB的回波信号的产生与消除

1.设计任务

本课程设计要求用MATLAB语言编程实现回波信号的产生和消除。

2.理论依据

根据设计要求分析系统功能,掌握设计中所需理论及原理(采样频率、采样位数的概念,采样定理;回声信号,卷积,相关分析;时域信号的FFT分析;数字滤波器设计原理和方法)。

3.信号的采集

录制一段音频(如歌曲、说话声等),绘制其时域波形,对此音频信号用FFT作谱分析。

4.回声信号的产生

在录制信号基础上产生带有回声的声音信号并绘制其时域波形,对其进行FFT频谱分析,绘制频谱图。

5.从带有回声的声音信号中恢复原信号

设计合适的滤波器,对带有回声的声音信号进行滤波,恢复原信号。绘制所设计滤波器的幅频和相频特性,及滤波后的信号的时域波形和频谱图。

6.分析反射物距离

从带有回声的声音信号中估计反射物的距离。采用相关分析法从带有回声的声音信号中估计反射物的距离。

7.下载地址

[下载地址]