
江苏开放大学 单片机技术及应用 (讲义) 3 顾筠编 2018年11月
单片机技术及应用 (讲义) 顾筠 编 2018 年 11 月


前言与目录 单片机面向控制,在各种机电、电子产品或机电技术中得到广泛应用。单片机误 程融合了数字电子技术、控制技术、软件编程等知识与技能。 本误程围绕MCS-51系列单片机进行学习,课程主要包括有关单片机的基本枚念 和基本知识,单片机的组成结构,寻址方式、指令系统和程序设计方法,单片机内部 IO接口单元及应用,外围设备与接口等。 通过本谋程的学习,要求: 1.理解单片机相关的基础知识,单片机最小系统: 2.掌握MCS-51的寻址方式和指令系统: 3.掌握单片机程序设计方法: 4.弹解单片机接口应用方法:并行口、中断系统、定时计数器、申行口: 5.了解常用外设的接口方法和程序设计方法:AD和D/A按口、I.FD显示。 本讲义依据单片机的功能应用划分成单元,共有10个单元的学习内容。 第1单元单片机基础概述 第2单元单片机组成结构 第3单元单片机的存储器 第4单元单片机指令系统 第5单元单片机程序设计 第6单元并行接口 第7单元中断系统 第8单元定时器/计数器 第9单元申行接口 第10单元外由设备与接口 每个单元都设置有习题,供同学们思考练习,以巩固学习内容
前言与目录 单片机面向控制,在各种机电、电子产品或机电技术中得到广泛应用。单片机课 程融合了数字电子技术、控制技术、软件编程等知识与技能。 本课程围绕 MCS-51 系列单片机进行学习,课程主要包括有关单片机的基本概念 和基本知识,单片机的组成结构,寻址方式、指令系统和程序设计方法,单片机内部 I/O 接口单元及应用,外围设备与接口等。 通过本课程的学习,要求: 1.理解单片机相关的基础知识,单片机最小系统; 2.掌握 MCS-51 的寻址方式和指令系统; 3.掌握单片机程序设计方法; 4.理解单片机接口应用方法:并行口、中断系统、定时计数器、串行口; 5.了解常用外设的接口方法和程序设计方法:A/D 和 D/A 接口、LED 显示。 本讲义依据单片机的功能应用划分成单元,共有 10 个单元的学习内容。 第 1 单元 单片机基础概述 第 2 单元 单片机组成结构 第 3 单元 单片机的存储器 第 4 单元 单片机指令系统 第 5 单元 单片机程序设计 第 6 单元 并行接口 第 7 单元 中断系统 第 8 单元 定时器/计数器 第 9 单元 串行接口 第 10 单元 外围设备与接口 每个单元都设置有习题,供同学们思考练习,以巩固学习内容

草岸机技求及应用 第8单元 定时器/计数器 【导言】 本单元主要讲述定时器计爱器的基本原理,介绍MCS-51单片机的定时器/计数器功能 特性及应用方法。 【学习目标】 掌测:有关定时卷与计数器的基本概念, MCS-51单片机的定时器功能特性及编程应用方法。 理解:定时器计数器的基本原理 【学习重点和难点】 1.重点:单片机定时器的编程应用方法 2.难点:定时器应用编程, 【学习内容】 8.1定时器计数器的结构 8.2MCS-51定时器/计数器的工作方式 8.3定时器计数器的应用
单片机技术及应用 1 第 8 单元 定时器/计数器 【导言】 本单元主要讲述定时器/计数器的基本原理,介绍 MCS-51 单片机的定时器/计数器功能 特性及应用方法。 【学习目标】 掌 握:有关定时器与计数器的基本概念。 MCS-51 单片机的定时器功能特性及编程应用方法。 理 解:定时器/计数器的基本原理。 【学习重点和难点】 1.重点:单片机定时器的编程应用方法。 2.难点:定时器应用编程。 【学习内容】 8.1 定时器/计数器的结构 8.2 MCS-51 定时器/计数器的工作方式 8.3 定时器/计数器的应用

