综合实验报告

实验七   综合实验

1.实验目的

能综合利用信号处理的理论和Matlab工具实现对信号进行分析和处理

(1) 熟练对信号进行时域和频域分析;

(2) 熟练进行滤波器设计和实现;

(3) 掌握对信号的滤波处理和分析。

2.实验原理

    设计并实现滤波器对信号进行分析和处理是信号处理课程学习的主要内容。通过对信号进行频谱分析,能发现信号的频率特性,以及组成信号的频率分量。对信号进行滤波处理,能改善信号的质量,或者为数据处理(如传输,分类等)提供预处理,等。本次实验是对特定信号进行分析并进行滤波处理,需要综合应用之前的实验内容,主要有以下几个方面。

(1)离散时间信号与系统的时域分析

     Matlab为离散时间信号与系统的分析提供了丰富且功能强大的计算函数和绘图分析函数,便于离散时间信号和系统的时域表示和分析。

(2)信号的频域分析

信号处理课程主要学习了离散信号和系统的频域分析方法与实现,以及滤波器的设计与实现。离散信号与系统的频域分析包括DTFT、DFT、Z变换等,FFT则是DFT的快速实现。用Matlab分析信号的频谱可以用freqz函数或者FFT函数。

(3)  滤波器设计

滤波器的设计首先要确定滤波器的类型,即低通、高通、带通还是带阻。滤波器的边缘频率可以通过对信号的频谱分析得到,滤波器的幅度指标主要有阻带最小衰减As和通带最大衰减Ap。一般来说,As越大,对截止通过的频率分量的衰减越大;Ap越小,对需要保留的频率分量的衰减越小。因此,As越大,Ap越小,滤波器的性能越好,但随之而来,滤波器的阶数越大,实现的代价(包括计算时间和空间)越大。由此,滤波器的设计需要对滤波器性能和实现代价进行均衡考虑。

另外根据冲激响应的长度可以分为IIR和FIR两种类型。两种类型的滤波器各有特点。用FIR滤波器可以设计出具有严格线性相位的滤波器,但在满足同样指标的条件下,FIR滤波器的阶数高于IIR滤波器。Matlab为各种类型的滤波器的设计提供了丰富的函数,可以借助这些函数方便地设计出符合要求地滤波器。

3. 实验内容及步骤

    已知长度为100的离散信号x,主要由三种不同频率的信号构成。请对x进行分析,并设计相应的滤波器,得到构成x的三种信号。

实验步骤:

(1)对信号进行时域和频域分析,确定信号x的频率分量。

(2)针对每个组成信号,设计滤波器。包括确定滤波器类型、滤波器指标等。

(3)用Matlab实现滤波器。

(4)应用滤波器进行滤波,得到相应的信号。

(5)对滤波结果进行分析,调整滤波器参数和设计方法,优化滤波结果。

(6)使用不同的滤波器滤出同一频率分量的信号,比较滤波的结果和不同滤波器的性能。(选做)

3.实验报告要求

(1)明确实验目的以及实验内容。

(2)详细叙述对信号进行分析的过程和结果,用图表显示信号的时域和频域波形。

  (3)对滤波器设计的每个步骤有详细文字进行分析说明。

(4)对设计得到的每个滤波器给出其阶数和截止频率,并用图表显示其时频特性。

(5)对滤波得到的每个频率分量用图表形式给出其时域和频域波形。

(6)附有实验的完整源代码,代码中有详细的解释说明。

(7)对本次实验的体会总结,以及对信号处理课程的实验的体会总结。

实验总结:

%%%%%(1)低通FIR滤波器%%%%%%%%%%%%%%%%

function [y,b]=lowpass_fir_filter(x)

wp=0.22*pi; ws=0.46*pi;

wdelta=ws-wp;  

M=ceil(3.32*pi/wdelta);

N=2*M+1;

wc=(ws+wp)/2; 

win=hamming(N);

b=fir1(N-1,wc/pi,win);    

y=filter(b,1,x);

%%%%%%%%%(2)带通FIR滤波器%%%%%%%%%%%%%%

function [y,b]=bandpass_fir_filter(x)

w1=0.4*pi; w2=0.7*pi;

wn=[w1 w2];

wdelta=w2-w1;

M=ceil(3.32*pi/wdelta);

N=2*M+1;

win=hamming(N);

