51单片机的光电计数器电路设计原理

合集下载

51单片机计数器原理

51单片机计数器原理

51单片机计数器原理计数器是数字电路中常用的组合逻辑器件,用于实现对输入信号的计数功能。

在电子技术领域中,51单片机计数器是一种常见的计数器,广泛应用于各种电子设备中。

本文将介绍51单片机计数器的原理及其工作方式。

一、51单片机概述51单片机是一种经典的单片机型号,是应用最广泛的8位单片机之一。

它由Intel公司在20世纪80年代中期推出,采用Harvard结构,具有低功耗、高性能和丰富的外设接口等特点。

51单片机内部包含CPU核心、存储器、计时器和I/O端口等多个模块。

二、计数器的基本原理计数器用于对输入信号的频率或脉冲进行计数。

它采用二进制计数的方式,通过变换二进制数的状态来实现计数功能。

在计数器中,使用触发器来存储并改变二进制计数器的状态。

三、51单片机计数器的工作原理51单片机的计数器由功能寄存器和计数器组成。

功能寄存器用于设置计数器的工作模式、计数方向和计数初值等参数。

而计数器则用于记录已经计数的次数。

1. 时钟源选择在51单片机中,计数器可以使用外部时钟源或内部时钟源作为计数时钟。

通过设置功能寄存器中的位来选择时钟源。

2. 计数方向设置计数器可以选择向上计数还是向下计数。

通过设置功能寄存器中的位来选择计数方向。

3. 计数初值设置计数器的初始值可以通过将特定的值写入计数器寄存器来设置。

初始计数值可以是任何二进制数值。

4. 溢出和中断当计数器溢出时,会触发一个中断。

在51单片机中,可以通过设置中断控制位来选择是否启用溢出中断,并通过中断服务程序进行处理。

四、计数器的应用51单片机计数器在各种电子设备中有广泛的应用。

以下是几个常见的应用场景:1. 频率计数将计数器连接到需要测量频率的信号上,通过记录计数器溢出的次数,可以计算出输入信号的频率。

2. 脉冲计数计数器可以用于对脉冲信号的个数进行计数。

通过记录计数器溢出的次数以及最后一次溢出前的计数值,可以得到脉冲信号的总数。

3. 时钟分频计数器可以被用作时钟信号的分频器。

51单片机的电子计数器

51单片机的电子计数器

基于51单片机的电子计数器一.什么是电子计数器?电子计数器是利用数字电路技术数出给定时间内所通过的脉冲数并显示计数结果的数字化仪器。

二.基本组成:电子计数器主要由输入电路、比较电路、时间基准电路、控制电路和计数显示电路等部分组成。

1.输入电路:电子计数器的输入电路主要有三个作用,一是阻抗变换,二是电压放大,三是整形,所以它有三个组成部分。

阻抗变换的目的是通过提高输入端的阻抗来减小对被测信号源的分流,常用晶体管射极跟随器或场效应管源极跟随器来实现。

电压放大采用输入放大器,它们除需具有一定的放大倍数外,还需要有较宽的通频带,以保证电子计数器有一定的灵敏度和测量范围。

整形电路的作用是对被测量整形,使输至比较电路入口的波形规整化,成为前、后沿较陡的矩形脉冲,以保证计数电路能被可靠地触发,整形电路常用施密特触发器来实现。

2.比较电路:电子计数器的比较电路是由一个与门电路来实现被测信号(如频率)与标准时间信号的比较的。

3.时间基准电路(时基电路):电子计数器是用比较法进行测量的,也就是将被测信号与一系列标准时间信号进行比较。

4.控制电路:控制电路是电子计数器的指挥系统,在控制电路所送出的各种控制信号的指挥下,协调计数器各单元电路的工作。

5.计数显示电路:电子计数器的计数电路是对来自闸门的脉冲个数/N进行计数,并将计数结果用数字显示出来的仪器。

为了提高计数器的测量速度,并使每一次测得的数据段相对稳定地显示出来,常在计数电路后加上寄存器,用来暂时寄存测量所得的数据。

