项目5定时器与脉冲计数器的设计
定时器的设计实验报告
定时器的设计实验报告1. 引言定时器是一种常见的计时装置,广泛应用于各个领域,如电子设备、工业自动化、交通运输等。
本实验通过设计一个基于脉冲计数的定时器电路,旨在研究其工作原理,探索其在实际应用中的可行性和性能表现。
2. 原理及设计2.1 工作原理脉冲计数定时器是一种通过计数器累加输入脉冲信号的数量来实现计时的装置。
其基本原理是利用脉冲信号的频率和计数器的计数速度之间的关系,通过计数器的累加值计算时间间隔。
2.2 设计步骤1. 确定定时器的时间基准。
时间基准可以选择外部脉冲输入或者由稳定的晶振产生。
2. 设计计数器的位数。
根据计时的范围确定计数器的位数,以保证计数范围的覆盖。
3. 计算计数器的计数速度。
根据计时的最大时间间隔和计数器的位数,计算所需的输入脉冲频率。
4. 根据计数器的位数和计数速度,选择合适的计数器芯片。
5. 配置计数器芯片的工作模式和输入脉冲的触发方式。
6. 连接电路并验证设计是否符合要求。
2.3 接线图_______________input > Counter > output________ Display_________3. 实验结果及分析3.1 实验设置- 输入脉冲频率:1kHz- 计数器位数:4位- 计数器芯片:74HC163- 时间基准:晶振(频率为10MHz)3.2 实验结果在实验过程中,我们通过将输入脉冲接到74HC163计数器芯片的CP 输入端,将74HC163的输出接到数码显示器,观察并记录实时的计数结果。
在实验进行中,我们发现计数器芯片的最大计数范围是15(4位二进制),对应的时间间隔为15ms(1kHz输入脉冲时)。
3.3 实验分析通过实验结果可以看出,该定时器电路能够准确计时,实际测量的时间结果与理论计算非常接近。
由于74HC163计数器芯片的高稳定性和高精度,使得定时器的性能表现较好。
然而,该设计存在一个缺点,即计数器位数的限制。
由于计数器位数的限制,导致定时的最大时间间隔受到了限制。
51单片机定时-计数器结构和计数器工作原理
使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的整数倍,因为定时器的频率是晶振
51单片机脉冲产生程序设计
51单片机脉冲产生程序设计脉冲产生是嵌入式系统中非常重要的功能之一、在51单片机中,我们可以通过定时器/计数器和中断来实现脉冲的产生。
下面将详细介绍如何设计一个脉冲产生的程序。
首先,我们需要选择一个定时器作为脉冲产生的源。
在51单片机中,有两个可用的定时器,分别是定时器0和定时器1、我们选择一个定时器后,就需要设置定时器的工作模式和计数方式。
在这个例子中,我们选择使用定时器1,并设置为工作模式1和16位计数。
下面是相关的代码示例:```c#include <reg51.h>//定义定时器1的计数周期,用于控制脉冲的频率//主函数void main//声明并初始化定时器计数值unsigned int count = 0xFFFF - TIM1_CYCLE;//设置定时器1的工作模式和计数方式TMOD=0x20;//工作模式1TH1 = count / 256; // 设置高字节TL1 = count % 256; // 设置低字节//启动定时器1TR1=1;while (1)//脉冲输出的相关处理//这里可以添加相关操作}```在上述代码中,我们通过`TIM1_CYCLE`宏定义了定时器1的计数周期,用于控制脉冲的频率。
然后,我们设置了定时器1的工作模式为工作模式1,并计算出计数值,将其分别赋值给TH1和TL1寄存器。
最后,启动定时器1,并在主循环中进行相关的脉冲输出处理。
通过以上的代码段,我们实现了一个简单的脉冲产生程序。
在实际应用中,我们可以根据需要进行进一步的处理,例如根据输入信号进行触发控制、与其他模块进行通信等。
需要注意的是,在上述代码中,我们使用了51单片机的计数方式1,即工作模式1、根据实际需求,您可以根据相应的定时器和计数方式进行调整。
另外,定时器的计数周期也可以根据具体应用进行调整,以满足不同的脉冲需求。
总结起来,设计一个脉冲产生的程序需要选择定时器和计数方式,设置定时器的工作模式和计数值,然后启动定时器,并在主循环中进行相关的处理。
单片机的定时及计数器实验-脉冲计数器
实验六单片机定时、计数器实验2——脉冲计数器一、实验目的1.AT89C51有两个定时/计数器,本实验中,定时/计数器1(T1)作定时器用,定时1s;定时/计数器0(T0)作计数器用。
被计数的外部输入脉冲信号从单片机的P3.4(T0)接入,单片机将在1s内对脉冲计数并送四位数码管实时显示,最大计数值为0FFFFH。
2.用proteus设计、仿真基于AT89C51单片机的脉冲计数器。
3.学会使用VSM虚拟计数/计时器。
二、电路设计1.从PROTEUS库中选取元件①AT89C51:单片机;②RES:电阻;③7SEG-BCD- GRN:七段BCD绿色数码管;④CAP、CAP-ELEC:电容、电解电容;⑤CRYSTAL:晶振;SEG-COM- GRN为带段译码器的数码管,其引脚逻辑状态如图所示。
对着显示的正方向,从左到右各引脚的权码为8、4、2、1。
2.放置元器件3.放置电源和地4.连线5.元器件属性设置6.电气检测7.虚拟检测仪器(1)VSM虚拟示波器单击小工具栏中的按钮,在对象选择器列表中单击COUNTER(计数/计时器),打开其属性编辑框,单击运行模式的下拉菜单,如图所示,可选择计时、频率、计数模式,当前设置其为频率计工作方式。
(2)数字时钟DCLOCK单击按钮,在对象选择器中选择DCLOCK(数字时钟)。
在需要添加信号的线或终端单击即可完成添加DCLOCK输入信号。
当前信号设置为DIGITAL型的时钟CLOCK,频率为50K。
三、源程序设计、生成目标代码文件1.流程图2.源程序设计通过菜单“sourc e→Add/Remove Source Files…”新建源程序文件:DZC36.ASM。
通过菜单“sourc e→DZC36.ASM”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。
程序编辑好后,单击按钮存入文件DZC32.ASM。
3.源程序编译汇编、生成目标代码文件通过菜单“sourc e→Build All”编译汇编源程序,生成目标代码文件。
完整版脉冲计数器设计
脉冲计数设计与分析摘要我们知道,555电路在应用和工作方式上一般可归纳为3类。
每类工作方式又有很多个不同的电路。
在实际应用中,除了单一品种的电路外,还可组合出很多不同电路,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。
这样一来,电路变的更加复杂。
为了便于我们分析和识别电路,更好的理解555电路,这里我们这里按555电路的结构特点进行分类和归纳,把555电路分为3大类、8种、共18个单元电路。
每个电路除画出它的标准图型,指出他们的结构特点或识别方法外,还给出了计算公式和他们的用途。
555时基电路是一种将模拟功能与逻辑功能巧妙地结合在同一硅片上的组合集成电路。
该电路可以在最基本的典型应用方式的基础上,根据实际需要,经过参数配置和电路的重新组合,与外接少量的阻容元件就能构成不同的电路,因而555电路在波形的产生与变换、测量与控制、家用电器、电子玩具等许多领域中都得到了广泛应用关键字:NE555 计数译码显示目录第一章脉冲计数器简介 (3)1.1脉冲计数器绪论 ......................................... 错误!未定义书签。
1.2脉冲计数器主要内容 ................................. 错误!未定义书签。
第二章脉冲计数器设计与分析 .. (4)2.1方案与论证 (4)2.2总体框图及模块设计 (5)2.3总体电路设计 (9)2.4系统测试,抗干扰及注意细节 (9)第三章脉冲计数器设计结果分析论证 (10)3.1硬件调试 (10)3.2结果分析得出结论 (11)附录: .......................... 错误!未定义书签。
参考文献: .. (12)第一章脉冲计数器简介1.1发展趋势由555时基电路构成常见的最基本的典型应用电路有:单稳态触发电路、双稳态触发电路、无稳态电路,而用这3种方式中的1种或多种组合起来可以组成各种实用的电子电路,如定时器、分频器、脉冲信号发生器、元件参数和电路检测电路、玩具游戏机电路、音响告警电路、电源交换电路、频率变换电路、自动控制电路等第二章脉冲计数器设计与分析2.1方案与论证方案一:用MAX0832产生脉冲信号,经过计数、译码、显示,此方案性价比高,硬件电路较为简单。
课题设计(脉冲计数器设计)
脉冲计数器程序设计
专业
班级:
姓名:
学号:
完成时间:
目录
1、课题设计的任务与要求: (3)
1.1课题设计的任务: (3)
1.2设计要求: (3)
2、设计思路与步骤: (3)
2.1 设计思路: (3)
2.2 设计步骤: (3)
3、参考资料 (5)
4、总结 (5)
1、课题设计的任务与要求:
1.1课题设计的任务:
在8051单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元记满则进位31H单元。
试利用中断结构,编制一个脉冲计数程序。
1.2设计要求:
1)用汇编语言编程;请在过程中加入必要的解释。
2)思路清晰、结构合理、层次清晰,设计简洁但又要能体现设计过程。
2、设计思路与步骤:
2.1 设计思路:
1)外部中断的设定;
2)当有中断产生,需要保护ACC寄存器。
在中断程序内,做加一动作。
2.2 设计步骤:
3、参考资料
3.1 <<MCS-51学习>>
4、总结
(整个课程设计过程中,你觉得学习到了什么,课设过程中自己做的不足的地方有哪些?对自己的学习有何启示?)。
单片机脉冲计数电路设计毕业设计论文
单片机脉冲计数电路设计毕业设计论文设计题目:单片机脉冲计数电路设计摘要:本设计针对单片机脉冲计数电路进行了研究与设计。
首先介绍了单片机的工作原理和脉冲计数的相关知识,然后详细介绍了设计的硬件电路和软件程序。
硬件电路包括信号输入模块、计数器模块和数码管显示模块,软件程序包括脉冲计数、时钟设置和数码管显示控制等功能。
通过实验验证了本设计电路的可行性和性能,达到了预期的设计目标。
关键词:单片机;脉冲计数;电路设计一、引言脉冲计数是电子测量中常用的一种方法,可以对特定事件的发生频率和周期进行测量和计算。
在实际应用中,脉冲计数广泛应用于科学实验、工程测量和工控系统等领域。
本设计旨在设计一种简单而高效的单片机脉冲计数电路,以满足实际应用的需求。
二、单片机的工作原理单片机是一种集成了中央处理器、存储器、输入输出接口和其他辅助设备的微型计算机。
其主要功能是根据程序进行数据处理,实现各种控制和计算任务。
单片机通过输入输出口与外部电路连接,实现信息的输入和输出。
三、脉冲计数原理脉冲计数是通过计数器实现的。
计数器是一种特殊的时序电路,可以根据输入的脉冲信号对计数器的值进行累加或减少。
通过读取计数器的值,可以得到脉冲信号的频率和周期。
计数器的工作原理是将输入的脉冲信号通过触发器进行分频,然后再通过多级触发器进行累加和计数。
四、硬件电路设计本设计的硬件电路包括信号输入模块、计数器模块和数码管显示模块。
信号输入模块负责接收外部脉冲信号并将其转换成适合单片机接口的信号。
计数器模块用于记录输入脉冲信号的数量和周期。
数码管显示模块用于将计数值以数字形式显示出来。
五、软件程序设计本设计的软件程序通过单片机的编程实现。
主要功能包括脉冲计数、时钟设置和数码管显示控制等。
脉冲计数功能通过定时中断实现,每次接收到脉冲信号后进行计数。
时钟设置功能通过设置单片机的时钟频率来确定计数精度。
数码管显示控制功能则通过控制数码管模块的引脚状态来实现。
单片机定时器与计数器的工作原理及应用
单片机定时器与计数器的工作原理及应用摘要:单片机作为现代电子设备中广泛采用的一种集成电路,其内部包含了丰富的功能模块,其中定时器和计数器被广泛应用于各种领域。
本文将介绍单片机定时器和计数器的工作原理及应用,包括定时器的基本原理、工作模式和参数配置,以及计数器的工作原理和常见应用场景。
希望通过本文的阐述,读者能够深入了解单片机定时器和计数器的基本原理和应用,为电子系统设计提供参考。
引言:单片机作为嵌入式系统中的核心部件,承担着控制和处理各种信号的重要任务。
定时器和计数器作为单片机的重要功能模块,为实现各种实时控制任务提供了有效的工具。
定时器可以生成一定时间间隔的定时信号,而计数器则可以对外部事件的频率进行计数,实现时间测量和计数控制等功能。
一、定时器的工作原理单片机中的定时器通常为计数器加上一定逻辑控制电路构成。
定时器的基本工作原理是通过控制计数器的计数速度和计数值来实现不同时间间隔的输出信号。
当定时器触发时,计数器开始计数,当计数值达到预设值时,定时器产生一个输出信号,然后重新开始计数。
定时器通常由以下几个部分组成:1.计数器:定时器的核心部件是计数器,计数器可以通过内部振荡器或外部输入信号进行计数。
通常情况下,计数器是一个二进制计数器,它可以按照1、2、4、8等倍数进行计数。
2.预设值:定时器的预设值决定了定时器的时间间隔。
当计数器达到预设值时,定时器会产生一个输出脉冲。
3.控制逻辑电路:控制逻辑电路用于控制计数器的启动、停止和重置等操作。
通常情况下,控制逻辑电路由一系列的触发器和逻辑门组成。
二、定时器的工作模式定时器可以根据实际需求在不同的工作模式下运行,常见的工作模式有以下几种:1.定时工作模式:在定时工作模式下,定时器按照设定的时间间隔进行计数,并在计数值达到预设值时产生一个输出脉冲。
这种模式常用于周期性任务的触发和时间测量。
2.计数工作模式:在计数工作模式下,定时器通过外部输入信号进行计数,可以测量外部事件的频率。
单片机定时器计数器应用
为了获得1秒时间,T0中断需要发生200次。程序包含主函
数,T0的初始化函数和T0中断服务函数,显示语句放在中
断服务函数内,程序如下:
/******************************************************************/ #include<reg51.h> code unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char cp,i; //声明全局变量 void timer0_isr(void) interrupt 1 // timer0中断服务函数 { TR0 = 0; //停止计数 TL0 = 0x78; // TL0重新预置 TH0 = 0xec; // TH0重新预置 TR0 = 0; //开始计数 cp++; // timer0中断1次,变量cp加1 if(cp == 200) //中断200次,时间刚好为1秒 { cp = 0; i ++; }
项目5 单片机定时器/计数器应用
5.1任务说明
任务:利用单片机内部定时器/计数器中断实现一个数码管 的秒记数,重点学习定时器/计数器的工作方式以及
其控制寄存器TMOD、TCON的功能,在程序实现
过程中掌握定时器/计数器中断的一般步骤。
5.2 单片机的定时/计数器结构
51单片机内部含有两个定时器/计数器,分别是T0和 T1,在增强型51系列单片机中,如STC89C51RC,内部出了 含有T0和T1外,还有T2定时器/计数器。定时器/计数器主 要由于精确的定时,也可用于对外部脉冲进行计数以及为
定时器计数器常用编程方法
定时器计数器常用编程方法定时器计数器是编程中常用的工具,它们可以用于控制程序的执行时间、测量时间间隔、产生脉冲信号等。
以下是一些常用的编程方法来使用定时器计数器:1. 硬件定时器/计数器:许多微控制器和处理器都内置了硬件定时器/计数器。
这些定时器/计数器可以用于产生精确的时间延迟或测量时间间隔。
在编程时,通常需要配置定时器/计数器的参数,如计数频率、计数值等,然后启动定时器/计数器,让它自动计数或计时。
2. 软件定时器/计数器:如果硬件没有提供定时器/计数器,或者需要更灵活的控制,可以使用软件定时器/计数器。
软件定时器/计数器是通过程序代码实现的,通常使用循环和延时函数来模拟定时或计数。
这种方法不如硬件定时器/计数器精确,但可以实现简单的定时和计数功能。
3. 操作系统提供的定时器/计数器:许多操作系统都提供了定时器和计数器的API或功能。
例如,在Windows系统中,可以使用CreateTimerQueueTimer函数创建一个定时器,用于在指定的时间间隔后触发回调函数。
在Linux系统中,可以使用alarm或setitimer函数设置定时器。
这些方法通常需要结合操作系统提供的API进行编程。
4. 第三方库或框架:许多编程语言和框架提供了对定时器和计数器的支持。
例如,Python中的time模块提供了sleep函数用于暂停程序执行一段时间,而Tkinter库提供了Timer类用于在GUI应用程序中创建定时器。
这些库或框架通常提供更高级的功能和更灵活的控制,但需要学习和使用特定的API或语法。
总之,使用定时器计数器的编程方法有很多种,具体选择哪种方法取决于应用程序的需求和使用的编程语言或框架。
最新东南大学-微机原理-微机系统与接口-实验五-六-实验报告-自动化学院
东南大学《微机实验及课程设计》实验报告实验五8253 计数器/定时器实验六8255 并行输入输出姓名:学号:08011专业:自动化实验室:计算机硬件技术实验时间:2012年04月27日报告时间:2013年05月15日评定成绩:审阅教师:一. 实验目的实验五:1)掌握计数器/定时器8253 的基本工作原理和编程应用方法;2)了解掌握8253 的计数器/定时器典型应用方法实验六:1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8段数码管的动态刷新显示控制;3)分析掌握8255工作方式1时的使用及编程,进一步掌握中断处理程序的编写。
二. 实验内容实验五:必做:5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。
(参考程序p63)5-2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。
(参考程序p64)实验六:(1)8255方式 0:简单输入输出实验电路如图一,8255C口输入接逻辑电平开关K0~K7,编程A口输出接 LED显示电路L0~L7;用指令从 C口输入数据,再从A口输出。
图一 8255简单输入输出(2)编程将A口 L0-L7控制成流水灯,流水间隔时间由软件产生;流水方向由K0键在线控制,随时可切换;流水间隔时间也可由K4~K7键编码控制,如 0000对应停止,0001对应 1秒,1111对应 15秒,大键盘输入 ESC键退出。
(3)8段数码管静态显示:按图二连接好电路,将 8255的 A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端 S1接+5V(选中),S0、dp接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
图二单管静态显示(4) 8段数码管动态显示:按图三连接好电路,七段数码管段码连接不变,位码驱动输入端S1、S0 接8255 C口的PC1、PC0。
项目5 定时器与脉冲计数器的设计
while(1) { if(TF0 = = 1) //定时溢出标志位为1时表示计时溢出 { TF0 = 0; //软件清零 TH0 =(65536-50000)/256; //重置50ms定时 TL0 =(65536-50000)%256; if(++T_Count == 20) //50*20=1000ms后LED滚动一次 { P0 = _crol_(P0,1); P2 = _crol_(P2,1); T_Count = 0; } } } }
任务5.1 定时器的设计
5.1.1 MCS-51单片机内部定时/计数器的原理
5.1.1.1 单片机定 时/计数器的结构
加1计数器(高8位、低8位); 工作方式控制寄存器TMOD,工作方式设置; 定时器控制寄存器TCON,启动、停止及设置溢出标志。
5.1.1.2 定时/计数器工作原理
TMOD中,各有一个控制位(C/T),分别用于控制定 时/计数器T0和T1工作在定时器方式还是计数器方式。 定时功能----计数输入信号是内部时钟脉冲,每个机器周期使 寄存器的值加1。所以,计数频率是振荡频率的1/12。 定时模式,对内部机器周期计数 定时时间 t =计数值N x Tcy
5.1.2.3 用定时/计数器的工作方式2设计定时器 方式2—8位自动装入时间常数方式 自动重装初值的8位计数方式 ,适合于用作较 精确的脉冲信号发生器。
振荡器
T0 TR0 GATE INT0
1/12
C/T=0
TL0
C/T=1 1 ≥1 & TH0
TF0
TH0(TH1)中保留初值
定时/计数器工作方式1 定时方式: 定时=(28-X)×时钟周期×12
//发光二极管定时1s闪烁主程序 void main() { for( ; ; ) { P1_0=!P1_0; //取反P1.0 使发光二极管闪烁 sTime (); //调用1s定时 } }
定时器计数器实验
一、AT89C51实验目的:
1.有两个定时/计数器,本试验中,将T1作为定时器用,定时50ms,T0作为计数器用,被计数的外部输入脉冲信号从单片机的P3.4接入,最大计数值为0ffffh。
单片机将在每50ms内对脉冲计数并送数码管实时显示,并利用T1定时从P3.7口输出周期为200ms占空比50%的方波。
2.用PROTEUS设计、仿真基于AT89C51单片机的脉冲计数与定时。
3.学会使用VSM虚拟示波器和计数/定时器
二、PROTEUS电路设计
本设计的电路原理图如图所示,这个设计都在ISIS平台中进行。
1.从PROTEUS库中选取元器件
①at89c51.bus:单片机
②7SEG-BCD-GRN:七段带译码BCD绿色数码管,
③button:按键
2.虚拟测试仪器
①vsm虚拟计数/定时器
单击工具栏,再在对象选择器中选中COUNTER TIMER(计数/计时器),打开其属性编辑况,单击运行模式下的下拉菜单如图,可以选择计数、频率、计时模式。
当前设置为计数模式。
②vsm虚拟示波器
单击工具栏,再在对象选择器中选中OSCILLOSCOPE,将P3.7与C信道连接。
三、原程序设计、生成目标代码文件
1.流程图
主程序流程
2.程序代码设计
四、proteus仿真
五、思考题
修改程序实现1S内对脉冲计数并送四位数码管实时显示,最大计数值为0ffffh,将COUNTER TIMER 属性设为频率,利用工具栏中的激励源DCLOCK作为脉冲输入源与p3.4口相连。
脉冲计数(定时计数器的记数功能实验)
实验三脉冲计数(定时/计数器的记数功能实验1、实验目的:(1熟悉8031定时/计数器的记数功能,(2掌握初始化编程方法(3掌握中断程序的调试方法2、实验内容:定时/记数器0对外部输入的脉冲进行计数,并送显示器显示。
3.实验电路图:方案1方案24、实验器材:(1超想-3000TB综合实验仪 1 台(2超想3000仿真器 1 台(3连线若干根(4计算机 1 台5、实验连线:方案1:总线插孔的P3.4接脉冲源的DOWN,按下脉冲按钮,观察数码管上计数脉冲的个数。
6、实验原理:MCS-51有两个16位的定时/计数器:T0和T1。
计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已.当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间,故可通过设定计数值来实现定时功能。
当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个由1到0 的电平变化时,计数器的值加1,从而实现计数功能。
可以通过编程来指定时计数器的功能,以及它的工作方式。
读取计数器的当前值时,应读3次。
这样可以避免在第一次读完后,第二次读之前,由于低位溢出向高位进位时的错误。
7、程序框图8、程序清单; “验证式”实验三脉冲计数(定时/记数实验;对定时器0外部输入的脉冲信号进行计数且显示OUTBIT equ 0e101hCLK164 equ 0e102h ; 段控制口(接164时钟位DAT164 equ 0e102h ; 段控制口(接164数据位LEDBuf equ 40hORG 0000hMOV SP,#60HMOV DPTR,#0e100H ;8155初始化MOV A,#03HMOVX @DPTR,AMOV TMOD,#05H ;定时器初始化MOV TH0,#00HMOV TL0,#00HSETB TR0LOOP0:MOV R2,TH0MOV R3,TL0LCALL LOOP1 ;调用二转十子程序,结果放在R4 R5 R6中MOV R0,#40H MOV A,R6LCALL PTDSMOV A,R5LCALL PTDSMOV A,R4LCALL PTDSLCALL DISPLAYSJMP LOOP0LOOP1:CLR A ;二转十子程序MOV R4,AMOV R5,AMOV R6,AMOV R7,#10H LOOP2:CLR CMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,LOOP2RETPTDS: MOV R1,A ;拆字子程序ACALL PTDS1MOV A,R1SWAP APTDS1: ANL A,#0FHMOV @R0,AINC R0RETDelay:mov r7, #0 ; 延时子程序DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDISPLAY:setb 0d3hmov r0, #LEDBufmov r1, #6 ; 共6个八段管 mov r2, #00000001b ; 从左边开始显示Loop: mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov dptr,#LEDmapmovc a,@a+dptrmov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, canl a,#0fdhmov dptr, #DAT164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管 mov r6, #1 call Delaymov a, r2 ; 显示下一位rl amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管clr 0d3hretLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h END。
定时器及其应用脉冲单元设计
定时器及其应用脉冲单元设计
定时器是一种定时的控制设备,它能够控制或维持时间或按精确程度
设定的时间,是人们构建控制系统的基本元件。
它在自动控制仪表、汽车、工业生产的控制、节目控制、家用电器等多种系统中发挥着重要作用,是
实现自动化的必要条件。
许多定时器本身带有有定时动作的输出,与其它
控制部件组合时可完成更多功能。
脉冲单元是一种特殊用途的定时器,它由脉冲定时器、脉冲计数器、
脉管记忆器、触发开关等组成,可以实现负责的定时功能,如精确定时、
定次定时控制。
因为它可以按一定的规律生成脉冲信号,可以代替机械定
时器,因此在实际工作中常被用于替代传统的机械定时器,从而实现精确
定时控制,有助于提高生产效率,降低生产成本。
脉冲单元的主要作用是按照一定的规律定时输出脉冲信号,这些信号
可以控制其它部件的操作,从而实现定时控制。
一般情况下,脉冲单元的
输出可以分为定时输出和脉冲输出。
定时输出是指定时器内部定时器定时
输出的脉冲信号,一般用于实现定时控制;脉冲输出是由计数器(又称脉
冲计数器)定时计数输出脉冲信号,可用于实现定次定时或定流定时控制。
脉冲单元的应用很广泛。
脉冲计数器 微机原理课程设计
二○一一~二○一二学年第一学期信息科学与工程学院自动化系课程设计报告书课程名称:微机原理及应用课程设计班级:自动化0901姓名:学号:指导教师:二○一一年12 月8日一、课程设计目的:综合运用本课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。
二、课程设计题目:脉冲计数器用555集成电路实现周期可调的多谐振荡器。
用8088设计一个能实现对脉冲个数记录的电路。
脉冲个数用4位LED数码显示。
具体要求:1.画出连接线路图或功能模块引脚连接图。
2.采用8088CPU作主控制器,8259作为外扩中断的管理。
3.采用4个共阴极型LED。
三、需求分析1.用555定时器设计一个多谐振荡器,可以调整其脉冲周期和占空比。
2.用8529管理中断,8088控制地址的选择和数据的输出。
3.记录脉冲的个数,并在四位LED上显示。
脉冲个数从0到9999,当超过9999时LED 清零,重新计数。
4.LED接口采用动态显示接口,阳极用VCC拉高,提高LED数码管的亮度。
四、硬件部分设计1.555多谐振荡器多谐振荡器的设计电路图,如图:上图中主要利用可变电阻R1和R2调节脉冲周期用作粗调和占空比,因为T=0.7(R1+R2)C1,α=R1/(R1+R2),其中的R2阻值范围小用作细调,R1的阻值范围大作为粗调。
这里要注意的是R1和R2都不能为0,否则输出的不是脉冲,而是稳定电平。
2.主电路的工作流程图当脉冲发出后,送入8529,8088响应中断后,调用中断程序,记录数据在LED 数码管上显示。
流程图,如图:3.主电路中主要器件分析1.多谐振荡器发出脉冲,从8259中的IRQ2上进入8259,并进行优先级选择,74LS138(U1)为8259编译地址,8259的地址为20H 或21H 。
如图:图中的14号引脚上的端口信号接到8259的片选信号上。
脉冲计数(定时计数器实验)
ORG
0000H AJMP START ORG 000BH ;T0中断入口地址 RETI ORG 001BH ;T1中断入口地址 AJMP INT_T1 ORG 0040H START: MOV SP,#60H MOV TMOD,#1DH ;置T1为方式1 ;置T0为方式1,计数方式, ;门控选通位有效 MOV TL0,#0H ;计数器清零 MOV TH0,#0H MOV TL1,#32H ;延时0.50mS常数 MOV TH1,#0FEH MOV R0,#20 ;延时 5 秒常数 SETB TR0 ;启动T0 SETB ET0 SETB TR1 ;启动T1 SETB ET1 SETB EA ;开中断 SJMP $
源代码:
INT_T1: PUSH ACC PUSH PSW CLR TR1 MOV TL1,#32H ;延时0.50mS 常数 MOV TH1,#0FEH MOV R1,TL0 ;保存计数值 MOV R2,TH0 MOV TL0,#00H ;清计数器 MOV TH0,#00H SETB TR1 DJNZ R0,EXIT MOV R0,#20 ;延时 5 秒常数 MOV DPTR,#8300H ;LED地址 MOV A,R1 MOVX @DPTR,A ;把计数值在 LED上显示 EXIT: POP PSW POP ACC RETI END
实验结束脉冲计数(定时源自数器实验)实验要求:8031内部定时计数器,按计数器模式和方式1工 作,对P3.4(T0)引脚进行计数。使用8031的T1
作定时器,50ms中断一次,看T0内每0.50ms来了
多少脉冲,将其数值按二进制数在74LS273驱动 LED灯上显示出来,5秒后再次测试。
实验目的:
1.学习8031内部定时/计数器使用方法 。
定时器、计数器简单电路编程及梯形图的经验设计法
TON T××,PT
TONR T××,PT
TOF T××,PT
2. 时基 按时基脉冲分,则有1ms、10ms、100ms 三种定时器。不同的时基标 准,定时精度、定时范围和定时器刷新的方式不同。 (1)定时精度和定时范围。 定时器的工作原理是:使能输入有效后,当前值PT对PLC内部的时基 脉冲增1计数,当计数值大于或等于定时器的预置值后,状态位置1。 其中,最小计时单位为时基脉冲的宽度,又为定时精度; 从定时器输入有效,到状态位输出有效,经过的时间为定时时间, 即:定时时间=Байду номын сангаас置值×时基。 当前值寄存器为16bit,最大计数值为32767,由此可推算不同分辨率 的定时器的设定时间范围。CPU 22X系列PLC的256个定时器分属TON (TOF)和TONR工作方式,以及3种时基标准,如表4-4所示。 可见时基越大,定时时间越长,但精度越差。
设: 输入信号:I0.0为故障信号;I0.1为消铃按钮;I0.2为试灯、 试铃按钮 输出信号:Q0.0为报警灯;Q0.1为报警电铃
设计小车自动往返运动的梯形图
正次品分拣机编程实训
控制要求 (1)用启动和停止按钮控制电动机M运行和停止。在电动机运行时, 被检测的产品(包括正次品)在皮带上运行。 (2)产品(包括正、次品)在皮带上运行时,S1(检测器)检测到 的次品,经过5s传送,到达次品剔除位置时,起动电磁铁Y驱动剔除 装置,剔除次品(电磁铁通电1s),检测器S2检测到的次品,经过 3s传送,起动Y,剔除次品;正品继续向前输送。正次品分拣操作流 程如图4-51所示。
表4-4 定时器的类型
工作方式
时基(ms) 1 TONR 10 最大定时范围(s) 32.767 327.67 定时器号 T0,T64 T1-T4,T65-T68
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
初始化程序编写 main()函数中: TMOD=0x01;//设置定时器0为工作方式1 TH0=0xFE; //定时器0高8位给初值 TL0=0xC0; //定时器0低8位给初值 EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0
中断服务程序中重新装入定时初值
振荡器
计数脉冲输入
1/12
定时 C/T=0 器
TL0 TH0
C/T=1
低5位 8位
TF0
T0 TR0 GATE INT0
1
&作方式0 定时方式:
计数初值:X= 213-T/(时钟周期×12) 定时=(213-X)×时钟周期×12
=(213 –X)*12*1/fosc 例:8*10-3=(213-X)*12*1/(12*106)
X= 213-T/(时钟周期×12) = 0110001100011000B = 0x6318
任务5.1 定时器的设计
5.1.1 MCS-51单片机内部定时/计数器的原理
5.1.1.1 单片机定 时/计数器的结构
加1计数器(高8位、低8位); 工作方式控制寄存器TMOD,工作方式设置; 定时器控制寄存器TCON,启动、停止及设置溢出标志。
5.1.1.2 定时/计数器工作原理
TMOD中,各有一个控制位(C/T),分别用于控制定 时/计数器T0和T1工作在定时器方式还是计数器方式。 定时功能----计数输入信号是内部时钟脉冲,每个机器周期使 寄存器的值加1。所以,计数频率是振荡频率的1/12。 定时模式,对内部机器周期计数 定时时间 t =计数值N x Tcy
单片机控制技术 项目式教程 (C语言版)
电子工业出版社
项目5 定时器与脉 冲计数器的设计
电子工业出版社
学习目标
能了解单片机定时/计数器的组成; 能理解单片机定时/计数器的工作原理和4种工作方式; 能掌握单片机定时/计数器的初始化方法; 能恰当运用单片机定时/计数器的功能; 能掌握定时器的设计方法; 能掌握脉冲计数器的硬件电路和软件设计方法; 能熟练编写单片机定时/计数器工作的程序。
【例】若单片机晶振为12MHz,要求产生5ms的定时,
试计算X的初值。
解:采用定时器0的方式0: 500*10-6=(213-X)*12*1/fosc x=7692=1E0CH=1 1110 000 0 1100 F0H 0CH 即 TH0=F0H , TL0 =0CH TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 00 0 0 00 00H 采用定时器1方式1: 500*10-6=(216-X )*12*1/fosc x=65036=FE0CH 即TH1=FEH, TL1 =0CH TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 01 0 0 0 0 10H
一只1 秒的定时器,用定时器的查询方式,使 AT89C51控制的一只发光二极管定时1秒闪烁。
2.任务分析 ① 确定TMOD控制字:
采用AT89C51的定时器1方式0定时,
TMOD = 0x00
② 计算计数器的计数初值:
因为方式0采用13位计数器,其最大定时时间为:8192×1 ms = 8.192 ms,可选择定时时间为5 ms,再循环200次就可以定 时为1s了。
X = 213 – 8000
=192 =0xC0
计数方式:
计数次数值N=213-X
计数初值:X= 213-计数次数值N
注意:X的低5位送TL0(TL1),TL0(TL1)的高 3位数为任意值,常取0,高8位送TH0(TH1)。
任务操作 1.任务要求
本任务要求用AT89C51的定时器1,方式0设计
计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4, T1为P3.5。 计数模式,对外部事件脉冲计数 计数脉冲周期要大于2 Tcy
计数器脉冲来源:
振荡器脉冲经过12分频 T0或T1引脚的外部脉冲
计数值:溢出时计数器值-计数初值。
计数器全1时,再输入1个脉冲就回零,并发生 溢出(TCON中TF0或TF1置1), 发中断请求 。
void timer0() interrupt 1 { TH0=0xFE; //定时器0高8位给初值 TL0=0xC0; //定时器0低8位给初值 }
5.1.2 用单片机定时/计数器设计定时器(查询方式) 5.1.2.1 用定时/计数器的工作方式0设计定时器 方式0—13位方式。由TL0的低5位和TH0的8位组成。 TH0溢出时,置位TF0标志,向CPU发出中断请求。
工作任务
叙述单片机定时/计数器4种工作方式的工作原理; 叙述单片机定时/计数器的初始化方法; 设计定时器的工作程序; 设计脉冲计数器的电路和工作程序。
项目5
定时器与脉冲计数器的设计
定时器的设计 脉冲计数器的设计
任务5.1 任务5.2
项目拓展
项目小结 思考与训练
实验板分频器的设计
0 1
1 0 1 1
方式1
方式2 方式3
16位计数器
自动重装初值的8位计数器 方式3只针对T0,T0分成两个 独立的8位定时/计数器;T1 无方式3
2.定时器控制寄存器TCON
D7
D6
D5
D4
D3
D2
D1
D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
中断请求标志
启动定时/计数器 触发方式选择
5.1.1.3
时/计数器的初始化
1.工作方式控制寄存器TMOD
D7 D6 D5 D4 D3 D2 D1 D0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
T1控制 GATE—门控位 C/T—计数/定时选择 M1 M0—工作方式选择
T0控制 注意:不能进行位寻址
定时/计数器的工作方式
M1 M0 0 0 工作方式 方式0 功能说明 13位计数器
0 停止 1 启动 0 低电平 1 下降沿
3.定时/计数器的初始化
可编程器件在使用前需要进行初始化: ① 确定TMOD控制字:编程时将控制字送TMOD;
② 计算计数器的计数初值: 编程时将计数初值送TH0、TL0或TH1、TL1; ③ 开中断(如果使用中断方式): 编程实置位EA、ETi ④ TR0或TR1位置位控制定时器的启动和停止。