文档库 最新最全的文档下载
当前位置:文档库 › STM32F1通用定时器示例详解--TimeBase

STM32F1通用定时器示例详解--TimeBase

STM32F1通用定时器示例详解--TimeBase
STM32F1通用定时器示例详解--TimeBase

STM32F1通用定时器示例详解--TimeBase

前言

基于学习的目的,详细讲解关于标准外设库中的定时器的17个示例项目函数文件。本次介绍TimeBase的示例。

一、示例详解

基于硬件平台:STM32F100B-EVAL,MCU的型号是STM32F103VET6。

软件则是其标准外设库。

1、Time Base的寄存器配置

软件配置,运行程序可以发现,系统时钟设置为24MHz,定时器使用到的是TIM2 ;

根据时钟树的图谱及其程序,该示例选择的是内部时钟源作为定时器的时钟源;

AHB 时钟 (HCLK)在RCC_CFGR寄存器中的分频系数HPRE的值为0,即SYSCLK not divided,所以HCLK就是24MHz;APB1的prescaler的系数是PPRE1:0x05,即分频4,APB1CLK为24/4 = 6M ;由于APB1的prescaler系数不为1,所以经过倍频器后就是x2,即为TIMxCLK = 6*2=12Mhz,

对于上述框图的倍频器,当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。APB1不但要为TIM2~7提供时钟,而且还要为其它外设提供时钟;设置这个倍频器可以在保证其它外设使用较低时钟频率时,TIM2~7可以工作在更高频率。

二、示例演练

该示例在达到计数值时,中断内翻转任意通用GPIO口,通过示波器观测其翻转的周期频率。这儿有一个小插曲,软件是直

接拷贝的库函数,理论上选择合适的单片机型号后,下载即可出波形结果;但是发现程序执行,示波器上出现不了波形,而且,在IAR中,寄存器调试观测窗口,发现TIM2寄存器的值初始化不了,TIM3(程序未涉及)反而出现了几个寄存器的初

始化,但是TIM3的初始化值和自己程序中的还是不一样的,另外全局变量的值,尤其SystemClock还有PrescalerValue的

值在检测窗口显示的时Error,是否因为TIM2的地址定义是否错了?查看头文件的定义以及Flash的Memory map,是对的。最终,发现可能出错的地方是在下图的配置,其中CPU clock原来的定义是72Mhz,查看手册,该颗MCU最大只有24Mh,

修改过来,然后发现程序就运行正常了,但是当自己再次想复现该现象时,修改回72Mhz,发现原来的现象再也不复现了。由于是超频使用了,不符合手册规范,所以这种情况是有可能的;在此,仅是提醒各位,配置时,这一块也要注意,否则可能会出现错误。

综合上述,本案例中,Timer的时钟源选择的是Internal clock,CK_PSC的时钟频率其实就是时钟树图中的输出TIMxCLK,然后TIMxCLK或CK_PSC经过预分频器,才是最终用于计数的时钟基本单位(clock input,输入时钟)。

另外,

算得PrescalerValue的值为(24000000/12000000)-1 = 1,即TIMx_PSC = 1,2分频,即

TIMxCLK = 6*2=12Mhz, 再除以2,即TIM2 counter clock at 6 MHz,在这里我个人觉得写成PrescalerValue =

(TIMx_CLK/6000000) -1 ,更合适。

TIM_PSCReloadMode_Immediate这里的PSC是写入立刻生效;

在上面的函数执行完成后,TIM_INT的计数时钟等已经设置好了。

接着配置各个通道的设置:

配置的模式为TIM_OCMode_Timing (值为0x00),即是冻结Forzen,适用于产生一个基准时钟;TIM_OutputState_Enable输出使能;TIM_OCPolarity_High的值为零,代表的是高电平有效;TIM_OCPreload_Disable不允许预装载;最后

TIM_Cmd(TIM2, ENABLE);,使能定时器;

允许定时器中断;

在中断函数里面,如果运行下面的语句,则出现的方波的周期为73Hz,50%PWM ;

但是,如果

这是会发现,它的周期变为了上述的约一半。示波器测试是 :45.9 Hz,50%PWM ;这是怎么回事呢 ?怎么解释?上述是update rate,所以周期是其一半。缩小CCR的值试试看是什么在影响,

其实如果了解其定时机理,就不难了解,

该示例中,CCR1_Val中的值定义为40961,周期值TIM_Period定义为65535;定时器是向上计数模式,计到ARR会变为

0重新计数;

所以,

对于中断的第一个截图,有函数capture = TIM_GetCapture1(TIM2),通过变量观测capture的值总是 = CCR1_Val =