6.自校:自校是电子计数器对其内部基准信号源进行测量的一种功能,可借以检查自身的逻辑功能是否正常。

三.如何实现?实现计数功能,比较方便的办法是利用单片机内部的定时/计数器。

也可以采用下面三种方法:1.采用时基电路计数:例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件电路。

但不可编程。

2.采用可编程芯片计数:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。

光电计数器的工作原理

光电计数器的工作原理

光电计数器的工作原理光电计数器是一种常见的电子计数器,它是一种使用光学器件来实现计数功能的计数器。

它的工作原理基于光电效应,通过光电转换将物体通过光线的照射变成电子信号来进行计数。

光电计数器主要包括探测器和计数器两个部分。

探测器一般由光电开关、发光二极管、光电二极管等电子元件组成。

当物体穿过光电计数器时,物体挡住光线,光线被遮挡后,照射到光电开关或光电二极管上的光电元件因而无法继续发射或接收光线,会产生相应的电信号。

这些电信号经过调理和放大处理后,然后发送到计数器中进行计数。

计数器是光电计数器中的核心部件,它完成了对每个物体的计数动作。

计数器使用数字技术来实现物体计数,通过将输入的电信号转化为数字模数,在计数器中对其进行编码、存储和运算等处理,以获得准确的物体计数结果。

计数器还可以设置相应的警报、返回、自动复位等功能,使得光电计数器具有高效性和便捷性。

光电计数器的工作原理主要分为两个阶段:探测信号的产生和计数处理。

① 探测信号的产生在探测信号产生的第一步中,发光二极管将发射准直方向的光线,光线照射到光电二极管上,光电二极管产生电信号。

在探测信号产生的第二步中,光电开关直接将关于受遮挡现象的信号发送到计数器。

其中,发光二极管和光电二极管的发出和接收光线的方向可以任意设置,使得光电计数器能够适应不同的应用场景。

② 计数处理通过探测信号的产生,计数器会将信号进行编码和存储,最终实现对物体的计数。

在实际使用中,光电计数器计数量的增加通常是以值的形式显示出来。

在计数处理阶段,计数器接受来自探测器的数字信号,将其转换为数字模拟信号,信号经过调理进行放大处理后,被转换为数字信号。

然后将转换的数字信号经过诸如二进制、八进制等算法进行编码,以便数字之间的运算以及数字之间的比较。

数字计数器还可通过特殊的电子线路或运算逻辑实现特殊功能,例如设置报警功能、回退功能、自动累加等功能。

在这些功能完成后,数字计数器可以重置,以使得计数器能够进行新的计数。

51单片机定时-计数器结构和计数器工作原理

51单片机定时-计数器结构和计数器工作原理
使用中断方式时对IE寄存器赋值开发中断
使TR0或TR1置位,启动定时/计数器
晶体振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上,时钟发
生器是一个二分频触发器电路,它将振荡器的信号频率除以2,向CPU提供
了两相时钟信号P1和P2。时钟信号的周期称为机器状态时间S,它是振荡
周期的2倍。在每个时钟周期(即机器状态时间S)的前半周期,相位1(即
P1信号)有效,在每个时钟周期的后半周期,相位2(即P2信号)有效。
提供
用途:定时器和计数器
核心:加1计数器
原理:每来一个脉冲则加1计数器加1,当加到全1时再来一个脉冲使加
1计数器归零,同时加1计数器的溢出使TCON寄存器中的TF0(或TF1)
置1,向CPU发出中断请求
脉冲来
补充:
计数器工作原理:
用作计数器时,对T0或T1引脚的外部脉冲计数,如果前一个机器周期
采样值为1,后一个机器周期采样值为0,则说明有一个脉冲,计数器加
1。
在每个机器周期的S5P2期间采样引脚输入电平。新的计数初值于下一个
机器周期的S3P1期间装入计数器。
此种方式需要两个机器周期来检测一个1->0负跳变信号,因此最高的计
数频率为时钟频率的1/24。
S5P2:
S5P2指的是第5个时钟周期的相位2。
工作原理:13位计数器,使用TL0的低5位和TH0的高8位组成,TL0
的低5位溢出时向TH0进位。TH0溢出时发出中断请求。
方式1
计算公式:
最大计数:65536个机器周期
工作原理:16位计数器,TL0作为低8位,TH0作为高8位
方式2:自动重装初值的8位计数方式
计算公式:p.s.晶振频率必须选择12的整数倍,因为定时器的频率是晶振

