定时器计数实验

#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int  u16;
sbit led = P1^0;
u8 timer;
void main (void)
{
    TMOD = 0x01;//设置TMOD,使得T0工作在16位定时。
    TH0 = (65535-50000) / 256;
    TL0 = (65535-50000) % 256;
    EA = 1; //开放总中断
    ET0 = 1;//开放定时器0的溢出中断
    TR0 = 1;//开始定时
    while(1) //作用就是让程序结束  否则程序一直在这运行;
    {
        ;
    }
}
//实现方式一
void timer0_service(void) interrupt 1
{
    TH0 = (65535-50000) / 256;
    TL0 = (65535-50000) % 256;    
    //50ms已经设置好了
    timer ++;
    if (timer == 20)
    {
        timer = 0;
        led = ~led;
    }
}

时间: 2024-11-08 02:32:47

定时器计数实验的相关文章

cortex_m3_stm32嵌入式学习笔记(八):定时器中断实验

STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器. 本节学习通用定时器 TIM3 STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等. STM3 的通用 TIMx (TIM2. TIM3. TIM4 和 TIM5)定时器功能包括: 1)16 位向上.向下.向上/向下自动装载计数器( TIMx_CNT). 2)16 位可

STM32学习笔记(五)——通用定时器计数延时

STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就是功能多了一些,这些计数器都是自动重新装载初值的,使用起来非常方便,而且计数时钟频率可以通过分频系数来设置.本文章将介绍使用定时器中断来控制LED间隔1s闪烁. 计数的时钟来源主要有四个: 内部时钟CK_INT 外部时钟模式1:外部输入脚TIx 外部时钟模式2:外部触发输入ETR,仅适用于 TIM2

定时器/计数器实验报告

/************************************************* 实验名称:定时器实验一 实验目的:利用定时器/计数器让发光二极管以1HZ闪烁 *************************************************/ #include<reg52.h> sbit P10 = P1^0; unsigned char flag; void main() { flag = 0; P10 = 0; TH0 = 0xfe; TH0 = 0x

stm32定时器计数功能

stm32的外部时钟源模式2和外部时钟源模式1都可以用来实现计数功能,他们的区别是什么呢? 以上2种模式对应不同的管脚输入: 外部时钟源模式2 <-->TIMx_ETR 外部时钟源模式1 <-->TIMx_CHx 从功能框图可以看到,ETR模式下多了一个分频器ETPS,搜索该分频器的寄存器,有如下解释:外部触发信号ETRP的频率必须最多是TIMxCLK频率的1/4.当输入较快的外部时钟时,可以使用预分频降低ETRP的频率. 每个定时器只能对一路信号计数,但每个定时器可同时捕捉4路信

定时器中断实验

int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2,); LED_Init(); delay_init(); TIM3_Int_Init(4999,7199);//500ms while(1) { LED1=!LED1; TIM_ClearITPendingBit(TIM3,TIM_IT_Update); } } main timer.c #include "timer.h" #include "led

【iCore3 双核心板】例程八:定时器PWM实验——呼吸灯

实验指导书及代码包下载: http://pan.baidu.com/s/1dEnH5dB iCore3 购买链接: https://item.taobao.com/item.htm?id=524229438677

微机8254计数实验

INTR_IVADD     EQU   003CH        ;INTR对应的中断矢量地址 IOY0           EQU   0A000H        ;片选IOY0对应的端口始地址MY8254_COUNT0  EQU   IOY0+00H*2   ;8254计数器0端口地址MY8254_COUNT1  EQU   IOY0+01H*2   ;8254计数器1端口地址MY8254_COUNT2  EQU   IOY0+02H*2   ;8254计数器2端口地址MY8254_MOD

[ZigBee] 6、ZigBee基础实验——定时器3和定时器4(8 位定时器)

上一节讲了16位定时器1,本节讲8位定时器3和定时器4! 1.综述 Timer 3 and Timer 4 are two 8-bit timers(8位定时器). Each timer has two independent capture/compare channels(独立的捕获/比较通道),each using one I/O pin per channel. Features: · Two capture/compare channels· Set, clear or toggle

STM32 定时器用于外部脉冲计数(转)

源:STM32 定时器用于外部脉冲计数 STM32 定时器(一)——定时器时间的计算 STM32的定时器是灰常NB的,也是灰常让人头晕的(当然是对于白菜来说的). STM32中的定时器有很多用法: (一)系统时钟(SysTick) 设置非常简单,以下是产生1ms中断的设置,和产生10ms延时的函数: void RCC_Configuration(void) { RCC_ClocksTypeDef RCC_ClockFreq; SystemInit();//源自system_stm32f10x.c