CCR1 = 40961,然后再利用TIM_SetComparel的函数重新设置CCR1的值,在这里,CCR1_Val的值可以理解为步长,每

隔CCR1_Val个计数时间,GPIO口翻转一次,所以 :

CC1 update rate = TIM2 counter clock/ CCR1_Val = 6000000 / 40961 = 146.48Hz,从而PWM的频率为146.48/2 = 73Hz。对于中断的第二个截图,它一开始是计数到CCR1_Val 进入中断,GPIO翻转一次(由于GPIO初始定义为0,所以用示波器,触发模式,从波形上看不出来,如果设置初始值为高电平,则会看到一次宽度不一样的翻转),然后其实是每隔65535个计

数时间,GPIO口翻转一次,此时与CCR1_Val 无关,所以 :

CC1 update rate = TIM2 counter clock/ CCR1_Val = 6000000 / 65535= 91.5Hz,从而PWM的频率为91.5/2 = 45.7Hz。符

合描述。

重要通知 - 请仔细阅读

意法半导体公司及其子公司(“ST”)保留随时对ST 产品和/ 或本文档进行变更、更正、增强、修改和改进的权利,恕不另行通知。买方在订货之前应获取关于ST 产品的最新信息。ST 产品的销售依照订单确认时的相关ST 销售条款。

买方自行负责对ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。

ST 不对任何知识产权进行任何明示或默示的授权或许可。

转售的ST 产品如有不同于此处提供的信息的规定,将导致ST 针对该产品授予的任何保证失效。

ST 和ST 徽标是ST 的商标。所有其他产品或服务名称均为其各自所有者的财产。

本文档中的信息取代本文档所有早期版本中提供的信息。

? 2015 STMicroelectronics - 保留所有权利

微机接口 8253定时器实验报告剖析

浙江工业大学计算机学院实验报告 实验名称 8253定时器实验 姓名 学号 班级 教师 日期