c51单片机计数器触发机制

c51单片机计数器触发机制

C51单片机的计数器是通过触发机制来工作的。

在C51单片机中,有两种常见的计数器类型:定时器和计数器/计时器。

1. 定时器(Timer):
定时器用于生成一定时间间隔的定时事件。

C51单片机中的定时器是基于内部或外部时钟源进行计数的。

当定时器达到设定的计数值时,会触发定时器中断,并执行相应的中断服务程序(ISR)。

可以使用定时器来生成精确的时间延迟、控制周期性任务等。

2. 计数器/计时器(Counter/Timer):
计数器/计时器可以用来计数外部事件的脉冲数量或测量时间间隔。

它可以根据外部事件的触发边沿(上升沿或下降沿)来触发计数动作。

当计数器达到设定的计数值时,也可以触发计数器中断,并执行相应的中断服务程序(ISR)。

计数器还可以被配置为计时器模式,用于测量时间间隔。

在C51单片机中,计数器的触发机制通常是通过设置相关的寄存器来实现的。

这些寄存器包括计数器的初始值、计数模式、计数触发边沿等。

通过配置这些寄存器,可以灵活地控制计数器的工作方式和触发条件。

需要注意的是,具体的计数器触发机制可能会因不同的单片机型号而有所差异。

因此,在编程时应参考相关的芯片手册或数据表,以了解具体的计数器触发机制及其相应的寄存器设置。

1。

光电计数器工作原理

光电计数器工作原理

光电计数器工作原理
光电计数器是一种根据光电效应原理来实现计数的装置。

其工作原理如下:
1. 光电效应:当光线照射到某些材料表面时,光子的能量可以导致电子从材料中解离出来,这个过程称为光电效应。

2. 光电效应的应用:光电计数器利用光电效应,将光线照射到光电计数器的光电导(例如光电二极管)上。

当光照射到光电导上时,光电导会产生电流。

3. 计数原理:光电计数器通过测量光电导上的电流来实现计数。

当有光线照射到光电导上时,光电导会产生电流,这时计数器会对电流进行检测和记录。

4. 计数过程:光电计数器会根据光电导上产生的电流来判断光线的存在与否。

当光线照射到光电导上时,计数器会记录一次计数。

当光线消失时,计数器停止计数。

通过记录每次计数的次数,可以得到光线的数量。

需要注意的是,光电计数器的工作原理可以根据具体的设计和制造与不同,上述介绍只是一种典型的工作原理。

毕业论文之基于51单片机的流水线产品计数器设计说明

毕业论文之基于51单片机的流水线产品计数器设计说明

毕业设计(论文)基于51单片机的流水线产品计数器设计班级: 31001班学号: 1姓名: 唐树春专业: 应用电子技术指导老师: 周晓红老师二零一二年六月十日摘要本系统采用的是以单片机STC89c52为核心的光电计数器。

其工作原理是采用单片机的外部中断0来进行计数,数据采集部分采用反射式光电传感器,将红外发光管与光电接收管相邻安放,每当物体通过一次,红外光就被物体反射,光电接收管接收一次,光电接收管的输出电压就产生一个变化,这个变化的电压信号通过放大和处理后,形成计数脉冲,输入至STC89c52单片机的P3.2口,通过软件控制和硬件控制并用LED加以显示,便可实现对物体的计数统计。

本计数器可将机械或人工计数方式变为电子计数,并且采用LED数码管显示,可适用于诸多行业,以满足现代生产、生活方式的需求。

