1绪论
1.1研究背景及主要研究意义
频率是电子技术领域永恒的话题,电子技术领域离不开频率,一旦离开频率,电子技术的发展是不可想象的,为了得到性能更好的电子系统,科研人员在不断的研究频率,CPU就是用频率的高低来评价性能的好坏,可见,频率在电子系统中的重要性。
频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器,其最基本的工作原理为:当被测信号在特定的时间段T内的周期个数N时,则被测信号的频率f=N/T。电子计数器是一种基础测量仪器,到目前为止已有三十多年的发展历史。早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量电子计算机的技术水平,决定电子技术器价格高低的主要依据。目前这些技术日臻完善,成熟。应用现代技术可以轻松地将电子计数器的频率扩展到微波频段。
1。2数字频率计的发展现状
随着科学技术的发展,用户对电子计数器也提出了新的要求。对于低档产品要求使用操作方便,量程(足够)宽,可靠性高,价格低。而对中高档产品,则要求有较高的分辨率,高精度,高稳定度,高测量速率;除通常通用计数器所具有的功能外,还要有数据处理功能,统计分析功能等等,或者包含电压测量等其他功能。这些要求有的已经实现或者部分实现,但要真正地实现这些目标,对于生产厂家来说,还有许多工作要做,而不是表面看来似乎发展到头了。
由于微电子技术和计算机技术的发展,频率计都在不断地进步着,灵敏度不断提高,频率范围不断扩大,功能不断增加。在测试通讯、微波器件或产品时,通常都市较复杂的信号,如含有复杂频率成分、调制的含有未知频率分量的、频率固定的变化的、纯净的或叠加有干扰的等等.为了能正确的测量不同类型的信号,必须了解待测信号特性和各种频率测量仪器的性能。微波技术器一般使用类型频谱分析仪的分频或混频电路,另外还包含多个时间基准、合成器、中频放大器等。虽然所有的微波计数器都是用来完成技术任务的,但各自厂家都有各自的一套复杂计数器的设计、使得不同型号的技术其性能和价格会有所差别,比如说一些计数器可以测量脉冲参数,并提供类似与频率分析仪的屏幕显示,对这些功能具有不同功能不同规格的众多仪器,我们应该视测试需要正确的选择以达到最经济和最佳的应用效果。
1
电子计数器是其它数字化仪器的基础,在他的输入通道接入各种模—数变换器,再利用相应的换能器便制成各种数字化仪器。电子计数器的优点是测量精度高,量程宽、功能多、操作简单、测量速度快,直接显示数字,而且易于实现测量过程自动化,在工业生产和科学实验中得到广泛的应用.
频率计的主要实现方法有直接式、锁相式、直接数字式和混合式四种。直接式的优点是速度快、相位噪声低但结构复杂、杂散多,一般只应用在地面雷达中。锁相式和直接数字式都同时具有容易实现产品系列化、小型化、模块化和工程化的特点,其中锁相式更是以其容易实现相位同步的的自动控制且低功耗的特点成为各种众多业内人士的首选,应用最为广泛.
1。3本课题主要研究内容
在本次设计中我们要以单片机8051为控制核心,设计出有数字显示的简易频率计,同时要求检测的电路,测量信号类型为方波、正弦波,测量范围为0.5—5V,测量频率为1HZ-1MHZ,测量误差≤0.1﹪,且有一个六位系统显示电路,能循环显示测量值。
2
2方案论证
2。1数字频率计测量方法的论证及选择
1。 直接测量法
直接测量法:无需利用被测量与其他实测量之间的函数关系进行额外计算,就可直接得到被测量的值的测量方法。
依据基本原理所实现的频率、周期以及脉冲宽度的数字化测量是一种直接测量法,由于该方案比较简单,若能够满足本题任务的要求则应作为首选方案。通过对测频、测周期以及测脉冲宽度的数字化测量方法的基本原理及其测量误差的分析,得知在被测信号的整个频率范围内,无论采用直接测频或直接测周期的方法均不能全面满足测试误差≤0。1%的要求。
2。间接测量法:
间接测量法:通过对与被测量有已知关系的其他量进行直接测量,来确定被测量的值的测量方法。在实际应运中采用直接和间接测量相结合的测量方法能使任务书提出的误差要求得到满足。
kTST0中界频率: fm = = 1TST0k1 当 fx≥ fm时, 直接测频, 间接测周; 当 fx≤ fm时, 直接测周, 间接测频 3。多周期同步测量法
多周期同步测频法,此法的优点是,闸门时间与被测信号同步,消除了对被测信号计数产生的±1个字误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。
根据任务书要求,因此采用上述(2)、(3)方案都能实现频率的测量。但是本论文设计的是一个用单片机做为电路控制系统的数字式频率计,采用(2)方案,操作麻烦,控制电路较复杂;采用(3)方案多周期同步测频法,闸门时间与被测信号同步,消除了对被测信号计数产生的±1误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。因此,本次设计采用多周期同步测量法。
在采用多周期同步等精度测量法的情况下,按照自顶向下的设计方法,可画出该频率计的系统框图。如图2-1所示.
3
图2-1 频率计的系统级框图 图2—1 频率计的系统框图
本设计任务书要求主要以单片机8051为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
2.2方案论证与选择
方案一:
主要由四个部分组成:信号整形部分、单片机控制部分、时基电路部分、数据锁存部分、和数据显示部分。整体框图如图2-2所示。
图2—2 方案一系统结构框图
时基电路部显示部信号整形部分 数据锁存部分 单片机部方案一基本流程:待测信号进入系统,信号整形部分会将其整形成脉冲,另一方面,时基电路提供标准的时基脉冲,在其上升沿达到1s时结束计数。而在这1秒内测得的整形后的脉冲频率就是待测信号的频率.之后单片机送数据锁存,并等待命令,若继续测量则返回测量,此时仍可将数据送显示,若无继续测量命令则,直接送数据显示.
4
方案一优缺点:这个方案的设计关键是555定时器构成的多谐振荡器是否能够提供标准的脉冲。实际上,在现实中是很难做到精确1s的.因此,如果这点把握不好将直接影响最后的精度。较为合理的解决办法是,做实物时可以选择其电容电阻的参数设定,用示波器先进行测量,直到取得较为满意的结果。还有一个问题就是在测量某一段频率时很有可能会出现偏差,如果它在某一段内都出现相同差值的偏差,我们可以进行人为的补偿,这样可以最大限度提高精确度。
方案二:
方案二由五个部分组成:信号整形部分、分频处理部分、数据选择部分、单片机部分和数据显示部分。整体框图如图2-3所示。
数据选择部信号整形部显示部分 分 分 分频处理部分 单片机部分
图2-3 方案二结构框图
方案二工作流程:待测信号进入系统,信号整形部分会将其整形成脉冲,经过分频器.分频器出来得到两个信号,一个给选择器,一个给单片机,数据选择器处理过后也将信号给单片机经过处理、运算,最后将数据送给显示部分,以用户需要的形式显示出来.
方案二优缺点:是利用了分频器应对大量程的测量,相比于方案一它的优势是,如果待测频率不大的话,是不用进行分频的,即直接测量。这样就不存在方案一当中遇到的问题。但是方案二也有它的缺点,就是当待测频率较大时要进行分频,这样做是对原频率的破坏,很可能会出现较大的偏差。
方案比较:这两种方案各有其优缺点,虽然在理想状态下两种方案都是可行的,但是,在本次设计中考虑到在目前的实验条件下难以使用555定时器做到较为精准的1s计时,而且在测量小频率时,方案二可以避免破坏原频率而得到较准确的数据,本设计初衷也是通用型的,简单实用符合要求就好,不必要的尽量省去,通过慎重考虑最终还是采用了方案二。
通过方案二与多周期同步测量方法相结合可画出该频率计的子系统级总体框图如图2-4所示.该框图可分为三个子系统:
5
(1)输入通道(最左边),该子系统主要由模拟电路组成;
(2)多周期同步等精度频率、周期、时间等的测量控制及功能切换逻辑(中间部分),该子系统基本上由数字硬件电路组成。 (3)单片机及其外围部件(最右边)。
图2-4 频率计的子系统级总体框图
6
3硬件电路的设计
3.1 数字频率计硬件系统框图
数字频率计硬件系统框图如图3-1所示。
输入通道 功能切换逻辑 闸门A 分频器 ROMT0 8051 外扩8155键 盘 显示 闸门B 图3-1频率计电路 3.2 8051单片机的简介
单片机是70年代中期发展起来的一种大规模集成电路芯片,包含CPU、RAM、ROM、I\\O接口和中断系统。80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型机种,现已逐渐成为工厂自动化和各控制领域的支柱产业之一.8051单片机内部包含了作为微型计算机所必须的基本功能部件,各功能部件相互独立的集成在同一芯片上。8051系列的基本结构如下:
○,18位CPU
错误!4KB字节掩膜ROM程序存储器
7
○,3128字节内部RAM数据存储器
错误!两个16位定时\\计数器 错误!1个全双工的异步串行口
错误!5个中断源,两个中断优先级的中断控制器
○,7时钟电路,外接晶振和电容可产生1.2MHz~12 MHz的时钟频率
3.2.1 8051单片机的引脚及其功能
如图3-2所示,8051有四十条引脚,共分为端口线、电源线和控制线。
图3—2 8051的引脚
1.端口线(4×8)
错误!P0。0—P0.7P0口8位双向口线(在引脚的39-32号端子).
2P1.0—P1.7P1口8位双向口线(在引脚1—8号端子)○。
○,3P2.0—P2.7P2口8位双向口线(在引脚21—28号端子)。
错误!P3。0—P3.7P3口8位双向口线(在引脚10-17号端子).
这4个I/O口,具有不完全相同的功能。 P0口有三个功能
(1)外部扩展存储器时,当做数据总线(D0-D7为数据总线接口) (2)外部扩展存储器时,当做地址总线(A0-A7为地址总线接口)
(3)不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
8
P1口只做I/O口使用,其内部有上拉电阻。 P2口有两个功能:
(1)扩展外部存储器时,当做地址总线使用。 (2)做一般I/O口使用,其内部有上拉电阻。
P3口有两个功能,除作为I/O口使用外(其内部有上拉电阻),还有一些特殊功能,由特殊功能寄存器来设置,上拉电阻当做输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口作为输入时,处在高阻抗状态,只有外接一个上拉电阻才有效。 2.电源
VCC 为芯片电源,接+5V;VSS为接地线。 ⒊ 控制线:控制线共有4根
(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲
① ALE功能:用来锁存P0口送出的低8位地址
② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 (2)PSEN:外ROM读选通信号. (3)RST/VPD:复位/备用电源
① RST(Reset)功能:复位信号输入端。 ② VPD功能:在Vcc掉电情况下,接备用电源。 (4)EA/Vpp:内外ROM选择/片内EPROM编程电源。 ① EA功能:内外ROM选择端.
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp.
3.2。2定时
8051有两个16位可编程的定时器\\计数器,即定时器\\计数器T0和定时器\\计数器T1.它们有两位工作模式(计数器模式和定时器模式)及4种工作方式。其控制字均在相应的特殊功能寄存器中(定时器\\计数器方式控制寄存器TMOD、定时器\\计数器控制寄存器)
定时器\\计数器的作用一是做定时器用,可精确的确定某一段时间间隔;二是作为计数器用,累计外部输入的脉冲个数。当用做定时器时,在其输入端输入周期固定的脉冲,根据定时器\\计数器中累积的脉冲个数,即可计算出所定的时间常数.
9
当定时器\\计数器被设定为定时器模式时,计数输入信号是由内部时钟脉冲的12分频产生,计数输入脉冲的周期与机器周期相同,每个机器周期产生一个脉冲使计数器加1.当定时器\\计数器用作计数器时计数脉冲来自外部输入引脚T1或T0。当输入信号产生由1至0的下跳变时,计数器的值增1
定时器和计数器的区别:
定时器本质上也是一种计数器,只不过定时器的计数脉冲由内部时钟提供。在定时器模式工作时,每个机器周期计数加1,因此计数速率固定为振荡频率的1/12。正是由于计数的速率固定时间间隔易于计算,所以用来定时。而计数器指的是对外部输入脉冲的计数,因而速率一般不是固定的,不能用于定时。只能数输入脉冲的个数。8051的定时器方式控制寄存器地址89H,不可位寻址。如表3—1所示,TMOD寄存器中高4位定义T1,低4位定义T0,其中M1,M0用来确定所选工作方式。TMOD寄存器中各位的功能如表3—2所示。 表3—1 TMOD构成
位序 位符号
定时/计数器T1 定时/计数器T0
B7 GATE B6 C/T B5 M1 B4 M0 B3 GATE B2 C/T B1 M1 B0 M0 TMOD由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器.当GATE=0时,只要TCON中的TR0为1,13位计数器就开始计;当GATE=1以及TR0=1时,13位计数器是否计数取决于INT0引脚信号,当INT0由0变1时开始计数,当INT0由1变为0时停止计数。
当13位计数器溢出时,TCON的TF0位就由硬件置1,同时将计数器清\"0\"。 当方式0为定时工作方式时,定时时间计算公式为: (2 -计数初值X)×晶振周期×12
当方式0为计数工作方式时,计数值的范围是:1-2(8192).
表3—2 TMOD控制位功能
符 号 功能说明 门控位 GATE=0,用运行控制位TR0(TR1)启动定时器。 10
13
13
GATE C/T GATE=1,用外中断请求信号输入端(INT1或INT0)和TR0(TR1)共同启动定时器。 定时方式或计数方式选择位. C/T =0,定时工作方式. C/T =1,计数工作方式。 M1 M0 工作方式选择位。 M1 M0=00 方式0,13位计数器。 M1 M0=01 方式1,16位计数器。 M1 M0=10 方式2,具有自动再装入的8位计数器. M1 M0=11 方式3,定时器0分成两个8位计数器,定时器1停止计数。 3.2.3中断
中断:是当CPU正在处理某件事的时候,外界发生了紧急事件请求,要求CPU暂停当前的工作转而去处理这个紧急事件,处理完以后再回到原来被中断的地方继续原来的工作,这样的过程称为中断,实现中断功能的部件,统称为中断系统。
中断源:是指引起中断原因的设备或部件,或发生中断请求信号的源泉。通常中断源有以下几种错误!外部设备中断源错误!控制对象中断源错误!故障中断源错误!定时脉冲。中断的分类:中断按照功能通常可分为可屏蔽、非屏蔽和软件中断三类
中断嵌套: 一个CPU总会有若干中断源,可以接受若干中断源发出的中断请求,但在同一瞬间,CPU只能响应中断源中的一个中断请求,CPU为了避免在同一瞬间因响应若干中断源的请求而带来的混乱,必须给每个中断源的只能挂断请求赋一个特定的中断优先级,以便CPU先响应中断优先级高地中断请求,然后再一次响应中断优先级.
中断过程:中断过程一般包括中断请求、中断响应、中断处理、中断返回四个过程.
错误!中断请求
中断过程是由中断源向CPU发出中断请求而开始的,有效中断请求信号应该一直保持到CPU做出响应为止.
错误!中断响应
CPU检测到中断请求信号后,在满足一定条件的情况下进行响应。
错误!中断处理
11
中断处理称为中断服务,就是执行中断源所要求的中断服务程序. ○,4中断返回
3。3存储器
在微机系统中凡能存储程序和数据的部件统称为存储器。构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码.由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。一个存储器包含许多存储单元,每个存储单元可存放一个字节(按字节编址)。每个存储单元的位置都有一个编号,即地址,一般用十六进制表示。一个存储器中所有存储单元可存放数据的总和称为它的存储容量。假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每个存储单元存放一个字节,则该存储器的存储容量为1MB.
存储器的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。 存储器是具有“记忆\"功能的设备,它采用具有两种稳定状态的物理器件来存储信息.这些器件也称为记忆元件。在计算机中采用只有两个数码“0”和“1”的二进制来表示数据。记忆元件的两种稳定状态分别表示为“0\"和“1\".日常使用的十进制数必须转换成等值的二进制数才能存入存储器中。计算机中处理的各种字符,例如英文字母、运算符号等,也要转换成二进制代码才能存储和操作。
按存储介质分为半导体存储器、磁表面存储器.按存储方式分为随机存储器、顺序存储器. 按存储器的读写功能分为只读存储器(ROM)、随机读写存储器(RAM).按信息的可保存性分为非永久记忆的存储器、永久记忆性存储器。按存储器用途分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。
3。3.1外扩ROM(2764)存储器
在本次设计中,我们用的外扩存储器为Intel 2764(UVEPROM), Intel 2764是一种
+5V的8KB UVEPROM存储器芯片,采用HMOS工艺制成,标准存储时间为250ms,27是系列号,64和存储容量有关。2764的引脚如图3-3所示。
12
图3-3 2764的引脚
(1)其引脚总共有28条,具体功能为:
1地址输入线A12~A0.2764的存储容量为8KB,○故按照地址线条数和存储容量的关系
(213=8192),共需13条地址线,编号为A12~A0。2764的地址线应和8051单片机的P2 和P0口相接,用于传送单片机送来的地址编码信号,其中A12为最高位。
错误!数据线O7~O0。O7~O0是双向数据总线,O7为最高位。在正常工作时,O7~O0
用于传送从2764中读出的数据或程序代码;在编程方式时用于传送需要写入的编程代码.
3控制线(3条) ○
片选输入线CE:该输入线用于控制本芯片是否工作。若给CE上加一个高电平,则,本片不工作;若给CE上加一个低电平,则选中本片工作.
变成输入线PGM:该输入线用于控制2764处于正常工作状态还是编程\\校验状态.如给他输入一个TTL高电平,则2764处于正常工作状态;如给PGM输入一个50MS宽的负脉冲,则2764配合VPP引脚上的21V高压可以处于编程状态。
允许输出线OE:OE也是一条由用户控制的输入线,若给OE线上输入一个TTL高电平,则数据线O7~O0处于高阻状态;若给OE线上输入一个TTL低电平,则O7~O0处于读出状态。
错误!其他引脚线(4条)。VCC为+5v±10%电源输入线,GND为直流电源线。VPP为编
程电源输入线,当他接+5V时,2764处于正常工作状态;当VPP接21V电压时,2764处于编程\\校验状态.NC为2764的空线。 (2)擦除特性
2764存储阵列中的信息可以采用紫外光擦除,擦除后存储的代码为全“1”。2764在擦除时应先取下芯片中央小窗口上的贴纸,然后用光源波长为2537埃和强度为1200μW/cm2的紫外光照射,照射时间为15-20min。这实际上就是使FAMOS管浮置栅中的电子获
13
得高能量,从而形成高电流从浮置栅流入基片。2764中的信息擦除也不是很容易的,把2764放在阳光下暴晒大约需要一星期才会擦干净,在普通荧光灯下需要三年才会擦除。 (3)工作方式和编程
2764可以分为正常和编程两种工作方式。正常工作方式是指2764在它所应用系统中的工作方式,常分为读出和维持两种工作状态;编程方式是指给2764写入程序的工作方式,又可分为编程、禁止编程和校验三种工作状态。
总之,2764共有两种工作方式和5种工作状态,究竟处在哪一种方式和工作是由2764的控制线和电源线上的信号决定的。
3.3.2 ROM和51的连接
8031外接2764连接图如图3-4。由于2764存储容量为8KB,故8031片内地址线为
P2.4~P2.0和P0.7~P0。0共十三条。片选地址线共三条,其中P2。5直接与2764的CE相接,P2.7和P2.6 悬空.PSEN与2764的OE相接,以便8031执行MOVC指令是产生低电平而选中2764工作。
图3—4 8031外接2764连接图
3。4 8155简介
8155也是Inter公司研制的通用I/O接口芯片.它是一个有40引脚的塑料芯片,功能较强,广泛应用与计算机中。它有两个8位口A、B和C。总共可以扩展22条接线.
14
它含有一个可预置的计数器,计数范围从2到16383,可用于延时、计数或分频。它内部含有256字节的RAM,可以补充CPU内存的不足。为了能够设置芯片的工作方式和了解芯片的状态,内部含有命令寄存器和状态寄存器。
3.4。1 8155内部结构和功能引脚
8155内部结构框图如图3—5所示。8155共有七部分电路组成,它们是:双向数据总线缓冲器、地址锁存器、地址译码器和读写控制器、RAM、I/O寄存器、命令寄存器和状态寄存器以及定时器/计数器。现对各部分电路分述如下。
错误!双向数据总线缓冲器:该缓冲器是8位的,用于传送CPU对RAM存储器的读写数
据。
2地址锁存器:共有8位,用于锁存CPU送来的RAM单元地址和端口地址。 ○
错误!地址译码器和读写控制器:地址译码器的3位地址由地址锁存器输出端送来,译
码后可以选中命令/状态寄存器、定时器/计数器和A、B、C三个I/O寄存器中的某一个工作。读写控制器接收RD和WR线上的信息,实现对CPU和8155间所传信息的控制。 双向数据总线缓冲器 地 址 锁 存 器 地址译码器 读写 控制 器 (8) 命令寄存 器 状态寄 定时存器 或计(8) 数器 (16) 15 RAM存储器 I/O寄存器(A口) I/O寄存器(C口) I/O寄存器(B口)
图3-5 8155内部结构框图 错误!RAM:容量为256B,主要用于存放实时数据。存储器存储单元地址由地址锁存器输
出端送来。
错误!I/O寄存器:分为A、B和C三个端口。A口和B口的I/O寄存器为8位,既可以
存放外设的输出数据,也可以存放外设的输入数据;C口的I/O寄存器只有6位,用于存放I/O数据或命令/状态信息。8155在某一瞬时只能选中某个I/O寄存器工作,这由CPU送给8155的命令字决定。
错误!命令寄存器和状态寄存器:均为8位寄存器。命令寄存器存放CPU送来的命令字,
状态寄存器存放8155的状态字.
错误!定时器/计数器:这是一个二进制14位的减1计数器,计数器初值由CPU通过程
序送来。定时器/计数器由T/IN输入线上的脉冲减1,每当计满溢出(回零)时可在T/OUT线上输出一个终止脉冲.
8155共有四十条引脚线,采用双列直插式封装。
(1)AD7-AD0(8条):AD7-AD0为地址/数据总线,常可与MCS—51的P0口相接,用于分时传送地址/数据信息。
(2)I/O总线(22条):PA7—PA0为通用I/O口线,用于传送A口上的外设数据,数据传送方向由8155命令字中D0口的状态决定(如图3—6)PB7-PB0为通用I/O口线,用于传送B口上的外设数据,数据传送方向也由8155命令字节中D1的状态决定。PC5-PC0为I/O数据/控制线,共有6条,在通用I/O方式下,用作传送I/O数据;在选通I/O方式下,用作传送命令/状态信息。
D7 D6 D5 D4 D3 D2 D1 D0 TM2 TM1 IEB IEA PC2 PC1 PB PA A口方式 B口方式 C口方式 0:输入 1:输出 00:ALT1 10:ALT3 01:ALT2 11:ALT4 16
A口 B口 0:禁止中断 1:允许中断 计数器方式 00:无操作 01:停止计数 10:计满后停止 11:开始计数
图3-6 8155命令字节格式
(3)控制总线(8条):RESET是8155总清输入线,在RESET线上输入一个大于600ns宽的正脉冲时,8155立即处于总清状态,A、B、C三口也定义为输入方式。
CE和IO/M:CE为8155片选输入线,若CE=0,则CPU选中本8155工作;否则本8155不工作。IO/M为I/O端口或RAM的选通输入线:若IO/M=0,则CPU选中8155的RAM工作;若IO/M=1,则CPU选中8155片内某一I/O寄存器工作.
RD和WR:RD是8155的读写命令输入线,WR为写命令线,当RD=0且WR=1时 8155处于读出数据状态;当RD=1且WR=0时,8155处于写入数据状态。
ALE:为允许地址输入线,高电平有效。若ALE=1,则8155允许AD7~AD0上地址锁存到“地址锁存器”;否则,8155的地址锁存器处于封锁状态.8155的ALE常与MCS—51的同名端相连。
T/IN和T/OUT:T/IN是计数器输入线,其上脉冲用于对8155片内14位计数器减1。T/OUT为计数器输入线,当14位计数器计满回零时就可以在该引线上输出脉冲波形,输出脉冲的形状和计数器的工作方式有关。
(4)电源线(2条):VCC为+5V电源输入线,VSS为接地线。
3.4。2 8155和51的连接
MCS-51和8155接口极为简单,因为8155内部包含有一个8位地址锁存器,故可以用来锁存CPU送来的端口地址和RAM(256B)地址。在MCS-51和8155的硬件连接中,所用地址译码的方法有全译码、部分译码和线选法3种。MCS—51和8155相连不仅可以为外设提供两个8位I/O端口(A口和B口)和一个6位I/O端口(C口),也可为CPU提供一个256B的RAM和一个14位定时器/计数器。 MCS—51和8155的接口如图3—7所示。
17
μFΩ图3-7 8155和8051的连接
图
因8155的AD0~AD7为三态双向的地址/数据总口线,内部有地址锁存器,故8155能直接和MCS—51的P0口(D0~D7)相连.图3—7是8155和MCS—51的一种接口逻辑。图中P2。7和P2.0分别接8155的CE和IO∕M所以8155的ROM地址为7E00H~7EFFH,命令状态寄存器为7F00H,PA口为7F01H,PB口为7F02H,PC口为7F03H,计数器低8位为7F04H,计数器高8位为7F05。
3.5键盘的设计及连接
键盘的结构有两大类,一类是独立式,一类是矩阵式.
键盘有许多键组成,每个键相当于一个机械开关触点,当按下键时,触点闭合,当键松开时,触点断开。独立式的键盘的每个键都有一根信号线与单片机电路相连,所有按键有一个公共地或公共正端,每个间相互独立互不影响。如图3-8所示当按下件键1时,无论其它键是否按下键一的信号线由1变为0;当松开键1时,无论其它键是否按下,键1的信号线由0变为1。
独立式按键是指直接用I/0口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其它1/0口线的工作状态。图3—8为一种独立式四按键电路。由图可知:
(1)K0 ~ K3四个按键在沒有按下时,P1。0 ~ P1.3均处于高电平状态;只要有键按下,则相应的I/O口线就变成低电平;一个按键与一根I/O口线状态相对应。
(2)在图中,为了使CPU能及时处理键盘功能,四根键盘状态输出线被送到四与门输入端.这样,只要有任一键按下,该四与门输出端便由高电平变成低电平,再通过 INT0向CPU发出中断请求。
18
图3-8 四按键电路
3.6 LED显示器
LED显示器是由发光二极管显示字段组成的显示块,有7段和“米”字段之分.这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管(在图中以dP表示)用于显示小数点.通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号。
LED显示块中的发光二极管共有两种连接方法: (1)共阳极接法
发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。
(2)共阴极接法
发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。数码管引脚如图3—9。
图3—9 数码管引脚图
共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相
19
应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段dP、g、f、e、d、c、b、a对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码.例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示\"P”字符,即对于共阴极LED显示器,“P\"字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。用LED显示器显示十进制转换成十六进制数的字形代码在表3-3中列出。
表3-3 LED十六进制的数字代码表
共阳极代字形 0 1 2 3 4 5 6 7 8 共阳极代码 C0H F9H A4H BOH 99H 92H 82H F8H 80H 共阴极代码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 字形 码 9 A B C D E F 灭 90H 88H 83H C6H A1H 86H 8EH FFH 6FH 77H 7CH 39H 5EH 79H 71H 00H 共阴极代码 我们在这次设计中采用LED数码管.本设计为了节约单片机P口的资源采用串口显示,只使用单片机的两个串行口,一个口用来当信号线,令一根用来当时钟信号,这样就可以完成显示功能.显示电路如图3-10所示。
PA口送出的段控码同时送给六位LED显示器,但只有其位控端(GND端)为低电平的LED显示器才能点亮.反相驱动器用于增加段控口和位控口的电流驱动能力。
20
图3-10显示电路
3。7测量电路设计
图3—11是测频率和脉宽的电路图.其中fx为被测信号,fc为基准信号,p1.6为预置闸门,74H0157是个二选一的数据选择器,总共3个二选一数据选择器,7474为D触发器,总共两个.
3.7。1测频率电路原理
预置闸门P1.6为给定的,当被测信号fx为上升沿时,D1触发器输出为高电平1,Q1输出的信号分两路,一路通过74H0157的二选一数据选择器,送入INT0,触发定时器开始定时;一路通过二选一数据选择器打开闸门A、B,闸门A打开,被测信号开始计数,闸门B打开,基准信号fc开始计数.定时器定时时间到,P1.6输出变为低电平0,在被测信号fx的下一个上升沿时,D1触发器输出为高电平0,Q1输出的信号通过二选一数据选择器关闭闸门A、B,此时被测信号记的为整脉冲数NA,fc计的脉冲数是NB。
根据公式Tx=(NB/NA)Tc,求出周期的被测信号;fx=(NA/NB)fc,求出被测信号的频率。 测信号频率的波形图如图3—12所示.
21
fx P1.6 LM361 D1 Q CP1 R1 A Y B 1 D2 Q2 CP2 R2 B A S Y 51 P1.5 S INT0 预置闸门P1.6
fx
闸门
1 1 fc
闸门A & S 1 A Y B fc & 8155 闸门B
图3—11测频率和脉宽的电路图
图3—12测信号频率的波形图
3。7.2测量脉宽
22
图3-13测信号脉宽的波形图
P1。6为预置闸门信号,被测信号fx信号分两路,一路接D1触发器,一路接D2触发器的清零端.当预置闸门信号有效后,被测信号fx变为高电平时, D2触发器的清零端无效,D1触发器输入为高电平1,输出也为高电平1。该高电平通过二选一的数据选择器开闸门。闸门A开,开始计被测信号的脉冲数.闸门B开,开始计数基准信号的脉冲数。当fx为低电平时,D2触发器的清零端有效,使得D2触发器的输出强制为零,该低电平通过二选一的数据选择器关闸门。此时被测信号的脉冲数为NA,基准信号的脉冲数为NB。利用公式脉宽=NB/NA 求出脉宽.测信号脉宽的波形图如图3—13所示.
3。8电源模块的设计
电源变压器将电网提供的220V电压变为所需的交流电,同时将电子电路与交流电网隔离,整流电路的作用是利用具有单向导电性能的整流元件,将正负交替的正弦交流电整流成单项脉动直流电。利用电容滤波将脉动的直流电变成平滑的直流电,提供给单片机为5V电压.5V电源电路如图3—14所示。
图3—14 5V电源电路
在图中,C1可以防止由于输入引线较长时产生的电感而引起的自激。C2用来减小由于负载电流瞬时变化而引起的高频干扰.C3为容量较大的电解电容,用来进一步减小输出脉动和低频干扰.
图3—15为具有正负12V电压输出的稳压电源,由图可知,电源变压器带有中心抽头
23
并接地,输出端得到大小相等、极性相反的电压。
μFμFμFμFμFμF
图3—15 ±12V电压输出的稳压电源
4 数字频率计软件设计
本设计软件部分采用了MCS-51汇编语言编制,采用了结构化,模块化的程序设计方法。包括了主程序、外部中断0子程序、外部中断1子程序、显示子程序等模块组成。本章还给出了详细的流程图。
4。1软件编程思路 4.1。1 信号处理
在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。
24
定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数.计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR清0,停止计数。计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。对10进制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。
待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的P3。4引脚,为单片机测信号频率提供有效的输入信号。单片机通过检测P3。4引脚来判断是否启动测周期程序.当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。首先将零赋给TH0、TL0两个寄存器,将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0终端,然后再判断P3.4引脚是否还为低电平,当不是低电平时则等待。一旦出现低电平则使TR0复位以终止定时器,测周期程序结束。在测周期过程中,会发生定时器T0的中断,每发生一次中断则将R0寄存器加一,因此R0实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0三个寄存器中,然后将其转换成频率.由于所测周期的单位是µs,再相除转换时要将被除数扩大10倍,这样才能保证得出正确的频率.得出的频率放到R1、R2、R3三个寄存器后调用转换BCD代码模块。调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示.
64。1.2定时工作方式0
方式0是13位计数结构的工作方式[15],其计数器由TH0高8位和TL0的低五位构成.TL0的高3位弃之不用。当C/=0时,多中开关接通振荡脉冲的12分频输出,13位计数器以此进行计数,这就是所谓定时器工作方式。当C/=1[16]时,多路开关接通计数引脚(T0),外部计数脉冲由引脚T0输入。当计数脉冲发生负跳变时,这就是所谓计数工作方式。
不管是哪种工作方式,当TL0的低五位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位.
4.2程序流程图设计 4。2。1主程序流程
25
主程序流程图如图4—1所示。
8155 8051初始化 显示一遍LED 扫描键盘 右键按下? 求取键值 键处理程序 图4—1 主程序流程图
4。2。2中断流程
T0中断服务流程图如图4—2所示
26
保护现场 关中断 Y 测频? N 启动 T1 P1.6 读入数据 计算 刷新显示单开中断 恢复现场 返回
图4-2 T0中断流程图
4。2。3 T1定时中断服务
T1定时中断服务流程图如图4-3所示
保护现场 关中断 Y R0=0? N 读入T0 8155计数器值, 计算频率, 刷新显示 R0=R0-1 重装初值 开中断,恢复现场 返回
图4—3 T1中断流程图
4.2。4多周期同步法子程序流程图
多周期同步法子程序流程图如图4-4所示.
27
Y Y 开始 T0,T1初始化,P1.6置1 定时时间到 N P1.6清零 N 测试结束否
读取T0,T1值 数据处理 结束
图4-4多周期同步法子程序流程图
4。3系统程序及关键程序 4。3.1多周期同步测量法
T0为16位定时器,T1为16位计数器,对内部机器周期计数.T0,T1分别受INT0和INT1(即D触发器的Q端)控制。待测信号分别输入至T1和D触发器的CLK端.开始测量时,将单片机P1。0口(即D触发器的D端)置“1\".一般来说,P1。0口状态改变时,fx正处于某一周期的高电平或低电平处,触发器Q端的状态不会立即改变,而是在下一个fx脉冲的上升沿到来时变为高电平,T0与T1才开始启动,实现了二者的同步。在定时时刻到来后,将P1。0清零,但触发器Q端仍将维持高电平状态,直到下一下fx的脉冲上升沿到达。
tongbufa: MOV TOMD,#0D9H ; GATE打开,T1和T0受INT的控制 MOV TL0, #0B0H ;T0赋初值,T1清零 MOV TH0, #3CH
28
MOV TL1, #00H MOV TH1, #00H
MOV IE, #88H ;开中断 SETB TR0 SETB TR1 SETB P1.0 SJMP $ INT1: CLR P1.0 CLR TR1 CLR TR0
MOV 40H,TL1 ; 存入数据 MOV 41H,TH1 MOV 42H,TL0
MOV 43H,TH0
RETI 4。3。2数码显示程序
单片机控制其内部计数器得到的数据要送到6位数码显示管中显示出来,才能被我们所看到,直接得到我们所测量的频率。 显示程序 DISPLAY0:
MOV A,COUNTER_DISPLAY; CJNE A,#6,DISPLAY1
JMP DISPLAY2;/当前显示位数等于6/ DISPLAY1:
JNC DISPLAY2;/当前显示位数大于6/ JMP DISPLAY3 DISPLAY2: CLR A
MOV COUNTER_DISPLAY,A;/当前显示位数大于等于6,清零/
29
DISPLAY3:
MOV A,#0FFH
MOV PORT_LED,A;/变换数据前先灭LED,以消除闪动/
MOV A,COUNTER_DISPLAY MOV PORT_LED_138,A MOV R1,#DISPLAY_DATA_ADDR
ADD A,#DISPLAY_DATA_ADDR;/计算当前要显示数据的地址,初始地址+相应位数/
MOV R1,A
MOV A,@R1;/取出要显示的相应位的数据/ MOV PORT_LED,A;/送出显示数据/ MOV A,COUNTER_DISPLAY INC A
MOV COUNTER_DISPLAY,A;/显示位加1/ RETI
4.3。3系统程序
ORG 0000H
AJMP MAIN ORG 0003H AJMP
INT0
ORG 000BH AJMP
TIMER0
ORG 0013H AJMP
INT1
ORG 001BH AJMP TIMER1 MAIN: MOV SP,#40H ACALL CHUSHIHUA LP11: ACALL INT0
30
ACALL BCD ACALL DISPLAY SJMP LP11 CHUSHIHUA :MOV A,#00H MOV B,#00H MOV 2AH,A MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV 45H,#00H MOV 44H,#00H MOV 43H,#00H MOV 61H,#00H MOV 60H,#00H MOV 62H,#00H MOV T_G,#00H MOV TIMCOUNT,#00H MOV TIMER_H,#4CH MOV TIMER_L,#0FH SETB P3。5 RET MOV A,R2 CLR C MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 24H,#00H MOV 25H,#00H MOV R3,#10H NEXT: RLC A MOV R2,A MOV A,20H ADDC A,20H
DA A
31
MOV 20H,A MOV A,21H ADDC A,21H DA A MOV 21H,A MOV A,22H ADDC A,22H DA A MOV 22H,A MOV A,R2 DJNZ R3,NEXT MOV A,R6 clr c MOV R3,#08H NEXT1: RLC A MOV R6,A MOV A,24H ADDC A,24H DA A MOV 24H,A MOV A,25H ADDC A,25H DA A MOV 25H,A MOV A,R6 DJNZ R3,NEXT1 CLR C MOV A,24H ADDC A,20H DA A MOV 20H,A MOV A,25H ADDC A,21H DA A
32
MOV 21H,A MOV A,22H ADDC A,#00H DA A MOV 22H,A MOV A,22H ANL A,#0FH MOV 31H,A MOV A,22H ANL A,#0F0H SWAP A MOV 30H,A MOV A,21H ANL A,#0F0H SWAP A MOV 32H,A MOV A,21H ANL A,#0FH MOV 33H,A MOV A,20H ANL A,#0F0H SWAP A MOV 34H,A MOV A,20H ANL A,#0FH MOV 35H,A
RET
xianshi: MOV SCON,#00H MOV R0,#33H MOV R1,#79H MOV R7,#8 SZZH: MOV A,@R0 INC R0 MOV B,#10H
33
DIV AB MOV @R1,B INC R1 MOV @R1,A INC R1
DJNZ R7,SZZH MOV R1,#79H MOV R6,#7
MOV DPTR,#TAB BK: MOV A,@R1
MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R1 DJNZ R6,BK RET
TAB: DB 11H,0D7H,32H,92H ,0D4H,98H,18H,0D3H,10H,90H pinlvfa: MOV R2,#20 MOV TMOD,#51H MOV TL0, #0B0H MOV TH0, #3CH
MOV TL1, #00H MOV TH1, #00H
SETB EA SETB ET0 SETB TR0 SETB TR1 loop20 :JBC TF0,TIMER0 SJMP XX TIMERO:MOV TL0, #0B0H MOV TH0, #3CH
DJN R2,loop20 CLR TR1
34
CLR TR0 CLR TF0 CLR TF1 MOV R7,#40H
MOV @R7,TL1 INC R7 MOV @R7,TH1
RET1 ZHOUQIFA: MOV TMOD,#01H MOV TL0,#00H MOV TH0,#00H
LP0: JNB P3。2,LP0 LP1: JB P3.2 LP1 ; SETB TR0 LP2: JNB P3。2,LP2 LP3: JB P3。2,LP3
CLR TR0 MOV 40H,TL0 MOV 41H,TH0 SJMP ZHOUQIFA
tongbufa: MOV TOMD,#9DH MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#00H MOV TH1,#00H
MOV IE,#88H SETB TR0 SETB TR1 SETB P1.0 SJMP $ IT1 : CLR P1.0 CLR TR1 CLR TR0 MOV 40H,TL0
35
MOV 41H,TH0 RETI DATA_PRO:
PUSH PSW
SETB PSW.3 CLR PSW。4
CLR A MOV 63H,A
MOV 60H,A MOV 62H,A MOV 61H,A
MOV R2,#24 HB3: MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5
RLC A MOV R5,A
MOV A,61H ADDC A,61H DA A
MOV 61H,A MOV A,62H ADDC A,62H DA A
MOV 62H,A MOV A,60H
ADDC A,60H DA A
MOV 60H,A MOV A,63H
36
ADDC A,63H MOV 63H,A
DJNZ R2,HB3 POP PSW
RET
37
5结论
基于单片机的频率计的设计涉及到计算机的硬软件知识,通过对系统的设计和调试,本次设计主要完成了以下工作:
1提出基于单片机的数字频率计设计的基本方案;
2完成了整形电路、同步电路、分频电路、主控门电路等相应的硬件电路设计及仿真; 3编译了数字式频率计的控制程序、数码转化程序、数据显示程序等系统软件程序; 通过本次设计,让我学会了从系统的高度来考虑设计的方方面面,对电路的设计和研究有了更深刻的体会;让我了解到软件的设计是建立在对硬件了解的基础上的,特别是对单片机的功能,引脚定义和内部结构要有较为详细的了解,此外对电路板中所用到的各个芯片的引脚和功能,也要进行了解;在编写程序时,进行模块化设计,以严谨的态度进行编程,避免出现低级错误,养成为程序添加注释和说明的好习惯,以便自己的修改和阅读者轻松的了解程序的各部分及整体的功能。
38
致谢
几个月的时间匆匆而过,在这即将离开学校的时刻,不禁让我想起了这三年来学校对我的照顾和关怀。在这里我首先要感谢母校兰州工业高等专科学校!感谢兰州工业高等专科学校为我提供一个学习深造的机会。感谢你们曾经给予我关怀、教育和培养的各位老师,感谢同学们对我的帮助与鼓励。
在论文即将完成之际,我要衷心感谢我的指导老师,本设计自始至终都是在指导老师的悉心指导下完成的。从论文的选题、方案论证、开题、研究工作的开展、关键问题的解决、论文的撰写乃至修改,每一环节都凝聚着恩师的心血,老师为我提供了很多宝贵的意见,避免让我少走了许多弯路。指导老师严谨的教学态度、渊博的知识、对学生诲人不倦的指导与帮助,不仅使我顺利的完成了毕业设计,也使我们具备了从事科研工作的一些基本技能,为以后的工作奠定了坚实的基础,令我受益匪浅,是难得的良师益友。
同时其他老师和同学的大力支持和协助,在此一并表示衷心的感谢.在整个设计过程中,他们也为我提供了不少帮助,帮我解决了很多困难,使我的论文得以顺利完成。
39
参考文献
[1]李朝青。单片机原理及接口技术[M] .北京:北京航空航天出版社,2005.10
[2]杨将新,李华军。单片机程序及应用从基础到实践[M] 。北京:电子工业出版社,2006.9 [3]张刚毅,彭喜元,董继成。单片机原理及应用[M] 。北京:高等教育出社,2006。1 [4]何立民。单片机应用技术选编[M] 。北京:北京航空航天大学出版社,2000。8 [5]李光飞,楼苗然。51系列单片机[M] .北京:北京航空航天大学出版社,2003 [6]谢自美。电子线路设计·实验·测试[M] 。武汉:华中理工大学出版社,2002 [7]陈永甫.电子电路智能化设计[M] 。北京:电子工业出版,2002。8 [8]康华光。电子技术基础(第四版) [M] 。北京:高等教育出版社,1999
[9]窦振中.单片机外围器件实用手册(存储器分册) [M] 。北京:北京航空航天大学出版社,1998 [10]李光飞,楼然苗.单片机课程设计实例指导[M] 。北京:北京航空航天大学出版社,2004 [11]程远楚.单片机智能频率信号装置[J] .自动化与仪器仪表,2001,1(6):37~38 [12]操长茂,殷海兵.基于单片机多功能频率计[J] 。电子测量技术,2003,5(1):20~30
[13]陈晓荣,红全.基于单片机的测量频率的几种适用方法[J] 。工业仪表与自动化装置,2003,52(1):40~42
[14]刘志刚,王小志.用单片机实现分频段测量信号频率[J] 。江苏电器,2008,32(8):73~75 [15]杨勇。基于单片机的智能频率计的系统研究[J] .西安邮电学院院报,2003,15(7):13~16 [16]赫建国,刘立新。基于单片机的频率计设计[J] 。现代电子技术,2003,42(9):72~73
40
因篇幅问题不能全部显示,请点此查看更多更全内容