一、实验内容与要求 1.1 实验内容 计数器方式2实验:将8253芯片的计数器0的工作方式设置为方式2,计数器初值为N,用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用TPC-USB平台上的LED 灯观察OUT0电平变化(当输入第N倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态)。 计数器方式3实验:将计数器0、计数器1的工作方式分别设置为方式3,计数初值设为1000,并同时用TPC-USB平台上的LED灯观察OUT1电平变化(频率1Hz)。 1.2 实验要求 (1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程 图,写出对应代码; (2)要了解8253定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序关 系、各种模式的编程及应用,能熟练地对其进行编程; (3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接 好实验电路; (4)计数器方式2实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用手动开 关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N倍数个脉冲后OUT0变低电平,TPC-USB平台上的LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态; (5)计数器方式3实验:连接PC与TPC-USB平台,用微机实验软件运行程序,TPC-USB 平台上的LED灯能周期性地亮灭,频率为1Hz。 二、实验原理与硬件连线 2.1 实验原理 1、8253定时/计数器芯片的内部结构:

05_STM32F4通用定时器详细讲解精编版

STM32F4系列共有14个定时器,功能很强大。14个定时器分别为: 2个高级定时器:Timer1和Timer8 10个通用定时器:Timer2~timer5 和 timer9~timer14 2个基本定时器: timer6和timer7 本篇欲以通用定时器timer3为例,详细介绍定时器的各个方面,并对其PWM 功能做彻底的探讨。 Timer3是一个16位的定时器,有四个独立通道,分别对应着PA6 PA7 PB0 PB1 主要功能是:1输入捕获——测量脉冲长度。 2 输出波形——PWM 输出和单脉冲输出。 Timer3有4个时钟源: 1:内部时钟(CK_INT ),来自RCC 的TIMxCLK 2:外部时钟模式1:外部输入TI1FP1与TI2FP2 3:外部时钟模式2:外部触发输入TIMx_ETR ,仅适用于TIM2、TIM3、TIM4,TIM3,对应 着PD2引脚 4:内部触发输入:一个定时器触发另一个定时器。 时钟源可以通过TIMx_SMCR 相关位进行设置。这里我们使用内部时钟。 定时器挂在高速外设时钟APB1或低速外设时钟APB2上,时钟不超过内部高速时钟HCLK ,故当APBx_Prescaler 不为1时,定时器时钟为其2倍,当为1时,为了不超过HCLK ,定时器时钟等于HCLK 。 例如:我们一般配置系统时钟SYSCLK 为168MHz ,内部高速时钟 AHB=168Mhz ,APB1欲分频为4,(因为APB1最高时钟为42Mhz ),那么挂在APB1总线上的timer3时钟为84Mhz 。 《STM32F4xx 中文参考手册》的424~443页列出与通用定时器相关的寄存器一共20个, 以下列出与Timer3相关的寄存器及重要寄存器的简单介绍。 1 TIM3 控制寄存器 1 (TIM3_CR1) SYSCLK(最高 AHB_Prescaler APBx_Prescaler

电子秒表显示器

实验二电子秒表显示器 【实验目的】 掌握定时/计数器的工作原理,熟悉定时/计数器中断法编程与调试内容。【实验原理】 按照教材图A.65,绘制实验二电路原理图; 在编程软件配合下,要求实现如下功能:数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数器到60时清0,并从“00”重新开始,如此周而复始进行。 软件编程原理为:采用T0定时方式1中断法编程,其中1s定时采用20次50ms定时中断的方案实现,编程流程图如A.66所示 【实验内容】 (1)理解定时器的工作原理,完成定时中断程序的编写与调试; (2)练习μVision3与ISIS的联机仿真方法。 【实验步骤】 (1)提前阅读与实验2相关的阅读材料; (2)参考图A.65和A.6,在ISIS中完成电路原理图的绘制; (3)参考图A.66在μVision3中编写和编译C51程序,生成可执行文件; (4)在μVision3中启动ISIS的仿真运行,并联机调试。 【实验程序】 #include unsigned char code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char i=0,j=0; void timer()interrupt 1{ i++; if(i==20){ i=0; j++; } if(j==60) j=0; P0=led[j/10]; P2=led[j%10]; TH0=0x3c; TL0=0xb0; } void main(void){

TMOD=0x01; TH0=0x3c; TL0=0xb0; P0=led[j/10]; P2=led[j%10]; ET0=1; EA=1; TR0=1; while(1); } 【实验原理图】 【仿真运行截图】

数字秒表的设计与实现实验报告

电子科技大学《数字秒表课程设计》 姓名: xxx 学号: 学院: 指导老师:xx

摘要 EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。该设计具有外围电路少、集成度高、可靠性强等优点。通过数码管驱动电路动态显示计时结果。给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。 关键词:FPGA, VHDL, EDA, 数字秒表

目录 第一章引言 (4) 第二章设计背景 (5) 2.1 方案设计 (5) 2.2 系统总体框图 (5) 2.3 -FPGA实验板 (5) 2.4 系统功能要求 (6) 2.5 开发软件 (6) 2.5.1 ISE10.1简介 (6) 2.5.2 ModelSim简介 (6) 2.6 VHDL语言简介 (7) 第三章模块设计 (8) 3.1 分频器 (8) 3.2 计数器 (8) 3.3 数据锁存器 (9) 3.4 控制器 (9) 3.5 扫描控制电路 (10) 3.6 按键消抖电路 (11) 第四章总体设计 (12) 第五章结论 (13) 附录 (14)

第一章引言 数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。

8253定时器(微机原理)1

接口实验三 8253定时器 / 计数器 一、实验目的 ⒈学会8253芯片和微机接口的原理和方法。 ⒉. 掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 1. 用8253的0通道产生周期为30毫秒的方波,去控制发光二极管的亮和灭。 2.用8253的0通道和1通道级联的工作方式,产生周期为20秒的方波,去控制发光二极管的亮和灭。 3. 用8253的0通道产生1、2、3、4、5、6、7、8(1的高音)这八个音阶频率的方波信号,送到小喇叭去控制其发声。 三、实验接线图 图1

图2 图3 图6-5 四、实验原理 对8253编程,使OUT1输出周期为2MHZ(周期为0.5μS)的时钟直接加到CLK1,则OUT1输出的脉冲周期最大只有0.5μS*65536=32768μS=32.768MS,达不到20秒的延时要求,为此,需用几个通道级连的方案来解决这个问题。 设N0=5000,工作于方式2,则从OUT0端可得到序列负脉冲,频率为2MHZ/5000=400HZ,周期为2.5MS。再把该信号连到CLK1,并使通道1工作于方式3,使OUT1输出周期为20秒(频率为1/20=0.05HZ)的方波即可,应取时间常数N1=400HZ/0.05HZ=8000。

分频电路由一片74LS393组成, T0-T7为分频输出插孔。该计数器在加电时由RESET信号清零。当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。 五、编程指南 ⒈8253芯片介绍 8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。 8253的功能用途: ⑴延时中断⑸实时时钟 ⑵可编程频率发生器⑹数字单稳 ⑶事件计数器⑺复杂的电机控制器 ⑷二进制倍频器 2,8253的六种工作方式: ⑴方式0:计数结束中断⑷方式3:方波频率发生器 ⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号 ⑶方式2:频率发生器⑹方式5:硬件触发的选通信号 六、实验程序框图 七、实验步骤 ⒈按图1连好实验线路 ⑴8253的GATE0接+5V。

[优质文档]试验五电子秒表显示器

[优质文档]试验五电子秒表显示器 洛阳理工学院实验报告 系别计算机系班级B110507学号姓名课程名称单片机原理及其应用实 验日期2013-10-25实验名称电子秒表显示器成绩 实验目的: 掌握中断和定时/计数器的工作原理,熟悉C51编程与调试方法。实验原理:实验电路原理图如图1所示,由共阴极数码管LED1和LED2 P0 口、P2口、上拉电阻R2-R8以及Vcc组成的输出电路;由C1、C2、晶振XI、引脚XTAL1 XTAL2 与接地点组成的时钟电路;由C3 R1、引脚RST和Vcc组成的上电复位_____ 电路;由Vcc和引脚EA组成的片内ROM选择电路。(元件参数见表1)Array表1实验元件清单 元件类别电路符号元件名称 Microprocessor ICs U1 80C51 Miscella neous X1/12MHz CRYSTAL Cap acitors C1~C2/1 nF CAP Cap acitors C3/22uF CAP-ELEC Resistors Packs R2~R8/1k RES Resistors R1/100 Q RES Optoelectro nics LED1~LED2 7SEG-COM-CAT-GRN

实验电路在软件配合下,要求实现如下功能:数码管的初始显示值为“ 00” ;当1s产生时,秒计数器加1;秒计数到60时清0,并从“ 00”重新开始,如此周而复始进行。 软件编程原理为:采用T0定时方式1中断法,其中1s定时采用20次50ms定时中断的方案实现,变成流程图如图2所示。 I王钿 8 TC中断工作 方或 科釣扛 L 捋称数输出显冠 1 幵功 图2软件流程图实验内容: (1)理解定时器的工作原理,完成定时中断程序的编写与调试;(2)练习uVision3与ISIS的联机仿真方法。 实验步骤: (1) 提前阅读与实验5相关的阅读材料; (2) 参照实验原理图,在ISIS中完成电路原理图的绘制;(3)参照软件流程 图,在uVision3中编写和编译C51程序,生成可执行文件; ⑷在uVision3中启动ISIS的仿真运行,并进行联机调试。仿真结果:

数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告

实验三、综合实验电路 一、实验目的: 通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。 二、实验原理: 根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路 三、实验设备与器件: 主机与实验箱 四、实验内容: (1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟, 要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。 (2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时 的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。 (3)实验设计流程:

(4)输入输出表: (5)各个功能模块的实现: A、计时功能模块的实现(电路图及说明)秒表部分及说明

说明:该部分是实现功能正常计时中的秒部分的计时工作。如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。 注解:第一个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平VCC 第二个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平第一个163的预置位段 分钟部分以及说明:

通用定时器总结

STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM 互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。 通用定时器的定义:STM32的通用定时器是一个通过可编程预分频器(PSC)驱动的16位自动装载计数器(CNT)构成。 功用:STM32的通用定时器可以被用于测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。 分频系数:决定定时器的时基,即最小定时时间。 定时器的时钟来源: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器。当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。 举一个例子说明。假定AHB=36MHz,因为APB1允许的最大频率为36MHz,所以APB1的预分频系数可以取任意数值; 当预分频系数=1时,APB1=36MHz,TIM2~7的时钟频率=36MHz(倍频器不起作用); 当预分频系数=2时,APB1=18MHz,在倍频器的作用下,TIM2~7的时钟频率=36MHz。 由于APB1不仅给通用定时器提供时钟,还给其他外设提供时钟,因此也体现了APB1 Prescaler设计的灵活性。 对自动重装载寄存器赋值,TIM_Period的大小实际上表示的是需要经过TIM_Period次计数后才会发生一次更新或中断。对TIM_Prescaler的设置,直接决定定时器的时钟频率。通俗点说,就是一秒钟能计数多少次。比如算出来的时钟频率是2000,也就是一秒钟会计数2000次,而此时如果TIM_Period设置为4000,即4000次计数后就会中断一次。由于时钟频率是一秒钟计数2000次,因此只要2秒钟,就会中断一次。发生中断时间=(TIM_Prescaler+1)* (TIM_Period+1)/FLK。 同样需要注意的,一进入中断服务程序,第一步要做的,就是清除掉中断标志位。以便

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

电子秒表电路实验报告1

电子技术课程设计 报告 设计题目:电子秒表 院(部):物理与电子信息学院 专业班级:电子信息工程 学生姓名: 学号: 指导教师: 摘要

秒表应用于我们生活、工作、运动等需要精确计时的方面。它由刚开始的机械式秒表发展到今天所常用的数字式秒表。秒表的计时精度越来越高,功能越来越多,构造也日益复杂。 本次数字电路课程设计的数字式秒表的要求为:显示分辨率为1s/100,外接系统时钟频率为100KHz;计时最长时间为60min,五位显示器,显示时间最长为59m59.99s;系统设置启/停键和复位键。复位键用来消零,做好计时准备、启/停键是控制秒表起停的功能键。 针对上述设计要求,先前往校图书馆借阅了大量的数字电路设计方面的书籍,以及一本电子元件方面的工具书,以待查阅各种设计中所需要的元件。其次安装并学习了数字电路设计中所常用的Multisim仿真软件,在课程设计过程的电路图设计与电路的仿真方面帮助我们发现了设计电路方面的不足与错误之处。 关键字:555定时器十进制计数器六进制计数器多谐振荡器

目录 1.选题与需求分析 (1) 1.1设计任务 (1) 1.2 设计任务 (1) 1.3设计构思 (1) 1.4设计软件 (2) 2.电子秒表电路分析 (3) 2.1总体分析 (3) 2.2电路工作总体框图 (3) 3.各部分电路设计 (4) 3.1启动与停止电路 (4) 3.2时钟脉冲发生和控制信号 (4) 3.3 设计十进制加法计数器 (6) 3.4 设计六进制加法计数器 (7) 3.5 清零电路设计 (8) 3.7 总体电路图: (10) 4 结束语与心得体会 (12)

可编程定时器计数器(8253) 实验报告

实验名称可编程定时器/计数器(8253)学生姓名 学生学号 专业班级 指导老师 2015-1-7

实验六可编程定时器/计数器(8253) 一、实验目的 掌握8253芯片和微机接口原理和方法,掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 1.设计8253定时器/技术器仿真电路图; 2.根据仿真电路图,编写代码,对8253定时器/计数器进行仿真。 三、实验要求 1.要求计数器2工作于模式1(暂稳态触发器),计数初值为1250; 2.计数器0工作于方式3(方波模式),输出一个1KHz的方波,8253的 输入时钟为1MHz,计数初始值格式为BCD。 3.8253与系统的连接如图1所示。 图1计数器8253与8086连接原理图

注:实验过程中,发现图1有误。应将8253定时器/计数器右边部分的电阻R2与按钮交换位置。 四、实验原理 8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。 8253的工作方式3被称作方波发生器。任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。 进入工作方式3,OUTi输出低电平,装入计数值后,OUTi立即跳变为高电平。如果当GATE为高电平,则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为n×CLKi周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出周期为n×CLKi周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。 8253定时器/计数器控制字决定这定时器0,1,2的工作模式。一旦CPU对控制字进行写操作,且对相应的定时器有效,则相应定时器改变工作模式,可能准备接收计时初值。控制字的格式如图2所示。

stm32定时器的区别

STM32高级定时器、通用定时器(TIMx) 、基本定时器(TIM6和TIM7) 区别? 高级定时器TIM1和TIM8、通用定时器(TIM2,TIM3,TIM4,TIM5) 、基本定时器(TIM6和TIM7) 区别? TIM1和TIM8主要特性TIM1和TIM8定时器的功能包括: ● 16位向上、向下、向上/下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值 ● 多达4个独立通道:─ 输入捕获─ 输出比较─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 死区时间可编程的互补输出 ● 使用外部信号控制定时器和定时器互联的同步电路 ● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 ● 如下事件发生时产生中断/DMA:─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获─ 输出比较─ 刹车信号输入 ● 支持针对定位的增量(正交)编码器和霍尔传感器电路 ● 触发输入作为外部时钟或者按周期的电流管理 TIMx主要功能通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: ● 16位向上、向下、向上/向下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值 ● 4个独立通道:─ 输入捕获─ 输出比较─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 使用外部信号控制定时器和定时器互连的同步电路 ● 如下事件发生时产生中断/DMA:─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获─ 输出比较 ● 支持针对定位的增量(正交)编码器和霍尔传感器电路 ● 触发输入作为外部时钟或者按周期的电流管理 TIM6和TIM7的主要特性TIM6和TIM7定时器的主要功能包括: ● 16位自动重装载累加计数器 ● 16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频 ● 触发DAC的同步电路注:此项是TIM6/7独有功能. ● 在更新事件(计数器溢出)时产生中断/DMA请求 强大,高级定时器应该是用于电机控制方面的吧

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

实验三 8253定时器

实验三8253定时器/计数器实验 姓名:张朗学号:11121535 一、实验目的 1. 学会8255芯片与微机接口的原理和方法。 2. 掌握8255定时器/计数器的工作原理和编程方法。 二、实验内容 编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。 1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。 2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。 3.上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。 三、实验区域电路连接图

CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1; GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元) 四、程序框图 五、编程

1.T=1.48s CODE SEGMENT ASSUME CS:CODE ORG 1200H START: CLI MOV DX, 0043H MOV AL, 34H OUT DX, AL MOV DX, 0040H MOV AL, 0EEH OUT DX, AL MOV AL, 02H OUT DX, AL MOV DX, 0043H MOV AL, 76H ;01110110设置计数器1,方式3,16位二进制计数OUT DX, AL MOV DX, 0041H MOV AL, 0E8H OUT DX, AL MOV AL, 03H OUT DX, AL JMP $ ;8253自行控制led灯 CODE ENDS END START

单片机电子秒表显示器

实验课程:单片机原理及应用 实验项目:电子秒表显示器 实验地点:计算机中心三楼一号机房 班级: 姓名: 学号: 指导教师: 实验日期: 2019-12-18 一、实验目的 掌握中断和定时/计数器工作原理,熟悉C51编程与调试方法。 二、实验原理 实验电路原理图如图所示。 在编程软件配合下,要求实现如下功能:数码管的初始显示值为

“00”;当1s产生时,秒计数器加1;秒计数到60时清0,并从“00”重新开始,如此周而复始进行。 软件编程原理为:采用T0定时方式1中断法编程,其中1s定时采用20次50ms定时中断的方案实现。 三.实验内容 (1)理解定时器的工作原理,完成定时中断程序的编写与调试。 (2)练习μVision3与ISIS的联机仿真方法。 四.实验结果 (1)C51源程序 /*电子秒表显示器程序*/ #include unsigned char count=0; //定义中断次数计数器 unsigned char second=0;//定义秒计数 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} ;//0-9数码管段码 timer0() interrupt 1//T0中断函数声明 /*以下函数实现秒计数 实现方式为: count 自增,若count=20则count清零,s增1*/ { count++; //count增1

if(count==20)//若count=20 { count=0;//count清零 second++;//s增1 } if(second==60) second=0;//若s=60,s清零 P0=table[second/10];//P0对s取整 P2=table[second%10];//P0对s取余 TH0=0x3c;//T0重新载计数初值 TL0=0xb0; } main() { TMOD=0x01;//T0定时(50ms)方式1初始化 TH0=0x3c;//T0赋计数初值 TL0=0xb0; P0=table[second/10];//P0与P2显示初始值0 P2=table[second%10]; ET0=1;//启动T0 EA=1;//开中断

电子秒表设计实验报告

淮阴工学院 《数字电子技术》课程实验期末考核 2014-2015学年第2学期实验名称:电子秒表电路的设计 班级: 学号: 姓名: 学院:电子与电气工程学院 专业:自动化 系别:自动化 指导教师:《数字电子技术》实验指导教师组成绩: 2015年07月

电子秒表电路的设计 一、实验目的 1 .学习数字电路中基本RS 触发器、单稳态触发器、时钟发生器及计数、译码显示等单元电路的综合应用。 2 .学习电子秒表的调试方法。 二、实验原理 图11 -1 为电子秒表的电原理图。按功能分成四个单元电路进行分析。

1.基本RS 触发器 图11 -1 中单元I 为用集成与非门构成的基本RS 触发器。属低电平直接触发的触发器,有直接置位、复位的功能。 它的一路输出作为单稳态触发器的输入,另一路输出Q 作为与非门5 的输入控制信号。 按动按钮开关K 2(接地),则门1 输出=1 ;门2 输出Q =0 ,K 2 复位 后Q 、状态保持不变。再按动按钮开关K 1 , 则Q 由0 变为1 ,门5 开启, 为计数器启动作好准备。由1 变0 ,送出负脉冲,启动单稳态触发器工作。 基本RS 触发器在电子秒表中的职能是启动和停止秒表的工作。 2. 时钟发生器 图11 -1 中单元Ⅲ为用555 定时器构成的多谐振荡器,是一种性能较好的 时钟源。 调节电位器 R W ,使在输出端3 获得频率为50HZ 的矩形波信号,当基本RS 触发器Q =1 时,门5 开启,此时50HZ 脉冲信号通过门5 作为计数脉冲加于 计数器①的计数输入端CP 2 。

图11-2 单稳态触发器波形图图11-3 74LS90引脚排列 3.计数及译码显示 二—五—十进制加法计数器74LS90 构成电子秒表的计数单元,如图11 -1 中单元Ⅳ所示。其中计数器①接成五进制形式,对频率为50HZ 的时钟 取得周期为0.1S 的矩形脉冲,作为计数器②的脉冲进行五分频,在输出端Q D 时钟输入。计数器②及计数器③接成8421 码十进制形式,其输出端与实验装置上译码显示单元的相应输入端连接,可显示0.1 ~0.9 秒;1 ~9 秒计时。 注:集成异步计数器74LS90 74LS90 是异步二—五—十进制加法计数器,它既可以作二进制加法计数器,又可以作五进制和十进制加法计数器。

8253定时

8253定时/计数器实验 一、实验目的 了解8253定时器的硬件连接方法及时序关系,掌握8253工作方式以及编程方法。二、实验内容 编程将8253定时器0设定为方式3,定时器1设定在方式2,定时器2设定在方式2,定时器0输出作为定时器1的输入,定时器1的输出作为定时器2的输入,定时器2的输出接在一个LED上,运行后可观察到该LED在不停闪烁。 1.8253是一种可编程计数器/定时器,它是用软、硬技术结合的方法实现定时和计数控制。其主要有以下特点: ①有3个独立的16位计数器,每个计数器均以减法计数。 ②每个计数器都可按二进制计数或十进制(BCD码)计数。 ③每个计数器都可由程序设置6种工作方式。 ④每个计数器计数速度可以达2MHz。 ⑤所有I/O都可与TTL兼容 2.8253部分管脚的功能简介: D0-D7——数据总线缓冲器 A0-A7——地址输入线,用来选择3个计数器和控制寄存器中的一个。 CLK——时钟脉冲输入端。计数脉冲加到CLK输入端,可进行二进制或十进制减1的计数。 GATE——门控脉冲输入,用以控制计数或复位。通常当其为低电平时,禁止计数器的工作,即此输入信号即可完成外部触发启动定时作用,又可用于中止计数或定时作用。 OUT——计数到零或定时时间到脉冲输出。当预置的数值减到零时,从OUT输出端输出一信号,在不同的方式下,可输出不同形式的信号。可以用作中断请求,也可用作周期性的负脉冲或方波输出。 三、实验内容及步骤 本实验需要用到单片机最小应用系统CPU模块(F1区)、8253模块(H3区)、时钟发生电路模块(C4区)和计数器/频率计(A4区)。 1.用导线单片机最小应用系统P 2.0、P2.1、P2.7、RD、WR分别接8253的A0、A1、CS-8253、RD、WR;单片机最小应用系统的P0口JD4F接8253模块的D0-7口JD0H,时钟发生电路模块的250kHz接8253模块的CLK0; GATE0接+5V,OUT0接计数器/频率计(A4区)的F IN 。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH20_8253.ASM”,进行编译,直到编译无误。 4.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。 5.从计数器/频率计可以看到OUT0输出的频率是CLKO的256分频(大约=970Hz)。 四、源程序(见光盘中的程序文件夹) 五、思考题 1.比较8253的六种工作方式的异同,并列表分析。 2.分析如何根据实验电路确定8253的端口地址? 六、实验电路

单片机计数显示器

电子秒表显示器 一、设计要求及目的 设计要求:在Keil C中用C51语言编程,并在Proteus中模拟51单片机的电子秒表显示器,并在电子秒表显示器中加入中断和定时,使得电子秒表显示 器反复的显示某个区间(0~60)的值。 设计目的:熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法,同时,掌握C51语言的编程方式 和数据结构,掌握中断和定时的概念以及在51系列单片机中的应用。 二、实验环境 操作平台:Windows 编程软件:Keil C 模拟仿真软件:Proteus8 三、元器件列表 四、实验原理

1.实验电路原理图如图1所示,图中有如下5个分支点路:由共阴极数码管LED1 和LED2、P0口、P2口、上拉电阻RP1以及V cc组成的输出电路;由按钮开关BUT、、和接地点组成的输入电路;由C1、C2、晶振X1、引脚XTAL1、XTAL2与接地点组成的时钟电路;由C3、R1、引脚RST和V cc组成的上电复位电路; 由V cc和引脚EA组成片内ROM选择电路(简称片选电路)。 图表 1 实验原理图 2.数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数器到60 时清零,并从“00”重新开始,如此周而反复。 3.软件编程原理:采用T0定时方式1中断法编程,其中1s定时采用20次50ms 定时中断的方案实现。程序设计的流程图如图2所示。

主函数 变量定义初始化T0定时方式1初始 化 计数初值初始化数码管显示初始化T0中断初始化 启动T0 原地循环 T0中断函数 中断计数器加1 1s计时到? 秒计数器加1, 中断计数器清0 60s计时到? 秒计数器清0 秒值输出显示 重装计数初值 中断返回 Y Y N N 图表2 程序流程图 五、程序源代码 #include<> unsigned char count1=0; //中断计数器 unsigned char count2=0; //计数器变量 usigned char code table[ ]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //LED显示字符 timer0() interrupt 1{ //T0中断函数 count1++; //计数器增1

数字电路实验电子秒表设计

* * 交通大学 信息科学与工程学院 综合性实验报告 姓名:*** 学号631206050*** 班级:2012 级软件2班 实验项目名称:电子秒表 实验项目性质:设计性实验 实验所属课程:数字电路技术基础 实验室(中心):电子电工实验室 指导教帅: *** _________________________ 实验完成时间:2013 年J2 月20 日

一、实验目的 1. 熟悉计数器的工作原理及特点; 2. 了解和掌握四位同步可预置二进制计数器 74LS161的使用方法; 3. 学习设计N进制加法计数器的方法; 4. 了解电子秒表的设计原理; 5. 掌握电子秒表的设计方法; 二、实验内容及要求 1. 自己设计的同学可以在实验中验证; 2. 按老师要求做的最好回去用EW殷计60分钟的电子秒表; 3. 完成实验报告,附上电路图及仿真结果; 4. 总结数字电路设计的一般方法,掌握常见的数字电路设计的软件。 三、实验原理 本实验采用4枚74LS161计数器及少量的门电路组成。当原有计数器从全0状态开始计数并接收了n个脉冲后,电路进入SN状态;如果将SN状态译码产生一个置零信号加入到计数器的置零输入端,则计数器立刻返回S0状态,因此可以得到相应进制 的计数器。由丁电路一旦进入SN状态后立刻乂被置成S0状态,所以SN状态只在极短的时间

出现,在稳定的状态循环中不包括SN状态。 本实验采用的4枚74LS161计数器中其中两枚采用十进制计数,另外两枚采用六进制计数用丁实现60分钟秒表的设计。 五、实验过程及原始记录(含电路图) 本实验采用4枚74LS161计数器进行实验设计,用丁构成秒表;设计过程中其中两枚需设计成十进制计数器;另外两枚需设计成6进制计数器。 六进制计数器:当Q3Q2Q1Q0=0110时,置零输入端输入置零信号使计数器活零;当Q3Q2Q1Q0=0101时,产生一个进位信号输入下一级计数器的EP、ET工作状态控制端。 十进制计数器:当Q3Q2Q1Q0=1010时,置零输入端输入置零信号使计数器活零;当Q3Q2Q1Q0=1001时,产生一个进位信号输入下一级计数器的EP、ET工作状态控制端。 其电路图实现如下:

8253定时器计数器实验

洛阳理工学院实验报告

(1)、连接实验电路 连线: 8253 CS ------ 端口地址 300CS PACK IMS ----- 393 1A 393 1QD ------ 8253 CLK1 8253 OUT1 ---- 8253 CLK2 8253 OUT2 ---- 发光二极管 L15 8253 GATE1 -- (A10)+5V 8253 GATE2 -- (A10)+5V 结果如下图所示: (2)、实验程序如下所示: CS8253 EQU 0303H COUNT0 EQU 0300H COUNT1 EQU 0301H COUNT2 EQU 0302H CODE SEGMENT ASSUME CS:CODE START PROC NEAR MOV DX,CS8253 MOV AL,01110110B OUT DX,AL

MOV DX,COUNT1 MOV AX,307 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,CS8253 MOV AL,10110110B OUT DX,AL MOV DX,COUNT2 MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL JMP $ START ENDP CODE ENDS (3)、经编译、链接无语法错误后装载到实验系统,全速运行程序,观察发光二极管L15,应有周期为1s的点亮、熄灭。结果如下图所示: 一秒后又熄灭,如此往复。 (4)、做完实验后,应按暂停命令中止程序的运行。 二、8253计数器实验 验证8253的工作方式3,CLK1每输入5个单脉冲信号,改变一次OUT1状态。 实验电路: DATA BUS D7~D0 D0 8 OUT0 10 D1 7 GATE0 11 D2 6 CLK0 9 D3 5 D4 4 D5 3 D6 2 OUT1 13 D7 1 GATE1 14 CLK1 15 CS 21 RD 22 WR 23 OUT2 17 A0 19 GATE2 16 A1 20 CLK2 18 8253 /CS 300CS IOR IOW A0 A1 VCC 1.8432MHz OUT0 GATE1 CLK1 OUT1 OUT2 CLK2 GATE2 +5V SP单次正脉冲 L15发光二极管显示

相关文档