所谓的光电式传感器是将光信号转化为电信号的一种传感器。

光电式传感器是以光电器件作为转换组件的传感器,光电检测方法具有精度高、应用快、非接触等优点,而可测参数多,光电传感器的结构简单,形式灵活多变因此,光电式传感器在检测和控制中应用非常广泛。

关键词:计数器;光电传感器;单片机;LED数码管AbstractThis system USES is with STC89c52 single chip microcomputer as the core of the photoelectric counter. The working principle of adopting SCM external interruption 0 to count, the data acquisition of the reflecting photoelectric sensor, the infrared light tube and photoelectric receiving tube adjacent put, whenever the object through a, infrared light is object reflective, photoelectric tube receiving a receiving, photoelectric receiving tube is the output voltage of produce a change, the changes of the voltage signal through the amplifier and processing, form count pulse, the input to STC89c52 SCM P3.2 mouth, through the control software and hardware control and that LED to, can realize the object counting statistics. This counter can or mechanical artificial count way into electronic counted, and using LED digital display tube, can be used in many industries, to meet the modern production, the way of life of demand.The so-called photoelectric sensor is light signals are converted to electrical signals a sensor. Photoelectric sensor is based on photoelectric device as a conversion of components of the sensor, photoelectric detection method has high accuracy, application, the advantages of fast contact, and can be measured parameters, the structure of the photoelectric sensor is simple, flexible in form so, photoelectric sensor in the detection and control is widely used.Keywords: counter; Photoelectric sensor; microcomputer; LED digital tube目录摘要 (II)ABSTRACT (III)第1章绪论 (1)1.1、本论文的背景和意义 (1)1.2、主要方法和研究进展 (1)1.3、主要容 (1)1.4、结构安排 (1)第2章整体设计方案 (2)2.1、设计方案选择 (2)2.2、设计方框图 (2)第3章硬件设计及功能 (3)3.1、基本介绍 (3)3.2、AT89C52引脚功能 (3)3.3、STC89C52系统结构图 (5)3.4、STC89C52的复位与时钟 (5)3.5、STC89C52单片机的基本工作电路 (6)3.6、本次设计的部分电路 (6)3.7、74HC573芯片 (7)3.8、显示电路 (8)第4章软件设计 (10)4.1、P ROTEUS软件 (10)4.2、K EIL C51软件 (10)4.3、软件设计流程图: (11)致 (11)结论 (13)参考文献 (14)附录 1 电气原理图 (15)附录 2 PCB图与3D视图 (16)附录3 源程序 (17)附录4 仿真效果图 (19)第1章绪论1.1、本论文的背景和意义随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的围越来越广,随之而来的竞争也越来越激烈。

c51单片机计数器触发机制

c51单片机计数器触发机制

c51单片机计数器触发机制摘要:1.C51 单片机计数器的概念与原理2.C51 单片机计数器的触发机制3.C51 单片机计数器的应用实例4.总结正文:一、C51 单片机计数器的概念与原理C51 单片机是一种广泛应用的微控制器,它的计数器功能在许多应用场景中都发挥着重要作用。

计数器是一种能够对脉冲信号进行计数的设备,它的基本原理是通过接收输入脉冲信号,然后将其转换为相应的计数值,并将该值存储在寄存器中。

在C51 单片机中,计数器通常用于计时、计数等任务,它的触发机制是由输入脉冲信号触发计数器开始进行计数。

二、C51 单片机计数器的触发机制C51 单片机计数器的触发机制主要依赖于输入脉冲信号。

当输入脉冲信号出现时,计数器开始进行计数。

在C51 单片机中,通常使用定时器来产生输入脉冲信号。

定时器根据系统时钟频率产生相应的脉冲信号,然后将这些信号输入到计数器中。

计数器接收到脉冲信号后,就开始进行计数。

三、C51 单片机计数器的应用实例C51 单片机计数器在许多应用场景中都有广泛的应用。

