《单片机汇编》期末考试、考研常见考题、习题,题型汇总(二十)、单片机定时器内部结构原理、内部特殊功能寄存器讲解

Shams ·
更新时间:2024-09-20
· 625 次阅读

本文对文章一的补充,详细讲解单片机定时器及有关定时器的考试题。

对于单片机这门课来说,***定时器是必考内容,***往往以一道编程题出现,但也可能伴随一些选择题,填空题及判断题出现。

小知识点补充20:定时/计数方式:
1,软件定时
2,数字电路硬件定时
3,可编程定时/计数器

小知识点补充21
51单片机有5个中断请求源和两个中断优先级。
5个中断源分别是:

1,外部中断0 2,外部中断1 3,定时器溢出中断0 4,定时器溢出中断1 5,串行口中断

中断系统结构图如下:
在这里插入图片描述
(备注:此图摘自百度)

重要寄存器详解:

1,TCON(timer control)定时器/计数器控制寄存器 (可位寻址)
在这里插入图片描述

IT0(TCON.0): 外部中断0触发方式控制位。 当 IT0 =0 时,为电平触发方式。 当 IT0 =1 时,为边沿触发方式(下降沿有效) IE0(TCON.1): 外部中断0中断请求标志位。 IT1(TCON.2): 外部中断1触发方式控制位。 IE1(TCON.3): 外部中断1中断请求标志位。 TR0(TCON.4): T0运行控制位,其功能与 TR1 类同。 TF0(TCON.5): T0溢出中断请求标志位,其功能与TF1类同。 TR1(TCON.6): T1运行控制位。TR1置1时,T1 开始工作;TR1 置0时,T1停止工作。 TR1 由软件置1或清0。即:用软件可控制定时/计数器的启动与停止。 TF1(TCON.7): T1溢出中断请求标志位。 备注:T1计数溢出时由硬件自动置TF1为1。CPU 响应中断后TF1由硬件自动清 0。T1 工作时,CPU 可随时查询 TF1 的状态。TF1 也可以用软件置 1 或清 0,同硬件置 1 或清 0 的效果一样。

2,定时器方式控制寄存器(timer mode)(不可位寻址)
在这里插入图片描述

GATE:门控位。 GATE =0 时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作; GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0(或 INT1)也为 高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。 C/T: 定时/计数模式选择位。 C/T =0 为定时模式; C/T =1 为计数模式。 M1 M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0 进行设置。 M1 M0 工作方式 说 明 0 0 方式 0 13位定时/计数器 0 1 方式 1 16位定时/计数器 1 0 方式2 8位自动重装定时/计数器 1 1 方式 3 T0 分成两个独立的8位定时/计数器,此时T1不能工作在方式3

3, TL0 ,地址: 8AH ,定时器 0 低八位
4, TL1 ,地址: 8BH ,定时器 1 低八位
5, TH0 ,地址: 8CH,定时器 0 高八位
6, TH1 ,地址: 8DH ,定时器 1 高八位
7,中断允许控制寄存器IE(interrupt enable)(可位寻址)

在这里插入图片描述

EX0(IE.0): 外部中断0允许位(高电平有效) ET0(IE.1): 定时/计数器T0中断允许位(高电平有效) EX1(IE.2): 外部中断0允许位(高电平有效) ET1(IE.3): 定时/计数器T1 中断允许位(高电平有效) ES(IE.4): 串行口中断允许位(高电平有效) EA(IE.7): CPU 中断允许(总允许)位(高电平有效) ET2(IE.5): 定时/计数器T2中断允许位(51单片机没有此定时器)

8,中断优先级控制寄存器(interrupt priority)(可位寻址)
在这里插入图片描述

PX0(IP.0): 外部中断0优先级设定位(高电平有效) PT0(IP.1): 定时/计数器 T0 优先级设定位(高电平有效) PX1(IP.2): 外部中断0优先级设定位(高电平有效) PT1(IP.3): 定时/计数器T1优先级设定位(高电平有效) PS(IP.4): 串行口优先级设定位(高电平有效) PT2(IP.5): 定时/计数器 T2 优先级设定位(高电平有效)(51单片机没有此定时器) 中断向量表

在这里插入图片描述
小知识点补充22
C语言书写中断函数格式:

void 函数名 (void) interrupt 中断向量号m using 寄存器组号n { } 其中: 中断向量号m: 0-4 寄存器组号n: 0-3

小知识点补充23
单片机C语言中头文件reg51.h或reg52.h内容为:

#ifndef __REG51_H__ #define __REG51_H__ /* BYTE Register */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IE = 0xA8; sfr IP = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99; /* BIT Register */ /* PSW */ sbit CY = 0xD7; sbit AC = 0xD6; sbit F0 = 0xD5; sbit RS1 = 0xD4; sbit RS0 = 0xD3; sbit OV = 0xD2; sbit P = 0xD0 /* TCON */ sbit TF1 = 0x8F; sbit TR1 = 0x8E; sbit TF0 = 0x8D; sbit TR0 = 0x8C; sbit IE1 = 0x8B; sbit IT1 = 0x8A; sbit IE0 = 0x89; sbit IT0 = 0x88; /* IE */ sbit EA = 0xAF; sbit ES = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8; /* IP */ sbit PS = 0xBC; sbit PT1 = 0xBB; sbit PX1 = 0xBA; sbit PT0 = 0xB9; sbit PX0 = 0xB8; /* P3 */ sbit RD = 0xB7; sbit WR = 0xB6; sbit T1 = 0xB5; sbit T0 = 0xB4; sbit INT1 = 0xB3; sbit INT0 = 0xB2; sbit TXD = 0xB1; sbit RXD = 0xB0; /* SCON */ sbit SM0 = 0x9F; sbit SM1 = 0x9E; sbit SM2 = 0x9D; sbit REN = 0x9C; sbit TB8 = 0x9B; sbit RB8 = 0x9A; sbit TI = 0x99; sbit RI = 0x98; #endif

51单片机定时器内部结构图:
在这里插入图片描述
备注:
计数模式:是指对外部事件进行计数,实质是对外部脉冲计数(注:对外部计数脉冲的最高计数频率为机器周期的2分频,同时要求外部脉冲高低电平保持时间均大于一个机器周期)

定时器工作方式

1,方式0:(M1M0=00)
内部框图如下:
在这里插入图片描述
定时器/计数器工作于此方式时,为13为计数器,由TL的低5位和TH的整个8位构成。
内部原理分析:
1,当C/T=0时,电子开关打到上面位置,此时为定时器工作模式,计数脉冲为对时钟的12分频。当GATE=0时,通过反相器输出1,此时不管INT0是什么电位,或非门始终输出1,只要TR0定时开关等于1,则与门输出1,使得控制开关打开定时开始。当13位计数器中的值计数设置的最大值时,置位TF0,如果定时中断允许位ETX(X=0或1)和总中断允许位EA打开则产生定时溢出中断。(注:此种工作方式下,计数值需要手动更新)
2,当C/T=1时,电子开关打到下面位置,此时为计数器工作模式,工作过程与1相似。

2,方式1:(M1M0=01)
内部框图如下:
在这里插入图片描述
内部原理分析:
工作原理和分析方法与方式0类似,只是此种模式是16位计数器。

3,方式2:(M1M0=10)
内部框图如下:
在这里插入图片描述
内部原理分析:
分析方法与方式0类似,只是此种模式是8位计数器。此种模式下,计数值自动重载,无需手动更新即:TLx为计数值,THx为重载值。

4,方式3:(M1M0=11)
内部框图如下:
程序源码:
在这里插入图片描述
内部原理分析:
分析方法与方式0类似,此种模式下,定时T0分为两个独立的8位计数器:TL0和TH0,TH0此时占用定时器1的中断请求源TF1,此时定时1不能工作在方式3。
备注:一般情况下,定时器1作为串口的波特率发生器,定时器0才工作在方式3.

注:考试常考定时器模式而非计数器模式

题35

利用定时器1编程实现循环点亮8位LED,间隔时间为100毫秒(设晶振为6MHz)电路图如下:(低电平点亮LED)。
在这里插入图片描述

解析:

计数方式: X=M-要求的计数初值 定时方式: X=M-要求的定时值/机器周期 即: X=M-fosc*要求定时值/12 注:M为最大计数值

当fosc=6MHz时,机器周期为2uS,
根据上述对工作方式的分析:

方式0: 最长计数2^13*2/1000=16.384 ms 方式1: 最长计数2^16*2/1000=131.072 ms(满足题目要求) 方式2: 最长计数2^8*2/1000= 512 us

程序源码:

ORG 0000H LJMP START ORG 001BH LJMP T1ADDR ORG 002CH START: MOV SP,#60H MOV A,#0FEH MOV P1,A SETB ET1 SETB EA MOV TMOD,#10H MOV TL1,#0AFH MOV TH1,#3CH SETB TR1 SJMP $ ORG 0050H T1ADDR: MOV TL1,#0AFH MOV TH1,#3CH RL A MOV P1,A RETI END

仿真图
在这里插入图片描述
仿真视频链接:

《单片机汇编》期末考试、考研常见考题、习题,题型汇总(二十)、单片机定时器内部结构原理、内部特殊功能寄存器讲解


作者:liuxianfei0810



单片机定时器 考研 定时器 单片机

需要 登录 后方可回复, 如果你还没有账号请 注册新账号