第8单元定时理/计数理 定时器/针数器是CS-51系列单片机重要功能槟块之一,它是单片机应用系统中不可缺 少的组成部分,常用定时器作定时时钟,以实现定时检葛、自动控制等,而计数器主要用于 对外部事件的计数。 051单片机内有2个16位定时器/计数器,即定时器/计数器T⑩和定时器计数器T1. 但有些单片机,如052芯片,内有三个16位定时器计数器,即定时器计数器T0、定时器制 计数器T1和定时器/计数器T2,后者的功能比前者更超。 8.1定时器/计数器的结构 8051芯片内,与16位定时举/计数器T0,T1有关的功能单元主要包括加法计数举、TMOD 济存器、TCON齐存器等,其结构框图如图8-】所示。 在图8-中,TH0、TL0为T0的16位加法计数器的高8位和低8位,H1、T1为T1 的16位加法计数器的高8位和低8位。MOD为计数器TD、T1的方式寄存器,TCON为计 数器T0、T1的状态和控制脊存器。 THO CPU 工作方式 工作方式 TCON TMOD 阅81定时8计数整0、T1的结构 1.16位加法计爱器 定时器/计数器的棱心是16位加法计数墨,它也是一种寄存器。当作计数器用时,加法 计数器对芯片引园P34或的5输入脉冲计数,每输入一个球冲,计数器加1,直至滥出,并 向CPU发出中断请求信号。当作定时器用时,计数器对内部机器周期的球冲进行计数,由于 机举周期是一定的,当需要定时某个时间时,只需确定计数球冲个数,也就确定了定时的数 值 计数器的初值一般由程序设定,并根据定时时间或计数值的多少来确定。 2
第 8 单元 定时器/计数器 2 定时器/计数器是 MCS-51 系列单片机重要功能模块之一,它是单片机应用系统中不可缺 少的组成部分,常用定时器作定时时钟,以实现定时检测、自动控制等,而计数器主要用于 对外部事件的计数。 8051 单片机内有 2 个 16 位定时器/计数器,即定时器/计数器 T0 和定时器/计数器 T1。 但有些单片机,如 8052 芯片,内有三个 16 位定时器/计数器,即定时器/计数器 T0、定时器/ 计数器 T1 和定时器/计数器 T2,后者的功能比前者更强。 8.1 定时器/计数器的结构 8051 芯片内,与 16 位定时器/计数器 T0、T1 有关的功能单元主要包括加法计数器、TMOD 寄存器、TCON 寄存器等,其结构框图如图 8-1 所示。 在图 8-1 中,TH0、TL0 为 T0 的 16 位加法计数器的高 8 位和低 8 位,TH1、TL1 为 T1 的 16 位加法计数器的高 8 位和低 8 位。TMOD 为计数器 T0、T1 的方式寄存器,TCON 为计 数器 T0、T1 的状态和控制寄存器。 图 8-1 定时器/计数器 T0、T1 的结构 1.16 位加法计数器 定时器/计数器的核心是 16 位加法计数器,它也是一种寄存器。当作计数器用时,加法 计数器对芯片引脚 P3.4 或 P3.5 输入脉冲计数,每输入一个脉冲,计数器加 1,直至溢出,并 向 CPU 发出中断请求信号。当作定时器用时,计数器对内部机器周期的脉冲进行计数,由于 机器周期是一定的,当需要定时某个时间时,只需确定计数脉冲个数,也就确定了定时的数 值。 计数器的初值一般由程序设定,并根据定时时间或计数值的多少来确定。 TH0 TL0 TH1 TL1 TCON TMOD CPU 工作方式 工作方式 内部 总线 T1 T0