b=fir1(N-1,wn/pi,'bandpass',win);    

y=filter(b,1,x);

%%%%%%%%%%%(3)高通FIR滤波器%%%%%%%%%%%%%%%

function [y,b]=highpass_fir_filter(x)

wp=0.6*pi; ws=0.9*pi;

wdelta=ws-wp;

M=ceil(3.32*pi/wdelta);

N=2*M+1;

wc=(ws+wp)/2;

win=hamming(N);

b=fir1(N-1,wc/pi,'high',win);    

y=filter(b,1,x);

%%%%%%%%%%%%%%(4)低通IIR滤波器%%%%%%%%%%%%%%

function [y,bz,az]=lowpass_iir_filter(x)

rp=1; rs=15; wp=0.25*pi;  ws=0.4*pi;

wap=tan(wp/2); was=tan(ws/2);

[n,wn]=buttord(wap,was,rp,rs,'s') ;

[z,p,k]=buttap(n);

[bp,ap]=zp2tf(z,p,k);        

[bs,as]=lp2lp(bp,ap,wap);

[bz,az]=bilinear(bs,as,1/2);

y=filter(bz,az,x);

%%%%%%%%%%%%%(5)带通IIR滤波器%%%%%%%%%%%%%%%

function [y,bz,az]=bandpass_iir_filter(x)

rp=1; rs=15;

wp=0.35*pi;  ws=0.65*pi; 

wap=tan(wp/2); was=tan(ws/2);

[n,wn]=buttord(wap,was,rp,rs,'s') ;

[z,p,k]=buttap(n);

[bp,ap]=zp2tf(z,p,k);            

[bs,as]=lp2bp(bp,ap,1,0.5);

[bz,az]=bilinear(bs,as,1/2);

y=filter(bz,az,x);

%%%%%%%%%%%(6)高通IIR滤波器%%%%%%%%%%%%

function [y,bz,az]=highpass_iir_filter(x)

rp=1; rs=15;

wp=0.7*pi;  ws=0.85*pi; 

wap=tan(wp/2); was=tan(ws/2);

[n,wn]=buttord(wap,was,rp,rs,'s') ;

[z,p,k]=buttap(n);

[bp,ap]=zp2tf(z,p,k);            

[bs,as]=lp2hp(bp,ap,wap); %????? 

[bz,az]=bilinear(bs,as,1/2);

y=filter(bz,az,x);

%%%一、频谱分析:

load('C:/MATLAB6p5\work\x.mat')

n=0:99;

x_dft=fft(x);

[x_dtft w]=freqz(x);

figure (1);

subplot(2,2,1);

stem(n,x); title('x');

subplot(2,2,2);stem(n,abs(x_dft));

title('dft of x'); grid on;

axis([0 50 0 150]);

subplot(2,2,3); plot(w/pi,abs(x_dtft));

title('dtft(abs) of x');grid on;

subplot(2,2,4);plot(w/pi,unwrap(angle(x_dtft)));

title('dtft(angle) of x');grid on;

%%%二、用FIR滤波器进行滤波

[y_low b_low]=lowpass_fir_filter(x);

[y_band b_band]=bandpass_fir_filter(x);

[y_high b_high]=highpass_fir_filter(x);

[hh_low ww_low]=freqz(b_low,1,512);

[hh_band ww_band]=freqz(b_band,1,512);

[hh_high ww_high]=freqz(b_high,1,512);

[h_low w_low]=freqz(y_low);

[h_band w_band]=freqz(y_band);

[h_high w_high]=freqz(y_high);

figure (2);

subplot(3,3,1); plot(ww_low/pi,20*log10(abs(hh_low)));

xlabel('Frequency(Hz)'); ylabel('(dB)');

title('Magnitude Response');grid on;

subplot(3,3,2);stem(n,y_low);

title('after FIR lowpass filter'); grid on;

axis([0 50 -5 5]);

subplot(3,3,3); plot(w_low/pi,abs(h_low));

title('Magnitude Response');  grid on;

subplot(3,3,4); plot(ww_band/pi,20*log10(abs(hh_band)));

xlabel('Frequency(Hz)'); ylabel('(dB)');

title('Magnitude Response');  grid on;

subplot(3,3,5); stem(n,y_band);

title('after FIR bandpass filter'); grid on;

axis([0 50 -5 5]);