下面将以一个简单的例子来说明C51 单片机计数器的应用。

假设我们需要设计一个0-99 的计数器,当计数器到达99 时,计数器需要重新开始计数。

我们可以使用C51 单片机的计数器功能来实现这个需求。

具体实现方法如下:1.配置C51 单片机的定时器,使其产生1ms 的定时中断。

2.在定时中断服务程序中,将计数器清零,并更新计数器的值。

3.当计数器达到99 时,停止计数,并重新开始计数。

通过以上方法,我们可以实现一个0-99 的计数器。

在实际应用中,C51 单片机计数器还可以用于计时、计数等多种任务,其具体的应用方式取决于具体的需求。

四、总结C51 单片机计数器是一种重要的微控制器功能,它可以对脉冲信号进行计数,并在许多应用场景中发挥着重要作用。

C51 单片机计数器的触发机制主要依赖于输入脉冲信号,当输入脉冲信号出现时,计数器开始进行计数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机的光电计数器电路设计原理1.前言21世纪是信息时代,获取信息,处理信息,运用信息。

传感与检测技术的重要性在于它是获得信息并对信息进行必要处理的基础技术,是获取信息和处理加工信息的手段,无法获取信息则无法运用信息。

传感与检测技术是一门知识面广、综合程度高、实用性很强的专业课程。

它从传感器的基本理论入手,着重讲叙传感器的结构与感测原理,传感器是一个二端口的装置,不同的传感器输入-输出特性不同,同一传感器适应不同的被测信号呈现的特性也有所不同。

尤其当被测信号为静态信号时两种状态下,传感器的输入-输出特性完全不同。

感测技术在许多新技术、新器件里都有应用,在课程安排上,以信息的传感、转换、处理为核心,从基本物理概念入手,阐述热工量、机械量、几何量等参数的测量原理及方法。

光电式传感器是将光信号转化为电信号的一种传感器。

它的理论基础是光电效应。

这类效应大致可分为三类。

第一类是外光电效应,即在光照射下,能使电子逸出物体表面。

利用这种效应所做成的器件有真空光电管、光电倍增管等。

第二类是内光电效应,即在光线照射下,能使物质的电阻率改变。

这类器件包括各类半导体光敏电阻。

第三类是光生伏特效应,即在光线作用下,物体内产生电动势的现象,此电动势称为光生电动势。

这类器件包括光电池、光电晶体管等。

光电效应都是利用光电元件受光照后,电特性发生变化。

敏感的光波长是在可见光附近,包括红外波长和紫外波长。

本课题利用AT89C51单片机,探讨一种简易光电计数器的设计思路。

2光电计数器的系统设计2.1系统硬件设计2.1.1方案选择由于单片机所具有的特性,它特别适用于各种智能仪器仪表,家电等领域中,可以减少硬件以减轻仪表的重量,便于携带和使用,同时也可能低存本,提高性能价格之比。

图2.1光电计数器总结构流程图2.1.2仪器各部分组成u稳压直流电源的实现(1)稳压直流电源原理图u传感器传感器为红外光电式传感器。

其中一个发光二极管发出红外波长的光,可不受室内自然光的影响,此光照到旋转物体上反射回后,被光敏三极管接收。

光敏三极管接受到此信号后,经放大,整形转换为矩形脉冲信号送入MCS-51单片机的外部中断输入端INTO和INT1上。

u显示器4个LED数码管作显示器,通过573驱动。

u数据存储器数据存储器由AT89C51片内的低128字节和8155内部256字节的RAM组成.AT89C51的内部RAM主要用于堆栈,工作寄存器,显示缓冲器,各测量参数的计算缓冲器和标致位等。

而8155内部的RAM除上部4个单元外,全部用于存放转速和线速度值,其存储空间划分如图2-2所示,共分为三组,每组84个单元,可存入42个16位二进制数据,即42个4位16进制数据。

如下图2.1为外部RAM存储器空间划分图。