草作机技米及应用 2.方式控制寄存器TMOD 方式控制将存器TMOD是用来选择定时器计数器的工作方式的寄存器,其格式如下表 8-1所示。 表8-1方式控制寄存器TMOD格式 位序号 D7 D6 D5 D4 D3 D2 DI DO 位符号GAT正 CT MI MO GATE C/T MO MO TMOD的低4位为T0的方式字段,高4位为T1的方式字段,它们的含义完全相同。其 中 ①M0,M1为工作方式送择位, 根据MD、M1的状态不同,共有四种工作方式,对应关系如表8-2所示。 ②CT为定时器和计数器功能选择位. 当CT=0时为定时器方式,当CT=1时为计数器方式. @GATE为门控制位: 当GAE=I时,定时举计数带由外部中断请求信号(NTO或NTI)控制。当GATE =0时,定时器的工作与外部中断请求信号无关,以允许软件控制位TR0或TR1启动 TMOD不能位寻址,只能用字节指令设置定时器/计数器工作方式。系统复位时,TMOD 所有位均置零。 表82定时器计数“工作方式美系表 MI MO 工作方式 0 0 方式0:3位定时器计数器 0 方式1:16位定时8计数墨 1 方式2:自动结初值的8位定时器计数摇 1 1 方式3:仪适合于T0,可分为两个8位计数器 3.控制寄存器TCON 控制寄存器TCON主要用于控制定时器和控制外部中断的寄存卷,其格式如下表&3所 表83控制寄存渴TCON将式 位序号 D7 D6 D5 D4 D3 D2 DI DO 位符号亚1 TRI TFO TRO IEI m IE0 ITo TCON高4位存放定时器的运行控制位,低4位存收外部中断控制位,有关低4位中断 控制位的内容将在中断系统中介绍。此处仅对高4位的定时控制功能加以说明。 ①TR0为定时器/计数器T0运行控制位。 3
单片机技术及应用 3 2.方式控制寄存器 TMOD 方式控制寄存器 TMOD 是用来选择定时器/计数器的工作方式的寄存器,其格式如下表 8-1 所示。 表 8-1 方式控制寄存器 TMOD 格式 位序号 D7 D6 D5 D4 D3 D2 D1 D0 位符号 GATE C/T M1 M0 GATE C/ T M0 M0 TMOD 的低 4 位为 T0 的方式字段,高 4 位为 T1 的方式字段,它们的含义完全相同。其 中: ①M0、M1 为工作方式选择位。 根据 M0、M1 的状态不同,共有四种工作方式,对应关系如表 8-2 所示。 ② C/ T 为定时器和计数器功能选择位。 当 C/T =0时为定时器方式,当 C/T =1 时为计数器方式。 ③ GATE 为门控制位。 当 GATE=1 时,定时器/计数器由外部中断请求信号( INT0 或 INT1)控制。当 GATE =0 时,定时器的工作与外部中断请求信号无关,以允许软件控制位 TR0 或 TR1 启动。 TMOD 不能位寻址,只能用字节指令设置定时器/计数器工作方式。系统复位时,TMOD 所有位均置零。 表 8-2 定时器/计数器工作方式关系表 M1 M0 工作方式 0 0 方式 0:13 位定时器/计数器 0 1 方式 1:16 位定时器/计数器 1 0 方式 2:自动重装初值的 8 位定时器/计数器 1 1 方式 3:仅适合于 T0,可分为两个 8 位计数器 3.控制寄存器 TCON 控制寄存器 TCON 主要用于控制定时器和控制外部中断的寄存器,其格式如下表 8-3 所 示。 表 8-3 控制寄存器 TCON 格式 位序号 D7 D6 D5 D4 D3 D2 D1 D0 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON 高 4 位存放定时器的运行控制位,低 4 位存放外部中断控制位,有关低 4 位中断 控制位的内容将在中断系统中介绍。此处仅对高 4 位的定时控制功能加以说明。 ①TR0 为定时器/计数器 T0 运行控制位