subplot(3,3,6); plot(w_band/pi,abs(h_band));

title('Magnitude Response');  grid on;

subplot(3,3,7); plot(ww_high/pi,20*log10(abs(hh_high)));

xlabel('Frequency(Hz)'); ylabel('(dB)');

title('Magnitude Response'); grid on;

subplot(3,3,8); stem(n,y_high);

title('after FIR highpass filter'); grid on;

axis([0 50 -5 5]);

subplot(3,3,9); plot(w_high/pi,abs(h_high));

title('Magnitude Response');  grid on;

%%%三、用IIR滤波器进行滤波

[y_low bz_low az_low]=lowpass_iir_filter(x);

[y_band bz_band az_band]=bandpass_iir_filter(x);

[y_high bz_high az_high]=highpass_iir_filter(x);

[hh_low ww_low]=freqz(bz_low,az_low,256,1);

[hh_band ww_band]=freqz(bz_band,az_band,256,1);

[hh_high ww_high]=freqz(bz_high,az_high,256,1);

[h_low w_low]=freqz(y_low);

[h_band w_band]=freqz(y_band);

[h_high w_high]=freqz(y_high);

figure (3);

subplot(3,3,1); plot(ww_low,abs(hh_low));

xlabel('Frequency(Hz)');

title('Magnitude Response');  grid on;

subplot(3,3,2);stem(n,y_low);

title('after IIR lowpass filter'); grid on;

axis([0 50 -5 5]);

subplot(3,3,3); plot(w_low/pi,abs(h_low));

title('Magnitude Response'); grid on;

subplot(3,3,4); plot(ww_band,abs(hh_band));

xlabel('Frequency(Hz)');

title('Magnitude Response'); grid on;

subplot(3,3,5); stem(n,y_band);

title('after IIR bandpass filter'); grid on;

axis([0 50 -5 5]);

subplot(3,3,6); plot(w_band/pi,abs(h_band));

title('Magnitude Response'); grid on;

subplot(3,3,7); plot(ww_high,abs(hh_high));

xlabel('Frequency(Hz)');

title('Magnitude Response');  grid on;

subplot(3,3,8); stem(n,y_high);

title('after IIR highpass filter'); grid on;

axis([0 50 -5 5]);

subplot(3,3,9); plot(w_high/pi,abs(h_high));

title('Magnitude Response');  grid on;

小结

     从上面的IIR和FIR的滤波效果图可以看出,IIR的过滤效果比FIR的效果要好,也就是选择性较好,FIR出现了明显的群延时现象。

    原因是:

    IIR滤波器传输函数的零点可以在单位圆的任何地方,极点可以在单位圆内任何地方,因此可以用较低的阶数获得较高的选择性,但它是以相位的非线性为代价的。也就是选择性越好,相位非线性越严重。若要达到较为严格的线性要求,就要加全通网络进行相位矫正,但这时也是增大了滤波器的阶数和复杂度。

    而FIR滤波器可以得到严格的线性相位,但它的传输函数的零极点固定在了原点,所以只能要较高的阶数达到较高的选择性于是群延时也越严重。

   一开始我设计的FIR滤波器群延时非常严重,于是我就改变了截止频率的范围,使带宽变得窄一些,因为带宽和阶数成反比,于是增大了阶数,这样可以减小一定程度的群延时,但还是不能完全避免。

   综上,不论IIR和FIR,阶数越高,信号延迟越大;同时在IIR滤波器中,阶数越高,系数的精度要求越高,否则很容易造成有限字长的误差使极点移到单位园外。因此在阶数选择上,我们应该根据实际情况进行综合考虑的,设计符合要求和实际的滤波器。

 

第二篇:单片机综合实验报告

摘要

单片机应用技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。

此次试验设计主要以STC89C52RC单片机为核心,由系统开发板、74LS138译码器、8253计数器等元件构成跑马灯以及方波的相关试验。基于题目基本要求,首先我熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。然后根据系统要求设计电路图,编写汇编语句,购买试验器件,焊接试验电路。最后进行试验调试。通过自己不懈的努力,最终完成了试验。

   

实验一  构建单片机最小系统和实验环境熟悉.................................................................. 2

第一部分:实验要求........................................................................................................ 2

一、预习要求................................................................................................................... 2

二、实验目的................................................................................................................... 2

三、实验内容................................................................................................................... 2