图2.1外部RAM存储器空间划分u检测齿轮:检测齿轮上有10个齿均匀分布在轮盘周围,并被直接固定在被测轴上,安装时光电耦合器的发光二极管和光敏三极管正对齿轮上的齿,当被测轴转动时带动检测齿轮转动,光电耦合器通过对检测齿轮上的齿进行耦合从而产生数字脉冲。

脉冲经过放大送向单片机的计数端。

u系统工作简图u整体硬件电路设计图2.2监控主程序流程图主程序的任务是对AT89C51单片机初始化,如设置堆栈,预置各定时器的控制字,初始化显示缓冲区,8155的初始化,设置标致位,清内存等;然后显示开机初始化状态,扫描键盘,根据按下键的功能各自的功能操作。

3设计原理3.1转速计算及误差分析根据转速,周期,频率之间的关系可知:(3-1)(3-2)(3-3)式中,n—被测转速,r/min;T-转速信号周期,s;f-转速信号频率,Hz;-计算计数脉冲的周期,又称时基,.将式(3-3)代入式(6-1),可得:(3-4)用十六进制数表示,为:式中N已存入75H,74H,73H单元。

利用除法子程序,即可求出转速。

下面计算系统得相对误差。

分别对式(3-1)和(3-3)求微分(3-5)(3-6)将式(3-6代入(3-5),可得:(3-7)式中,为量化误差,个计数脉冲,又已知时基,故(3-8)由式(3-8)可知,相对误差与频率成正比,即相对误差随转速得升高而升高。

因此,为了提高测量精度,高转速时需要连续测量数个周期。

本系统中为4个周期,即测得的N为4个周期内的总和,所以(3-9)(3-10)用十六进制数表示,为,对式(3-9)进行微分得:.因此,可求出高速测量时的相对误差为。

同样,代入,个计数脉冲,则:(3-11)将式(3-11)与式(3-8)比较可知,采用多周期测量相对精度大大提高。

若设置系统的临界转速为3662r/min,其对应的每周期计数脉冲个数为。

开机时,首先按低转速测量,然后判断转速n是高于还是低于3662r/min。

若低与此临界值,则仍然低转速测量,若高于它,便主动转入高转速测量,即连续测量4个周期.这样,就可以实现量程自动切换。

3.2转速测量由式(3-4)和(3-10)可知,只要能够求出脉冲个数N,即可求出转速。

为了得到计数脉冲,可以采用门控方式的硬件计数方法,也可以采用中断方式的软件计数方法。

3.2.1门控方式计数由AT89C51定时器/计数器T0工作原理可知,当其工作在计数方式,只要T0引脚上有负跳变,计数器就加1。

CPU在每个机器周期的状态时,采样T0,所以需要2个机器周期才能识别一个T0的负跳变,即T0的周期至少应该等于2倍机器周期。

若晶振频率为6MHz,6分频后得到ALE信号,故ALE信号周期为,机器周期为。

由此可知,最低计数脉冲周期为,可由ALE信号经74LS74中的两个D触发器4分频后取得。

为了保证精度,要求AT89C51内部计数器0与的上跳沿同步,此时开始计数,在的下跳沿停止计数。

图3.1门控脉冲与计数脉冲为了实现此功能,可以利用51单片机特有的定时器门控工作方式,通过指令MOV THOD,#1DH来设置定时器/计数器的工作方式。

这里使定时器/计数器0工作于16位技术方式,并由门脉冲进行控制。

只有当为高电平时,且运行控制位时,计数器0才开始工作。

一旦转为低电平,计数器0即刻停止计数。

3.2.2中断方式计数高转速时,为了连续测量4个输入脉冲周期,可以采用中断方式计数。

在初始化或前一次测量结果时,单片机禁止”外部中断0”和”定时器0”溢出中断。

设置”外部中断0”为负跳沿触发方式,设定”计数器0”为非门控计数方式,然后等待中断。

外部中断负脉冲一到,立刻启动”计数器0”对T0的计数脉冲进行计数。

计到4个测量周期时,停止”计数器0”工作,禁止外”中断”,恢复测量周期常数3,并将计得的脉冲数存入相应的单元。

门控方式和中断方式计数,有效的解决了精度测量输入脉冲周期和高低量程自动切换问题,测得计数脉冲个数后,即可转入计算转速n子程序,计算结果得BCD吗存入相应的4个存储单元,以备显示。

3.3串行显示接口51单片机的I/O口串行口为全双工接口,串行工作在方式0时,外接移位寄存器,可将串口转换成8位并口。

其显示的速率为,即,可以满足显示器稳定显示。

串行数据的接受/发送均通过RXD,而由TXD输出移位脉冲。

在串口上外接4片移位寄存器74LS64作为8位显示器的静态显示口。

变串行输入为并行输出,经缓冲器接至数码管。

4软件程序的设计4.11s定时本次设计选用定时器T0完成定时功能,选用方式1时最多也只能定时,显然不能满足定时1的要求,可以用下面这种方法解决:采用T0定时10,连续循环定时100次即可完成1定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1定时到时。

定时器T0初始化程序如下:MOV IE,#8AH;开放T0、T1中断MOV TMOD,#51H;T0定时,T1计数,都工作于方式一MOV20H,#100;100*10ms=1sSETB TR01s定时程序如下:T0INT:DJNZ20H,NEXTNEXT:MOV TH0,#0DCH;1s还未到则置初值继续定时MOV TL0,#00HEXIT:RETI4.2T1计数程序设计中T1采用计数功能,需要注意的一个问题是,输入的待测时钟信号的频率最高可以达到460800Hz,但计数器最多只能计数65536次,显然需要对计数单元进行扩展,扩展的思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。

当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。

计数器T1初始化程序如下:MOV IE,#8AH;开放T0、T1中断MOV TMOD,#51H;T0定时,T1计数,都工作于方式一MOV TH1,#00HMOV TL1,#00H;计数初值为零SETB TR1根据流程图设计的计数程序如下:MOV21H,#0MOV22H,#0MOV23H,#0;此三个单元存放采集到的频率T1INT:INC23H;计数器溢出则23H单元自增1RETI4.3频率数据采集到1定时时,存储计数器T1以及扩充计数单元23H记录的数据即为输入时钟信号的频率,为了保证记录的频率精确度,到1定时后应立即停止T1的计数,因为指令的执行也需要时间,并且待测的时钟信号频率越高,指令执行所需要的时间就越不能忽略,这里采用的指令为CLR TR1。

数据采集程序如下:CLR TR0MOV22H,TH1;1s定时到则采集数据MOV21H,TL1AJMP EXIT4.4进制转换从计数器采集到的频率数据是十六进制的,如果直接把这些数据送给数码管显示显然很不直观,因此需要把这些数据向十进制转换。

转换的算法有两种,第一种算法的思想是对该十六进制数除以100,商为百位,余数再除以10,再得到的商为十位,余数为个位。

这种算法虽然程序的编写非常简单,但是它的局限性也非常明显,即它只能对不大于两位的十六进制数进行转换,对于大于两位的十进制数则无能为力。

这次设计的频率计频率范围远不止两位十六进制数就能记得下,所以这里采用第二种方法。

第二种方法算法的编程实现非常复杂,但是可以对任意长度的十六进制数向十进制转换。

这种算法的基本思路是:第一步将最高位的高半字节提出来,除以10,把商存储起来,余数与最高位的低半字节组合成一个字节,再除以10,再存储商,余数以此类推,直到最后一次计算得到的余数即为十进制数的个位;第二步把第一步存储的商组合成一个字节,依次除以10,仍然把每次得到的商存储起来,以此类推最后一次得到的余数即为十进制数的十位;以后也是以此类推得到十进制数的百位、千位……以上算法必须要注意的一个为题是,每次得到的余数与低位的半字节组合成一个字节时,余数必须放在该字节的高半字节,否则计算错误。

相关文档
最新文档