第8单元定时器/计数器 当TR0=I时,定时器/计数器TD工作,当TR0=0时,则停止工作,当门控制位GATE 一D时,T0定时器仅由TR0控制。TR0清零和置1由款件决定, ②T℉0为定时器计数器T0漫出标志位, 当计数器被允许计数后,T⑩从初值开始加“1”计数.计数器计满溢出时,T0位置“1”。 TFO也是中新情求信号,在中新允许条件下,向CPU发出中新请求,CPU响应后,TF0由 硬件自动清零,同时,℉0还可作查询测试用。 @TR1为定时器/计数器T1运行控制位,其功能与TR0相同。 ④F1为定时器/计数器T1溢出标志位,其功能与下0相同. 8.2MCS-51定时器/计数器的工作方式 定时器计数器T0、T1工作方式,主要是通过对0、M1的设置米确定,由表1-7可知, 定时器计数器TD、T1共有以下方式。 1,工作方式0 当M0=D,M1=0时,定时器计数器TD、T1设定为工作方式0,构成一个13位定时 器/数器。定时器/计数器T1工作方式0的结构图如图82所示, 在图8-2电路中,有·个方式开关和个计数器控制开关,当CT=0时,方式开关打 向以探荡器的十二分领信号作为T1的计数倍号,当CT一1时,方式开关打向以T1为引脚 的外接输入脉冲信号上。TR1是TCON中的T1控制位,GATE是TMOD中的门控位,引脚 NT1是外部中断信号输入端。在这种方式下,16位膏存器TH1+TL1只用了13位,L1的 高3位没有用。 最满器 ÷12 C/T=0 5位B位 TF 中中新 T端 CT-1 控制 TR: 图界2定时器计数器T1工作方式0的端构图 当TR1一1,且GATE一0时,计数控制开关按通,计数脉冲加到T1上,开始计数,当 计数溢出时,TF1置1,请求中断
第 8 单元 定时器/计数器 4 当 TR0 =1 时,定时器/计数器 T0 工作,当 TR0=0 时,则停止工作。当门控制位 GATE =0 时,T0 定时器仅由 TR0 控制。TR0 清零和置 1 由软件决定。 ② TF0 为定时器/计数器 T0 溢出标志位。 当计数器被允许计数后,T0 从初值开始加“1”计数,计数器计满溢出时,TF0 位置“1”。 TF0 也是中断请求信号,在中断允许条件下,向 CPU 发出中断请求,CPU 响应后,TF0 由 硬件自动清零。同时,TF0 还可作查询测试用。 ③ TR1 为定时器/计数器 T1 运行控制位,其功能与 TR0 相同。 ④ TF1 为定时器/计数器 T1 溢出标志位,其功能与 TF0 相同。 8.2 MCS-51 定时器/计数器的工作方式 定时器/计数器 T0、T1 工作方式,主要是通过对 M0、M1 的设置来确定,由表 1-7 可知, 定时器/计数器 T0、T1 共有以下方式。 1.工作方式 0 当 M0=0,M1=0 时,定时器/计数器 T0、T1 设定为工作方式 0,构成一个 13 位定时 器/计数器。定时器/计数器 T1 工作方式 0 的结构图如图 8-2 所示。 在图 8-2 电路中,有一个方式开关和一个计数器控制开关,当 C/ T =0 时,方式开关打 向以振荡器的十二分频信号作为 T1 的计数信号,当 C/T =1 时,方式开关打向以 T1 为引脚 的外接输入脉冲信号上。TR1 是 TCON 中的 T1 控制位,GATE 是 TMOD 中的门控位,引脚 INT1是外部中断信号输入端。在这种方式下,16 位寄存器 TH1+TL1 只用了 13 位,TL1 的 高 3 位没有用。 图 8-2 定时器/计数器 T1 工作方式 0 的结构图 当 TR1=1,且 GATE=0 时,计数控制开关接通,计数脉冲加到 T1 上,开始计数,当 计数溢出时,TF1 置 1,请求中断。 1 INT 振荡器 ÷12 C/ T =0 C/ T =1 TR1 T1端 GATE + TL1 TH1 5 位 TF1 8 位 中断 控制