3.1单片机最小系统实验................................................................................................... 2

第二部分:实验过程........................................................................................................ 2

一、单片机最小系统实验................................................................................................. 2

二、实验总结................................................................................................................... 4

通过这次实验让我们对单片机最小系统有了一个清晰的认识,为下面的试验打好了基础。实实验二  跑马灯实验及74HC138译码器............................................................................................................... 4

第一部分:实验要求........................................................................................................ 5

一、预习要求................................................................................................................... 5

二、实验目的................................................................................................................... 5

三、实验内容................................................................................................................... 5

3.1跑马灯实验:....................................................................................................... 5

3.2  74HC138译码器实验:...................................................................................... 5

第二部分:实验过程........................................................................................................ 5

一、通过74HC138译码器实现跑马灯............................................................................... 5

1.1  74HC138译码器介绍......................................................................................... 5

1.1.1  74HC138译码器引脚图............................................................................ 6

1.1.2  74HC138译码器真值表............................................................................ 6

1.2  74ls138跑马灯原理图........................................................................................ 7

1.3程序流程图.......................................................................................................... 7

1.4实验程序代码....................................................................................................... 8

三、调试结论................................................................................................................... 9

实验三   8253方波实验................................................................................................. 10

第一部分:实验要求....................................................................................................... 10

一、预习要求................................................................................................................. 10

二、实验目的................................................................................................................. 10

三、实验内容................................................................................................................. 10

第二部分:实验过程....................................................................................................... 10

一、8253芯片介绍......................................................................................................... 10

1.1  8253引脚图..................................................................................................... 10

1.2  8253工作方式.................................................................................................. 11

二、使用8253产生方波.................................................................................................. 12

2.1实验原理图........................................................................................................ 13

2.2程序流程图........................................................................................................ 13

2.3实验程序代码..................................................................................................... 14

三、调试结论................................................................................................................. 15

实验课程总结................................................................................................................. 16

参考文献........................................................................................................................ 16

实验一  构建单片机最小系统和实验环境熟悉

第一部分:实验要求

一、预习要求

1.构建单片机最小系统,熟悉51单片机的结构及编程方法。

2.按照程序流程图编写出程序。

二、实验目的

1.熟悉星单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。

2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。

三、实验内容

3.1单片机最小系统实验

1.熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的安装和使用方法。

2.做出单片机最小系统的组成原理图,分析其各构成单元的工作原理。

3.2存储单元数据传输实验

1.熟悉MCS51汇编指令。

2.进行存储单元数据传输实验,编写程序。

3.运行程序,验证译码的正确性。

第二部分:实验过程

一、单片机最小系统实验

一个基本的MCS-51单片机通常包括:中央处理器、ROM、RAM、定时/计数器和I/O口等各功能部件,各个功能由内部的总线连接起来,从而实现数据通信。单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成,单片机最小系统板的结构框图如图1-1所示:

图1-1  单片机最小系统板结构框图

1.2单片机最小系统板的原理图

单片机最小系统板的原理图如图1-2所示:

图1-2  单片机最小系统板的原理图

二、实验总结

本次实验是基础,主要是了解MCS51单片机的一个基本工作结构,了解其硬件结构及其原理。51系列单片机由运算器和控制器组成。运算器包括逻辑运算单元ALU、累加器ACC、寄存器B、寄存器TMP、程序状态字寄存器PSW、十进制调整电路等;定时器包括控制逻辑(时钟电路、复位电路)、指令寄存器等。

    通过这次实验让我们对单片机最小系统有了一个清晰的认识,为下面的试验打好了基础。
实验二  跑马灯实验及74HC138译码器

第一部分:实验要求

一、预习要求

1.熟悉51单片机的结构及编程方法。

2.按照程序流程图编写出程序。

二、实验目的

1.熟悉集成环境软件或熟悉Keil C51集成环境软件的使用方法。

2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。

三、实验内容

3.1跑马灯实验:

1、熟悉集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。

2、照接线图编写程序:使用P1口控制G6区的8个指示灯,循环点亮,瞬间只有一个灯亮。

3、观察实验结果,验证程序是否正确。

3.2  74HC138译码器实验:

1、设计74HC138接口电路,编写程序:使用单片机的P1.0、P1.1、P1.2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。

2、运行程序,验证译码的正确性。

第二部分:实验过程

一、通过74HC138译码器实现跑马灯

