0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

各类寄存器的计算以及中断

电子设计 来源:电子设计 作者:电子设计 2020-10-30 11:02 次阅读

一、定时器 / 计数器简介

设置等待时间,到达等待时间之后执行指定的硬件操作。

定时器最基本的功能就是定时,比如说定时发送串口数据,定时采集 AD 数据,如果将定时器和 IO 结合起来就可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以产生 PWM 方波,定时器产生 PWM 控制电机状态是工业控制的普通。

二、定时器 / 计数器相关寄存器介绍

1、计数寄存器 TH 和 HL

T/C 是 16 位的,计数寄存器由 TH 高 8 位和 TL 低 8 位构成。

对应 T/C0 为 TH0 和 TL0, 对应 T/C1 为 TH1 和 TL1,定时器 / 计数器的初始值通过 TH0/TL0 和 TH1/TL1 设置。

2、定时器 / 计数器控制寄存器 TCON

3、T/C 的方式控制寄存器 TMOD


三、定时器的计数初始值计算

四、中断源及中断信号

五、参考代码

/******************************************************


功能描述:LED 会循环点亮 1 秒,熄灭 1 秒。


使用单片机内部定时器可实现准确延时


******************************************************/


#include "reg52.h"


// 此文件中定义了单片机的一些特殊功能寄存器


typedef unsigned int u16; // 对数据类型进行声明定义


typedef unsigned char u8;


sbit led=P2^0; // 定义 P20 口是 led

void Timer0Init()


{


TMOD|=0X01; // 选择为定时器 0 模式,工作方式 1(16 位),仅用 TR0 打开启动


TH0=0XFC; // 给定时器赋初值,定时 1ms 高 8 位


TL0=0X18; // 低 8 位(可用软件计算,公司参考上面)


ET0=1; // 允许定时器 0 中断


EA=1; // 打开总中断


TR0=1; // 打开定时器 0,启动 T/C0 运行


}


void main()


{


Timer0Init();


while(1);


}

void Timer0() interrupt 1 //1 是中断号


{


static u16 i;


TH0=0XFC; // 计数器寄存高 8 位重新载入


TL0=0X18; // 计数器寄存低 8 位重新载入


i++;


if(i==1000)


{


i=0;


led=~led;


}


}


审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5249

    浏览量

    119166
收藏 人收藏

    评论

    相关推荐

    寄存器的类型和作用

    计算机科学中,寄存器(Register)是一种高速存储单元,它位于CPU内部,与CPU的运算单元和逻辑控制单元紧密相连。寄存器的主要作用是暂时存储指令、操作数和地址等临时数据,以便CPU快速访问和处理。由于
    的头像 发表于 09-05 14:11 219次阅读

    寄存器故障分析

    寄存器故障分析是计算机硬件维护与系统稳定性保障中的重要环节。寄存器作为计算机中的关键组成部分,负责存储和传输数据,其稳定性和可靠性直接影响到整个计算
    的头像 发表于 08-29 11:26 250次阅读

    寄存器是什么意思?寄存器是如何构成的?

    计算机科学中,寄存器(Register)是一个高速存储单元,它位于中央处理(CPU)内部,用于存储计算机程序执行过程中所需要的数据、指令地址或状态信息。
    的头像 发表于 08-02 18:23 1383次阅读
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何构成的?

    寄存器寻址和直接寻址的区别

    寄存器寻址和直接寻址是计算机指令系统中的两种基本寻址方式。它们在指令的执行过程中起着至关重要的作用,决定了指令操作数的来源和目标。下面我们将介绍这两种寻址方式的特点、区别以及在实际应用中的优缺点
    的头像 发表于 07-12 10:42 416次阅读

    寄存器寻址的实现方式

    计算机体系结构中,寄存器寻址是一种常见的寻址方式,它允许程序直接访问CPU内部的寄存器寄存器寻址可以提高程序的执行效率,因为它避免了对内存的访问。
    的头像 发表于 07-12 10:36 338次阅读

    寄存器分为基本寄存器和什么两种

    寄存器计算机中用于存储数据的高速存储单元,它们是CPU内部的重要组成部分。寄存器可以分为基本寄存器和扩展寄存器两种类型。 一、基本
    的头像 发表于 07-12 10:31 612次阅读

    什么是寄存器?有哪些功能和应用?

    计算机科学中,寄存器(Register)是一个高速存储单元,用于存储计算机程序执行过程中所需要的数据、指令地址或状态信息。它们是计算机体系结构中至关重要的组成部分,对
    的头像 发表于 05-30 17:14 7540次阅读

    寄存器和内存的区别

    计算机体系结构中,寄存器和内存是两个至关重要的组成部分。它们各自承担着不同的角色,共同确保计算机系统的正常运行。本文将对寄存器和内存进行详细的介绍,包括它们的定义、功能
    的头像 发表于 05-12 17:11 994次阅读

    寄存器的定义和功能 寄存器的分类和工作原理

    计算机系统中,寄存器作为一种特殊的存储设备,扮演着至关重要的角色。它是中央处理(CPU)内部的重要组成部分,用于暂时存储数据和指令,以便于CPU进行高速的运算和控制。本文将对寄存器
    的头像 发表于 05-12 17:07 3863次阅读

    存储寄存器的区别

    计算机系统中,存储寄存器是两个至关重要的组成部分,它们各自承担着不同的功能和角色。存储器用于存放程序和数据,是计算机系统的记忆设备;而寄存器
    的头像 发表于 05-12 16:55 1222次阅读

    s3c2410中断控制模块的中断源状态寄存器是?

    事件的寄存器中断计算机系统中一种重要的机制,它可以中断当前的程序执行,转而执行一个与当前事件相关的特定程序,然后再返回原来的程序继续执行。S3C2410中的
    的头像 发表于 01-05 17:28 501次阅读

    gic的寄存器 gicv3的LPI中断

    0x100-0x17C — 》 GICD_ISENABLERn 这个地址范围内一共可以表示32个32bit的寄存器(n=0x7c/4+1) 所以n的值为0-31,共可以表示32*32=1024个中断 提供了2种访问方式: • 一种是memory-mapped的访问 •
    的头像 发表于 11-08 16:09 536次阅读

    CPSR寄存器和APSR寄存器的组成

    程序状态寄存器的作用就是反映处理的状态信息。在程序运行期间我们可以通过查看程序状态寄存器的状态位来进行程序的分支跳转处理,或者我们可以设置程序状态寄存器的模式位来改变处理
    的头像 发表于 10-20 11:38 3643次阅读
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的组成

    RISC-V CSR寄存器介绍

    列举一些常用的CSR。 M模式CSR寄存器 mstatus 状态寄存器,保存了全局中断使能状态和其他状态,例如切换模式前,保存当前模式。 mtvec 异常入口基地址寄存器。保存发生异常
    的头像 发表于 10-08 14:53 4390次阅读
    RISC-V CSR<b class='flag-5'>寄存器</b>介绍

    U54内核中断控制和状态寄存器

    向量的基地址,以及设置 U54内核处理中断的模式。对于 Direct 和 Vectored模式,中断处理模式在 mtvec 寄存器的 MODE 字段中定义。mtvec
    的头像 发表于 10-08 09:54 606次阅读
    U54内核<b class='flag-5'>中断</b>控制和状态<b class='flag-5'>寄存器</b>