单岸机故术及应用 当TR1一1时,且GATE-1时,则TH1+T1是否计数取决于INT1引斟的信号,当NT门 引同输入高电平时,允许T1计数,否则停止计数。 若TR1-0时,不论GATE、NT1倍号包样,计数控制开关都不能接通,禁止T1计数. 2.工作方式1 当M00,M1=1时,定时器/计数举T0、T1设定为工作方式1,构成一个16位定时器/ 引数器,即寄存器T1和T1中全部位都参与操作,这是它与工作方式0的啡一差别。定 时器计数器T1工作方式1的结构图如图&3所示, 最满器 12 CT= 1 TH ,中新 8位8位 Tg端 C/T-1 控利 GATE INTI 图多]定时器什数器T1工作方式1的结构图 3.工作方式2 当M0=1,M1=0时,定时器/计数器设定为工作方式2.工作方式2为自动重装初值的 8位定时器计数器。定时器/计数器T1工作方式2的结构图如图84所示。 扳饰图 ÷12 CT- +中断 T1端 CT-I 重新装线信号 TR 器位 GATE NT瑞 图&4定时野计叠器T1工作方式2的结构围 计数器T1工作于方式2时,几1作为计数器使用,1作为初值寄存器用。当T11计 数澄出时,T下1沿出标志位置“1”,同时发出重新装我初值信号,使三态门打开,将TH1
单片机技术及应用 5 当 TR1=1 时,且 GATE=1 时,则 TH1+TL1 是否计数取决于 INT1引脚的信号,当 INT1 引脚输入高电平时,允许 T1 计数,否则停止计数。 若 TR1=0 时,不论 GATE、 INT1信号怎样,计数控制开关都不能接通,禁止 T1 计数。 2.工作方式 1 当 M0=0,M1=1 时,定时器/计数器 T0、T1 设定为工作方式 1,构成一个 16 位定时器/ 计数器,即寄存器 TH1 和 TL1 中全部位都参与操作,这是它与工作方式 0 的唯一差别。定 时器/计数器 T1 工作方式 1 的结构图如图 8-3 所示。 图 8-3 定时器/计数器 T1 工作方式 1 的结构图 3.工作方式 2 当 M0=1,M1=0 时,定时器/计数器设定为工作方式 2。工作方式 2 为自动重装初值的 8 位定时器/计数器。定时器/计数器 T1 工作方式 2 的结构图如图 8-4 所示。 图 8-4 定时器/计数器 T1 工作方式 2 的结构图 计数器 T1 工作于方式 2 时,TL1 作为计数器使用,TH1 作为初值寄存器用。当 TL1 计 数溢出时,TF1 溢出标志位置“1”,同时发出重新装载初值信号,使三态门打开,将 TH1 1 INT 端 振荡器 ÷12 C/ T =0 C/ T =1 TR1 T1 端 GATE + TL1 TF1 8 位 中断 控制 TH1 8 位 重新装载信号 振荡器 ÷12 C/ T =0 C/ T =1 TR0 T0端 GATE + TL1 TH1 8 位 TF1 8 位 中断 控制 INT1

常8草完鬼时器/针数器 中的值白动送入TL1,使卫I从初值开始重新计数,而H1的内容保持不变,工作方式2 特别适合于定时控制。可获得相当精确的定时时间。 4.工作方式3 当M0=1,M1=1时,定时器/计数器T0设定在工作方式3,且工作方式3仅对定时爷/ 计数器T0有效,而对T1无意义。定时器计数器T0工作方式3的结构图如图8-5所示。 在工作方式3下,计数器TL0、H0为两个独立的8位计数器。T0使用T0所有状态 控制位C/T、GATE、TR0及引脚NT1,与工作方式0、1相类款,T1H0被固定为一个8位 定时器,并借用定时器计数器T1的控位TR1、TF1进行控制。当定时器/计数器T0采用 工作方式3后,定时器计数器T1屈还可以选择工作方式0、方式1、方式2,但由于它的运 行控制值TR1和计数溢出标志位TF1己被定时器/计数器T0惜用,不能产生澄出中断请求, 可以数遭出值直接送给串行口,作为串行口的波特幸发生器使用,以确定串行通信的速率, 根荡器 ÷12 T4 8位 中图 To誊 GATE NT, T 8位 TR 图界5定时计数器T工作方式3的结构图 8.3定时器/计数器的应用 前面曾多次使用款件延时即迫过调用廷时子程序的方法来遗行操作定时,软件廷时CU 不能够做其位事情,也不能够响应中断,否则赋不能实现正确的定时要求, 利用定时器/计数器进行定时或计数,称为硬件定时。硬件定时可采用查询方式或中断 方式进行控制,若采阳中断方式控制则CPU可并行地执行共他深作,提高了CPU的工作效 幸。 CS-1单片机的定时器/计数器采用如】计数,是可编程的。定时器/计数器编程主要
第 8 单元 定时器/计数器 6 中的值自动送入 TL1,使 TL1 从初值开始重新计数,而 TH1 的内容保持不变。工作方式 2 特别适合于定时控制,可获得相当精确的定时时间。 4.工作方式 3 当 M0=1,M1=1 时,定时器/计数器 T0 设定在工作方式 3,且工作方式 3 仅对定时器/ 计数器 T0 有效,而对 T1 无意义。定时器/计数器 T0 工作方式 3 的结构图如图 8-5 所示。 在工作方式 3 下,计数器 TL0、TH0 为两个独立的 8 位计数器。TL0 使用 T0 所有状态 控制位 C/ T 、GATE、TR0 及引脚 INT1,与工作方式 0、1 相类似。TH0 被固定为一个 8 位 定时器,并借用定时器/计数器 T1 的控制位 TR1、TF1 进行控制。当定时器/计数器 T0 采用 工作方式 3 后,定时器/计数器 T1 虽还可以选择工作方式 0、方式 1、方式 2,但由于它的运 行控制值 TR1 和计数溢出标志位 TF1 已被定时器/计数器 T0 借用,不能产生溢出中断请求, 可以数溢出值直接送给串行口,作为串行口的波特率发生器使用,以确定串行通信的速率。 图 8-5 定时器/计数器 T0工作方式 3 的结构图 8.3 定时器/计数器的应用 前面曾多次使用软件延时即通过调用延时子程序的方法来进行操作定时,软件延时 CPU 不能够做其他事情,也不能够响应中断,否则就不能实现正确的定时要求。 利用定时器/计数器进行定时或计数,称为硬件定时。硬件定时可采用查询方式或中断 方式进行控制,若采用中断方式控制则 CPU 可并行地执行其他操作,提高了 CPU 的工作效 率。 MCS-51 单片机的定时器/计数器采用加 1 计数,是可编程的。定时器/计数器编程主要 TR1 TCY 振荡器 ÷12 C/ T =0 C/ T =1 0 INT 端 TR0 T0端 GATE + TL0 TF0 8 位 中断 TH0 TF1 8 位 中断 TCY TCY

