基于数字滤波的单片机仿真和C语言开发教材.docx

上传人:b****2 文档编号:670816 上传时间:2022-10-12 格式:DOCX 页数:14 大小:453.03KB
下载 相关 举报
基于数字滤波的单片机仿真和C语言开发教材.docx_第1页
第1页 / 共14页
基于数字滤波的单片机仿真和C语言开发教材.docx_第2页
第2页 / 共14页
基于数字滤波的单片机仿真和C语言开发教材.docx_第3页
第3页 / 共14页
基于数字滤波的单片机仿真和C语言开发教材.docx_第4页
第4页 / 共14页
基于数字滤波的单片机仿真和C语言开发教材.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于数字滤波的单片机仿真和C语言开发教材.docx

《基于数字滤波的单片机仿真和C语言开发教材.docx》由会员分享,可在线阅读,更多相关《基于数字滤波的单片机仿真和C语言开发教材.docx(14页珍藏版)》请在冰豆网上搜索。

基于数字滤波的单片机仿真和C语言开发教材.docx

基于数字滤波的单片机仿真和C语言开发教材

课程设计任务书

学生姓名:

周国阳专业班级:

电信1001

指导教师:

阮军工作单位:

信息工程学院

题目:

基于数字滤波的单片机仿真和C语言开发

初始条件:

本课程设计,要求用使用Proteus仿真软件进行系统设计与仿真。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、课程设计工作量:

1周内完成对系统的设计、仿真。

2、技术要求:

1)设计一种数字滤波器,比如:

中值滤波算法、算术平均滤波算法、加权平均滤波算法、滑动平均滤波算法等,自行设计输入信号的形式(了解各种GENERATORS的使用)。

要求进行电路仿真实验,并使用C语言进行程序的开发。

2)要求学生主动思考,自主发挥,实现系统的特色功能。

3、查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规范。

提交报告的主要内容:

(使用Proteus7.5sp3)

1)题目

2)仿真所完成的主要功能和特色简介——摘要(特别是自己扩展的功能,根据特色功能评优)

3)Proteus仿真的基本流程

4)所使用芯片以及引脚功能简介(需要提供对应芯片DataSheet的下载链接)

5)设计方案与工作原理,给出仿真电路图

6)实验记录与结果分析

时间安排:

1)第1天,查阅相关资料,学习设计原理。

2)第2~3天,方案选择和电路设计仿真。

3)第4天,设计说明书撰写。

4)第5天,上交报告,同时进行答辩。

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

摘要

本次项目是要我们利用51单片机设计出几种数字滤波器。

随着现在对滤波器的要求越来越高,模拟滤波器已经不能满足工业的要求。

在这种情况下,数字滤波器得到了很大的发展。

数字滤波器的实现过程的实现过程是把输入的模拟信号数字化,也就是由采样器对输入的模拟信号进行周期性的采样,并对每个样本进行量化和编码,即模数转换。

从ADC输出的数字信号送入到数字信号处理器进行处理变化,处理器输出的数字信号再通过数模转换为模拟信号,这个过程要用到DAC来转换实现模拟信号的输出。

关键字:

51单片机;数字滤波器;ADC;DAC

 

Abstract

Theprojectisforustotakeadvantageof51singledesignseveraldigitalfilters.Withthefilternowincreasinglydemanding,analogfilterscannotmeettheindustryrequirements.Inthiscase,thedigitalfilterhasbeengreatlydeveloped.Realizationoftheprocessofrealizationofadigitalfiltertotheanaloginputsignalisdigitized,thatissampledbytheanaloginputsignalisperiodicallysampledandeachsampleisquantizedandcoded,i.e.,analogtodigitalconversion.ADCoutputdigitalsignalisfedtothedigitalsignalprocessorforprocessingthechange,andthenoutputsthedigitalsignalprocessorisconvertedtoanalogbydigitaltoanalogsignals,tousethisprocesstoconverttheDACoutputanalogsignal.

Keywords:

51single;digitalfilter;ADC;DAC

 

1.开发环境

1.1仿真工具

我们这次在进行硬件仿真时运用的proteus工具,它具有以下功能:

(1)能实现单片机仿真和SPICE电路仿真的结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(2)支持主流单片机系统的仿真。

目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

(3)提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。

(4)具有强大的原理图绘制功能。

1.2编程工具

Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

 

2硬件模块

2.1MCS-51单片机

51单片机内包含下列几个部件:

一个8位CPU;

一个片内振荡器及时钟电路;

4KBROM程序存储器;

128BRAM数据存储器;

可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路;

32条可编程的I/O线(4个8位并行I/O端口);

两个16位的定时/计数器;

5个中断源、两个优先级嵌套中断结构。

2.2AD转换器

本次课程设计仿真使用的是ADC0808,ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809的简化版本,功能基本相同。

一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。

2.3DA转换器

DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

D/A转换结果采用电流形式输出。

若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。

运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。

DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。

3.数字滤波器的算法

3.1中值滤波器设计

中值滤波是先对某一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值。

该滤波方法实际上是一种排序方法,我在此采用的是冒泡法排序。

由于在冒泡法排序中,每出现一次前者数据大于后者数据,就要进行二者数据的交换。

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。

方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。

二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)},其中,f(x,y),g(x,y)分别为原始图像和处理后图像。

W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

中值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰。

对温度、液位等缓慢变化的被测参数采用此算法能收到良好的滤波效果,但对于流量、压力等快速变化的数据,不宜采用中位值滤波。

3.2加权平均滤波

在算术平均滤波和移动平均滤波中,N次采样值在输出结果中的权重是均等的,取1/N。

用这样的滤波算法,对于时变信号会引入滞后,N值越大,滞后越严重。

为了增加新采样数据在移动平均中的权重,以提高系统对当前采样值中所受干扰的灵敏度,可采用加权平均滤波,它是移动平均滤波算法的改进。

加权平均滤波是对连续N次采样值分别乘上不同的加权系统之后再求累加和,加权系统一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨识。

各个加权系统均为小于1的小数,且满足总和等于1的约束条件。

这样,加权运算之后的累加和即为有效采样值。

为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后便是有效采样值。

3.3限幅滤波

限幅滤波的基本原理是把两次相邻时刻(n和n-1)的采样值Yn和Yn-1相减,求出其差值,以绝对值表示,然后将这个差值与两次采样允许的最大偏差值ΔY比较,如果两次采样值的差值超过了允许的最大偏差值ΔY,则认为发生了随机干扰,并认为最后一次采样值Yn非法,应予剔除。

剔除Yn后,可用Yn-1代替Yn;若未超过允许的最大偏差值范围,则认为本次采样值有效。

可用如下公式表示:

|Yn-Yn-1|≤ΔY;则Yn有效|Yn-Yn-1|>ΔY;则Yn-1有效。

3.4滑动平均滤波

把连续取N个采样值看成一个队列,队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:

流量,N=12;压力:

N=4;液面,N=4~12;温度,N=1~4。

对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统。

 

4.系统的设计

在我们这个项目中要求我们选取其中的一种数字滤波器来设计,但在做的过程中我们发现这些数字滤波器在我们学习MATLAB时很多都是接触过的,它们的算法都可以找到。

所以我在做项目时把四种方式都加上去了,我们可以根据实际的波形灵活选择滤波器的方式。

在一开始输入的波形是模拟波形,我们要把它转换成数字波形,这样我们才能用数字滤波的方法对它进行滤波,所以我们用到了AD转换器。

当使用算法进行滤波后,现在的波是数字方式存在,我们要输出它,要以模拟波形的方式输出,所以我们用到了DA转换器。

在选择波形的时候,在这里我们选择了在键盘。

键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。

式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

 

4.1系统框图

开始

待键盘信号

系统初始化

选择K1

AD采样量化

中值滤波

单片机处理

选择K

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1