1.1  74HC138译码器介绍

    74LS138 为3线译码器其工作原理是当一个选通端(E1)为高电平,另两个选通端(E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A0A1A2=110时,则Y6输出端输出低电平信号。

1.1.1  74HC138译码器引脚图

未命名文件

从图可看出,74138有三个输入端:A0、A1、A2和八个输出端s0~s7。当输入端A0、A1、A2的编码为000时,译码器输出为s0=0,而s1~s7=1。即s0对应于A0、A1、A2为000状态,低电平有效。A0、A1、A2的另外7种组合见后面的真值表。

图中S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入羰输入为何值,每个输出端均为1。

1.1.2  74HC138译码器真值表

1.2  74ls138跑马灯原理图

1.3程序流程图

1.4实验程序代码

       ORG      0000H

              AJMP     main

              ORG       0080H       

              AA  EQU  P1.0

              BB  EQU  P1.1

              CC  EQU  P1.2          ;定义P1.0,P1.1,P1.2 分别为AA,BB,CC 以便在程序中描述

MAIN:

              CLR       CC                 ;CC清零    状态1 A,B,C为000

              CLR      BB                 ;BB清零

              CLR        AA                ;AA清零

              CALL     DELAY          ;调用延时

              CLR        CC                 ; CC清零       状态2 A,B,C 为001

              CLR        BB                 ;BB清零

              SETB     AA                ;AA赋值1

              CALL     DELAY        ;调用延时

              CLR       CC                 ;CC清零        状态3 A,B,C 为010

              SETB     BB                 ;BB赋值1

              CLR       AA                ;AA清零

              CALL     DELAY          ;调用延时

              CLR       CC                 ;CC清零    状态4 A,B,C为011

              SETB     BB                 ; BB赋值1

              SETB     AA                ; AA赋值1

              CALL     DELAY          ;调用延时

              SETB     CC                 ;CC赋值1    状态5 A,B,C为100

              CLR       BB                 ;BB清零

              CLR      AA                ; AA清零

              CALL     DELAY          ;调用延时

              SETB     CC                 ;CC赋值1    状态6 A,B,C为101

              CLR       BB                 ;BB清零

              SETB     AA                ;AA赋值1

              CALL     DELAY          ;调用延时

              SETB     CC                 ;CC赋值1    状态7 A,B,C为110

              SETB     BB                 ;BB赋值1

              CLR       AA                ; AA清零

              CALL     DELAY          ;调用延时

              SETB     CC                 ;CC赋值1    状态8 A,B,C为111

              SETB     BB                 ;BB赋值1

              SETB     AA                ;BB赋值1

              CALL     DELAY

              JMP       MAIN ;

DELAY:  MOV     R5,       #2           ;延时部分

Delay1:  MOV     R6,      #0

Delay2:  MOV     R7,       #0

        DJNZ      R7,  $

              DJNZ     R6,       Delay2

              DJNZ     R5,       Delay1

       RET

       END             

三、调试结论

    跑马灯实验是基础性实验,焊接时注意各个器件的引脚处,注意led灯的阴阳极,在焊接时要注意led灯的共阴和共阳连接。每一个器件都要尽量贴近印制板,最后,要用万用表测试一下,检查有没有短路的地方。编写程序相对简单,只是简单的初始定义、循环和延时。完成之后进行调试,达到试验要求。2

实验三   8253方波实验

第一部分:实验要求

一、预习要求

1.熟悉51单片机的结构及编程方法

2.按照要求画出流程图及程序

二、实验目的

了解8253的内部结构、工作原理;了解8253与单片机的接口逻辑;熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。

三、实验内容

1.设计接口电路,编写程序:使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。

2.连接线路,验证8253的功能,熟悉它的使用方法。

第二部分:实验过程

一、8253芯片介绍

1.1  8253引脚图

8253引脚图

1.2  8253工作方式

8253共有六种工作方式:计数结束中断方式、可编程单稳态输出方式、比率发生器、方波发生器、软件触发选通、硬件触发选通

(1)工作方式0:

工作方式0被称为计数结束中断方式。

当任一通道被定义为工作方式0时, OUT输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值使WR有效时,OUT仍保持低电平,之后的下一时钟周期下降沿计数器开始减“1”计数, 直到计数值为“0”,此刻OUT将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT端输出的高电平一直维持到下次再写入计数值为止。

(2)工作方式1:

工作方式1被称作可编程单稳态输出方式。

进入这种工作方式, CPU装入计数值n后OUT输出高电平, 不管此时的GATE输入是高电平还是低电平, 都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。与此同时,OUT输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”, OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿, 因此,由方式l所能输出单脉冲的宽度为CLK周期的n倍。

(3)工作方式2:

工作方式2被称作比率发生器。

进入这种工作方式, OUT输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUT保持为高电平不变; 待计数值减到“1”和“0”之间, OUT将输出宽度为一个CLK周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUT将输出一定频率的负脉冲序列, 其脉冲宽度固定为一个CLK周期, 重复周期为CLK周期的n倍。

(4)工作方式3:

工作方式3被称作方波发生器。

任一通道工作在方式3, 只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。

进入工作方式3,OUT输出低电平, 装入计数值后,OUT立即跳变为高电平。如果当GATE为高电平, 则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUT端输出的周期为n×CLKi周期,占空比为1:1的方波序列; 若n为奇数, 则OUTi端输出周期为n×CLK周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。

(5)工作方式4:

工作方式4被称作软件触发选通。

进入工作方式4,OUT输出高电平。 装入计数值n后, 如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUT输出宽度为一个CLKi周期的负脉冲。由软件装入的计数值只有一次有效,如果要继续操作, 必须重新置入计数初值n。如果在操作的过程中,GATE变为无效,则停止减“1”计数, 到GATE再次有效时,重新从初值开始减“1”计数。

(6)工作方式5:

工作方式5被称为硬件触发选通式。

进入工作方式5, OUT输出高电平, 硬件触发信号由GATE端引入。 因此,开始时GATE应输入为0, 装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GATE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”, OUT将输出负脉冲,其宽度固定为一个CLK周期,表示定时时间到或计数次数到。

二、使用8253产生方波

2.1实验原理图

2.2程序流程图

2.3实验程序代码

ORG           0000H

              LJMP             START

              ORG              0100H

START:  

              MOV      A, #00110101B   ;计数器0,先读低位,再读高位,方式2,BCD计数

              MOV      DPTR,  #03FFH  ;送控制字到寄存器

              MOVX    @DPTR,      A            ;累加器内容送外部寄存器

              MOV      A, #00H             ;写计数器0初值,低8位

              MOV      DPTR,  #00FFH 

              MOVX    @DPTR,      A

              MOV      A, #10H              ;写计数器0初值,高8位

              MOVX    @DPTR,      A

              MOV      A, #01110111B    ;计数器1先写低字节,再写高字节,方式3,BCD计数

              MOV      DPTR,  #03FFH

              MOVX    @DPTR,      A            ;A内容送外部寄存器

              MOV      A, #00H

              MOV      DPTR,  #01FFH

              MOVX    @DPTR,      A

              MOV      A, #20H             ;计时器初值为2000,先写低字节,再写高字节

              MOVX    @DPTR,      A 

              ACALL   Delay5                ;调用延时

Delay5:

              MOV      R5,       #100              ;延时

Del1:      MOV      R6,       #100

Del2:      MOV      R7,       #200

Del3:      DJNZ      R7,       Del3             ;不为0,,跳转,R7ßR7-1

              DJNZ      R6,       Del2            ;不为0跳转,R6ßR6-1

              DJNZ      R5,       Del1

              RET

END

三、调试结论

本次实验是最后一个实验,我在Proteus中仿真的时候能产生方波,由于没有用到蜂鸣器,故利用指示灯的亮灭来反应方波发生器的成功实现,本次实验能成功实现指示灯的亮灭。即试验完成成功。

 


实验课程总结

经过多天的努力,终于完成了此次试验,按要求设计出了跑马灯和产生了方波。经过这次的实践,也可以说是经过了多天的学习,尽管期间苦难重重,遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处但我们还是从中学习了不少新的知识和解决困难的方法,也体验到了自主创作的快乐。

实验是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

这次实验虽然很不容易,但还是顺利完成了,在设计中遇到了很多编程问题,最后在同学的帮助和老师的辛勤指导下,终于解决了。同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

参考文献

【1】单片机原理及接口技术   余锡存 曹国华编  西安电子科技大学出版社

【2】微机原理余接口技术   周何琴 吴秀清编  中国科技大学出版社

相关推荐