草岸机技米及应用 步骤如下: 1,确定工作方式。将控制字写入定时器方式控制将存晷TMOD: 2.计算计数初值,写入计数济存器THx,TLx(x=0或1): 3.根据需要打开中断,即置位ETx和EA(IE.0或E.1和E.7): 4.启动i计数,即置位TRx(TCON.4或TCON.6), 例8:计数初值的计算。 若品振期率-6MHz,试计算MCS-51单片机8位、13位、16位定时器/什数器的最 小、最大定时时间, MCS51的一个机器周期有12个时钟,故机器周期T=12/ee 当6x=6MHz时,T=12x=12/6=2μs 设计数初值为a,划定时时问1=(21-a)×12,n为定时器位数. (1)最小定时时问。对于定时器的几种工作方式来说,最小计数次数为1,即计数初值 a=2-1,故当6x=6Mz时,最小定时时间均一样 am-1×12/fine-1×244s-24s (2》最大定时时间,8位,13位或16位定时器/计数器,最大计数初值为00H或0000H, 即23、2或26。当fsc=6MHz时录大定时时间为: 方式2:mm=(2&-0)×12/6e-2*×2μus-512us=05ms 方式1:1m1w=(26-0)×12/m=26×2us=131072s=131ms 方式0:lwn13=(2-0)×12/a=23×2μs=8192μs=8ms 当品振期率不同时,其定时器/计数器的最大与最小定时时问也是不相同的。 例8-2:设品标顿幸为6MHz,利用定时器在P10上产生一个500Hz的方波. 分析:5001z方波周期为1/500z-2ms,高、低脉冲宽度各为1ms. 可用定时器/计数器TD选择方式0产生1ms(1000u5》的廷迟,采用查询方式或中断方 式进行控制,每当TF0溢出时,将P10求反,即可实现在PI.0D输出500Hz方被, 设计数初值为a,机器周期T=6m:=2us (27-a)×2μs=1×10us期a=7692=1E0C1=1111000001100B 低5位为01100,(TΠ0的高3位未用,取0值)故T10-0CH 高8位为11110000,故T1H0=F01 定时器TDT作在方式D,M1M0-00,CT-0,GATE=0,定时器T1不用,可取0, TMOD-00000000B-00H& (1)查南方式源程序 MOV TMOD,00H:设定T0方式0 SETB TRO :启动T0定时 LOOP:MOV THO.FOFOH :设置计数初值 MOV TLO,BOCH 7
单片机技术及应用 7 步骤如下: 1.确定工作方式,将控制字写入定时器方式控制寄存器 TMOD; 2.计算计数初值,写入计数寄存器 THx,TLx(x = 0 或 1); 3.根据需要打开中断,即置位 ETx 和 EA(IE.0 或 IE.1 和 IE.7); 4.启动计数,即置位 TRx(TCON.4 或 TCON.6)。 例 8-1:计数初值的计算。 若晶振频率 fosc = 6MHz,试计算 MCS-51 单片机 8 位、13 位、16 位定时器/计数器的最 小、最大定时时间。 MCS-51 的一个机器周期有 12 个时钟,故机器周期 T=12/fosc。 当 fosc = 6MHz 时,T = 12/fosc = 12/6 = 2s 设计数初值为 a,则定时时间 t =(2 n–a)×12/fosc,n 为定时器位数。 (1)最小定时时间。对于定时器的几种工作方式来说,最小计数次数为 1,即计数初值 a = 2 n–1,故当 fosc = 6MHz 时,最小定时时间均一样: tmin = 1×12/fosc = 1×2s = 2s (2)最大定时时间。8 位、13 位或 16 位定时器/计数器,最大计数初值为 00H 或 0000H, 即 2 8、2 13或 2 16。当 fosc = 6MHz 时最大定时时间为: 方式 2:tmax8 =(2 8-0)×12/fosc = 2 8×2s = 512s = 0.5ms 方式 1:tmax16 =(2 16-0)×12/fosc = 2 16×2s = 131072s = 131ms 方式 0:tmax13 =(2 13-0)×12/fosc = 2 13×2s = 8192s = 8ms 当晶振频率不同时,其定时器/计数器的最大与最小定时时间也是不相同的。 例 8-2:设晶振频率为 6MHz,利用定时器在 P1.0 上产生一个 500Hz 的方波。 分析:500Hz 方波周期为 1/500Hz = 2ms,高、低脉冲宽度各为 1ms。 可用定时器/计数器 T0 选择方式 0 产生 1ms(1000s)的延迟,采用查询方式或中断方 式进行控制,每当 TF0 溢出时,将 P1.0 求反,即可实现在 P1.0 输出 500Hz 方波。 设计数初值为 a,机器周期 T = 6/fosc = 2s (2 13 – a)×2s = 1×10 3s 则 a = 7692 = 1E0CH = 1111000001100B 低 5 位为 01100,(TL0 的高 3 位未用,取 0 值)故 TL0 = 0CH 高 8 位为 11110000,故 TH0 = F0H 定时器 T0 工作在方式 0,M1M0 = 00, C/T 0,GATE = 0,定时器 T1 不用,可取 0, 则 TMOD=00000000B = 00H。 (1)查询方式源程序 MOV TMOD,#00H ;设定 T0 方式 0 SETB TR0 ;启动 T0 定时 LOOP: MOV TH0,#0F0H ;设置计数初值 MOV TL0,#0CH