微机原理课程设计频率计

  • 格式:doc
  • 大小:143.50 KB
  • 文档页数:18

实验题目:频率计

1.设计目的

通过数字频率计的设计,使同学们进一步掌握:

(1) 8086/8088汇编语言程序的设计和调试;

(2) 信号频率的数字测量方法;

(3) 定时计数器8253的基本工作原理和应用;

(4) 微机基本应用系统的设计方法;

2、实验设备

1.计算机一台;

2.Dais—958H+(80X88、8253、8259、数码管);

3.基本TTL电路芯片若干(74LS138);

4. 导线若干;

辅助设备:

示波器、函数发生器(最低要求为方波发生器);

3.设计功能要求

用微机原理实验装置,设计并实现一个信号频率测试系统,要求频率测量范围不小于5Hz~50kHz,并将测得的频率显示在LED数码显示器上。

分析: 1.利用8088,8253,8259等芯片实现测量程序的功能;

2.测量的二进制数值转化成十进制,并且显示在数码管上;

3.误差不可以大于1Hz;

4.用函数发生器测试实验的结果;

提升要求:达到课设要求后,试着扩大测量范围,使其精确到0.1Hz~65kHz;

4.设计提示

1.频率测量方法

频率测量方法有M法,T法,M/T法,测量的基本要求是快速准确。

(1) M法:测量计数在一定时间Tc内的信号脉冲数M。譬如,Tc=1秒,计数值M=1200,则信号频率为1200Hz; Tc=0.1秒,计数值M=1200,则信号频率为12000Hz。显然,M法适用于高频信号的测量。

(2) T法:测量一个完整脉冲的周期T,则此周期T的倒数就是待测频率。譬如,测得T=0.1ms,则信号频率为10000Hz。显然,T适用于低频信号测量。

(3) M/T法:测量在一定时间Tc左右M个整数脉冲的完整周期T,则待测信号频率为M/T。首先给定一个基本时间Tc,利用计数器测得Tc内的脉冲个数,设为M。但是,一般情况下,在Tc结束时刻并不严格的与第M个脉冲结束时刻(即第M+1个脉冲上升沿时刻)相对应,因此,利用定时器测量出Tc结束时刻到第M个脉冲结束时刻的时间ΔT,则T=Tc+ΔT,于是可求频率。

2.频率测量参考方案

设采用M法,定时时间T=1秒,则计数值即为待测频率。设频率计的测量频率范围为1Hz~65535Hz,则设计方案如下:利用8253CT0和CT1级联作一秒定时器,利用8253CT2作待测信号脉冲计数器,在定时开始之时也开启计数器,在一秒定时到之时关闭计数器并读取计数值,此计数值即为频率。

参考程序流程如下:

8253初始化

置CT2计数初值

置CT1定时初值

置CT2定时初值

一秒定时到?

读CT2计数值并显示

测量结束?

END 5.方案设计及其说明

5.1硬件电路设计

硬件线路部分主要采用了几个学过的芯片,即8088,8253,8259,74LS138。其工作过程如下:

利用8253芯片的CT1定时/计数器的OUT1端和CT0定时/计数器的CLK0端级联计时,CT2定时/计数器的CLK2端接收待测信号进行计数,OUTO端口将计时信号输出到8259芯片的IR7口产生中断。中断产生后,从CT2中读出计数值转化成频率值由数码管显示。

若CLK2接收到的为高频率的脉冲,令计时为1s,即每秒产生一次中断,即OUT1生成10ms的方波,OUT0出来的是1s的方波。利用M法可以知道,在下一个1s到来的时候可以测出1s经过的CLK2的基本脉冲数为M,则被测频率f=M,此时将M转换为十进制显示在数码管上即可。

若CLK2接收到的是低频率的脉冲,此时若计时仍为1s,则用M法无法测量,所以改设定中断时间为10s,即OUT1生成的依旧是10ms的方波,OUT0生成10s方波脉冲。在下一个中断来临时,记下CLK2经过的脉冲数M个,所测的频率为:f=M/10,转换为十进制显示在数码管上。

5.1.1计时部分

8253的CT0和CT1级联产生出1秒的方波。基准时钟信号是CT1的CLK1自带的内部晶振1.8432MHZ。CT1写入初值18432,令OUT1输出10ms的方波信号再输入给CLKO。当待测信号为高频时,CT0写初值100从OUT0输出1s的脉冲时钟信号;当待测信号为低频时,修改CT0的初值为1000令其输出10s的脉冲信号。

控制字如下:

CTO:

0 0 1 1 0 1 1 0

计数器0 从低到高读写 工作方式3

二进制

CT1:

0

1

1 1 0 1 1 0

计数器1 从低到高读写 工作方式3 二进制

5.1.2计数部分

用8253的CT2产生计数。CLK2是待测信号脉冲的输入端。OUT2悬空不接线。初值定为65535,即从65535开始,每一个脉冲周期自减一。

控制字如下:

CT2:

1 0 1 1 0 0 0 0

计数器2 从低到高读写 工作方式0

二进制 5.1.3片选寻址部分

实验中用了8253和8259两片芯片。故需要进行地址的片选。

8259的地址是FFE0H~ FFE3H。对应的各地址线如下:

A19~A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 地址

1…1 1 1 1 1 0 0 0 0 0 FFE0H

1…1 1 1 1 1 0 0 0 0 1 FFE1H

1…1 1 1 1 1 0 0 0 1 0 FFE2H

1…1 1 1 1 1 0 0 0 1 1 FFE3H

对应的片选接74LS138的Y0口

8253的地址是FFF8H~ FFFBH。对应的各地址线如下:

A19~A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 地址

1…1 1 1 1 1 1 1 0 0 0 FFF8H

1…1 1 1 1 1 1 1 0 0 1 FFF9H

1…1 1 1 1 1 1 1 0 1 0 FFFAH

1…1 1 1 1 1 1 1 0 1 1 FFFBH

对应的片选接74LS138的Y6口

5.1.4中断部分

将8253的OUT0的计时信号给8259的IR7口产生中断。写入控制字令接收到上升沿产生中断。通过实验箱的内部已接好的输出电路给数码管显示。

5.1.5硬件线路图

D0-D7

A1

A0

A2

A3

A4

D0-D7 GATE1

CLK1

OUT1

A1

A0 CLK0

GATE0

OUT0

CLK2

CS

OUT2

GATE2

A

B Y6

C Y0

CS

IR7 数码管显示 待测信号 +5V

+5V

+5V 基频

1.8432MHz

8088 8253

8259 74LS138 T

T1=18432T

T2=100T1

T2=1000T1

每10s上升沿产生中断 每1s上升沿产生中断

每次中断之内经过的脉冲个数M,则被测频率F=M

5.1.6操作时序图

CLK1:

(时基信号)

OUT1:

(10ms方波 )

OUT0:

(1S方波)

OUT0:

(10S方波)

INTR1:

(1S中断)

INTR2:

(10S中断)

CLK2:

(被测信号)

5.2软件电路设计

项目作品的软件部分共划分为如下几个模块:

1. 8253芯片定时模块

2. 8253芯片计数模块

3. 8259芯片中断模块

4. 显示模块

5.2.1软件流程图

原程序: