单片机应用技术 项目二 电子打铃装置 第4讲 单片机的定时器/ 计数器 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.

Slides:



Advertisements
Similar presentations
单片机技术及应用 河南信息工程学校 电子工程系.
Advertisements

第5章 中断系统 5.1 中断的概述  5.2 AT89C51中断系统 5.3 中断系统的应用.
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
实验四 利用中规模芯片设计时序电路(二).
第4章 中断系统和定时/计数器 本章学习目标 : 理解中断概念,能正确描绘单片机中断响应过程
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
单片机原理与应用.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
第5章 定时计数技术 单片机控制系统中常常用到的定时与计数问题。 5.1 定时计数概述 5.2 MCS-51单片机的定时计数器.
6.1 中断系统和外中断 6.2 定时器/计数器 6.3 串行通信 本章小结.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第6章 定时器/计数器 (课时:8学时).
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
CPU结构和功能.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第五章 MCS-51中断与定时系统.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
中 断 王 静 阜阳师范学院 计算机与信息工程学院.
数码管数字时钟电路的设计 1. 系统硬件电路的设计
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月04日.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
5. 1 中 断 概 述 单片机接通电源后将循环执行我们编制好的程序(一般称为主程序),当有外部设备或内部部件要求CPU为其服务时,计算机将被迫“中断”主程序的执行,并记录下暂停处程序地址(断点地址),然后转去为外部设备服务,即执行中断服务程序;在中断程序执行完毕后自动返回被迫中断主程序的地址,继续执行原主程序。
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
第7章 定时/计数器 教学目的:了解80C51系列单片机内部定时器/计数器的结构与工作原理;能够采用查询方式对定时器/计数器的4种工作模式编程、应用。 教学重点:1. 定时/计数器的工作原理; 2. 定时器方式1、2的编程、应用。 教学难点:1.定时/计数器控制寄存器的设置 2.定时初值的设置.
第4章 定时器与计数器 本章内容 定时器/计数器工作原理 定时器/计数器的工作方式 定时器/计数器的应用.
HSC高速输出例程 HORNER APG.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机应用技术 (C语言版) 第7章 定时器/计数器
定时中断与LED MCU起航 QQ:
6.1 定时器/计数器的结构及工作原理 定时器/计数器的结构 定时器/计数器T0、T1的逻辑结构如图6-1所示。
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
单片机应用技术 (C语言版) 第6章 中断系统.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
信号发生电路 -非正弦波发生电路.
上节复习(11.14) 1、方式2、方式0的特点? 2、定时/计数器的编程要点? 3、实验5方案优化问题.
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第5章 80C51单片机的中断与定时 教学基本要求: (1)、了解单片机系统有关中断的概念; (2)、了解单片机定时器/计数器的功能;
第1章 微型计算机基础.
Presentation transcript:

单片机应用技术 项目二 电子打铃装置 第4讲 单片机的定时器/ 计数器 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系

单片机应用技术 内容提要: 一、定时方法概述 二、定时器/计数器的结构和工作原理 三、定时器/计数器的控制 四、定时器/计数器工作方式 五、定时器/计数器综合应用举例

单片机应用技术 一、定时方法概述 定时方法 硬件延时 由硬件电路实现延时,长时间延时; 软件延时 通过执行循环而获得延时,短时间延时; 硬件延时 由硬件电路实现延时,长时间延时; 软件延时 通过执行循环而获得延时,短时间延时; 可编程定时 通过对系统时钟脉冲的计数而获得延时。

二、定时器/计数器的结构和工作原理 1、结构 2个定时器T0和T1:16位加1计数器,通过编程来设置工作状态 计数溢出置标志位 定时器T1 定时器T0 设置T0工作方式 启动/停止T0工作 2个定时器T0和T1:16位加1计数器,通过编程来设置工作状态 定时器方式寄存器TMOD:设置定时器的工作方式 定时器控制寄存器TCON:启动和停止定时器的计数;计数溢出标志

二、定时/计数器的结构和工作原理 2、工作原理 MCS-51单片机定时/计数器的工作原理: 归根结底是计数器。每接收到一个计数脉冲,加法计数器的值就加一,当计满时发生溢出,并从0开始继续计数。 (1)定时功能(设置TMOD中位C/T=0 ) 对片内机器周期进行计数,即每个机器周期产生一个计数脉冲,计数加1。 (2)计数功能(设置TMOD中位C/T=1) 对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进行计数,下降沿计数加1。

三、定时器/计数器的控制 与定时/计数器有关的控制寄存器有2个 1、定时器控制寄存器TCON(字节地址88H) IT0 IE0 IT1 TR0 TF0 TR1 TF1 位符号 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 位地址 TR0 (TR1)-- 定时计数器T0 (T1)运行控制位。 该位由软件置1或清0。 TR0 (TR1)=1 启动定时计数 =0 停止定时计数 TCON除字节寻址外,各位还可以位寻址。 例如 启动T0开始计数工作,可运行指令 或者 SETB TR0 MOV TCON , #00010000B

三、定时器/计数器的控制 IT0 IE0 IT1 IE1 TR0 TF0 TR1 TF1 与定时/计数器有关的控制寄存器有2个 1、定时器控制寄存器TCON(字节地址88H) IT0 IE0 IT1 IE1 TR0 TF0 TR1 TF1 位符号 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 位地址 当T0/T1计数溢出时,该位由硬件自动置“1”。 查询方式下,此位作计数溢出状态位供查询,注意溢出后应以软件方法及时清0; 中断方式下,此位会当T0溢出时,由硬件自动置1,并向CPU申请中断, 当CPU响应中断进入中断服务程序后,它又被硬件自动清0 TF0 (TF1)--计数溢出标志位

三、定时/计数器的控制 2、定时器工作方式寄存器TMOD(89H) 用于2个定时器T0、T1的工作方式设定 , TMOD不能位寻址,只能用字节指令设置定时器工作方式。 M1 M0设置定时工作方式 C/T

三、定时/计数器的控制 C/T =“0”,对片内机器周期进行计数,作定时器用; M1 M0设置定时工作方式 C/T C/T--定时/计数功能选择位。 C/T =“0”,对片内机器周期进行计数,作定时器用; C/T =““1”,对片外从T0(P3.4)、T1(P3.5)引脚输入 的外部脉冲信号进行计数,作计数器用。

三、定时/计数器的控制 GATE=0,允许软件控制位TR0或TR1启动定时器; GATE--门控位。 M1 M0设置定时工作方式 C/T TR0 GATE--门控位。 GATE=0,允许软件控制位TR0或TR1启动定时器; GATE=1,允许外中断引脚INT0(或INT1)为高电电平,且由软件使TR0(或TR1)置1时,才能启动定时器工作。

三、定时/计数器的控制 M1 M0--工作方式选择位 00 方式0 13位计数器 01 方式1 16位计数器 C/T TR0 M1 M0--工作方式选择位 00 方式0 13位计数器 01 方式1 16位计数器 10 方式2 初值自动重装8位计数器 11 方式3 2个8位计数器,仅适用于T0

四、定时器/计数器工作方式 1、工作方式0 当GATE=0时,封锁或门输出恒为1,使外部中断输入引脚INT0信号失效,同时又打开与门,由TR0控制定时器T0的开启和关断。若TR0=1,接通控制开关,启动定时器T0工作,计数器被控制为允许计数。若TR0=0,则断开控制开关,停止计数。 当GATE=1时,与门的输出由INT0的输入电平和TR0位的状态来确定。若TR0=1,则打开与门,外部信号电平通过INT0引脚直接开启或关断定时器T0。 当INT0为高电平时,允许计数,否则停止计数。这种工作方式可用来测量外部信号的脉冲宽度等。 当C/T=0时, 控制开关接通振荡器12分频输出端, T0对机器周期计数。 即定时器工作方式。 当C/T=1 控制开关与引脚T0(P3.4)接通,计数器T0对来自外部引脚T0的输入脉冲计数,当外部信号电平发生由1到0跳变时,计数器加1,这时,T0成为外部事件计数器。 在这种模式下,16位寄存器只用了13位。当TL0的低5位溢出时,向TH0进位。当TH0溢出时,向中断标志位TF0进位。 因此,可通过查询TF0 来判断计数器的计数是否完成(溢出)。需要说明的是:在计数溢出将TF0置1的同时,计数器被自动全部变 0 ,然后从 0 开始继续计数。 M1M0=00 TH0的高8位和TL0的低5位组成一个13位计数器

四、定时器/计数器工作方式 注意:定时计数器的计数范围与初值X的计算 1、定时器的计数规律: T0从某初值X,对脉冲计数到1111111111111B(213D=8192D)溢出 计数个数:213-X 1、定时器的计数规律: 2、最大计数范围:从初值X=0D,计数到1111111111111B(213D) 计数个数为213-0=8192D 3、定时时间: 最大定时值 = (213-0) ×机器周期 定时值 = 计数个数×机器周期 =(213-X)×机器周期 = (213-X)×晶振周期×12

四、定时器/计数器工作方式 例1 如要求计数值为1000,试计算定时计数器T0的初值 分析: 由 213-X=1000 =1C18H=0001 1100 0001 1000B 故 TH0= 1 1100 000=0E0H TL0= 1 1000B = 0001 1000B =18H。 补足8位

单片机应用技术 例2 利用T0方式0在P1.0引脚上输出周期500us的方波。设单片机 晶振频率6MHz。 分析: 要在P1.0输出周期为500us的方波,只要P1.0每隔250us取反一次即可,即定时时间为250us : (1)TMOD寄存器初始化: TMOD.1 TMOD.0 M1M0=00,T0为方式0; TMOD.2 C/T=0 T0为定时状态; TMOD.3 GATE=0 表示计数不受INT0控制; TMOD.4 TMOD.7 因T1不用,可取任意值,这里取为0 。 故TMOD=00H (2)计算250us定时T0的初值: 设T0的计数初值为X,则 X=8067D=1F83H=0001 1111 1000 0011B 故 TH0= 1 1111 100高8位=FCH TL0=0000 0011B低5位=03H

单片机应用技术 MOV TMOD,#00H ;置T0为方式0 MOV TH0,#0FCH ;送计数初值 MOV TL0,#03H (3) 编写程序。采用查询TF0的状态来控制P1.0输出 MOV TMOD,#00H ;置T0为方式0 MOV TH0,#0FCH ;送计数初值 MOV TL0,#03H SETB TR0 ;启动T0 LOOP: JBC TF0, NEXT ;查询定时时间到否? SJMP LOOP NEXT: CLR TF0 ; 对溢出标志位清0 MOV TH0,#0FCH ;重赋计数初值 MOV TL0,#03H CPL P1.0 ;输出取反 SJMP LOOP ; 重复循环 采用查询方式的程序很简单,但在定时器整个计数过程中,CPU要不断查询溢出时标志TF0的状态, 这就占用了CPU工作时间,以致CPU的效率不高。采用定时溢出中断方式,可以提高CPU的效率。

四、定时器/计数器工作方式 2、工作方式1 M1 M0=01 TH0高8位和TL0低8位组成一个16位定时器/计数器 定时器工作于方式1下,其结构与操作几乎与方式0完全相同,差别仅在于计数器的位数不同。

四、定时器/计数器工作方式 注意:定时计数器的计数范围与初值X的计算 例如. 若单片机晶振为6MHZ,则1个机器周期为2us T0从初值X,一直对脉冲计数到1111111111111B(216D)溢出 计数个数:216-X=65536-X 2、最大计数范围:从初值X=0D,计数到1111111111111111B(216D) 计数个数为216-0=65536D 3、定时时间: 定时值 = (216-X) ×机器周期 = (216-X) ×晶振周期×12 最大定时定时值 = (216-0) ×机器周期 例如. 若单片机晶振为6MHZ,则1个机器周期为2us =65536×2us = 131ms 1、定时器的计数规律:

四、定时器/计数器工作方式 例3 用定时器T1产生一个100HZ的方波, 由P1.0输出,设晶振12MHz, 采用查询方式。 解:方波周期 T=1/100Hz=0.01s=10ms 用T1定时5ms 计数初值 X为: X=60536=EC78H 程序如下: MOV TMOD, #10H ; T1方式1,定时方式 SETB TR1 LOOP:MOV TH1, #0ECH ; 置初值 MOV TL1, #78H JNB TF1 ,$ ; 判断溢出 CLR TF1 CPL P1.0 SJMP LOOP

四、定时器/计数器工作方式 3、工作方式2 工作方式2下的定时器(T0、T1):为8位计数器 以T0为例: 8位计数器的TL0 重置初值的缓冲器TH0构成。

单片机应用技术 方式2与方式0、1的区别: 方式0和方式1若用于循环重复定时或计数时,当计数溢出时,要重新对计数器装入初值,而方式2的优点在于它具有初值自动装入的功能,可省去重装计数初值的语句,故定时时间精确,特别适用于作串行口波特率发生器。 做法:在方式2中,16位计数器拆成两个部分,TL0用作位计数器,TH0用来保存计数初值。在程序初始化时,由软件赋予同样的初值,一旦TL0计数溢出,便使TF0置位,将TH0中的初值则由硬件自动装入TL0又继续计数,循环往复不止。 由于定时工作方式时,其定时时间(TH0溢出周期)为: t=(28-TH0初值)×机器周期 用于计数工作方式时,最大计数长度=28-0初值=256。 若单片机晶振为6MHZ,则1个机器周期为2us 最大定时定时值 = (28-0) ×机器周期 =256×2us=512us

单片机应用技术 例4 利用T0方式0在P1.0引脚上输出周期200us的方波。设单片机晶振频率6MHz。 分析:要在P1.0输出周期为200us的方波,只要P1.0每隔100us取反一次即可,即定时时间为100us (1) TMOD.1 TMOD.0 M1M0=10,T0为方式2; TMOD.2 C/T=0 T0为定时状态; TMOD.3 GATE=0 表示计数不受INT0控制; TMOD.4 TMOD.7 因T1不用,可取任意值,这里取0 故TMOD=02H (2)计算250us定时T0的初值: 设T0的计数初值为X,则 X=206D=11001110B=CEH 故 TH1=TL1=CEH

单片机应用技术 (3)程序如下: MOV TMOD,#02H ;T0方式2,定时方式 MOV TH0,#0CEH ;T0计数初值 MOV TL0,#0CEH SETB TR0 ;启动T0 LOOP:JBC TF0,NEXT ;TF0=1转 SJMP LOOP ;否则等待 NEXT:CPL P1.0 ; P1.0取反输出 SJMP LOOP

单片机应用技术 4、工作方式3 模式3只适用于定时器T0,若将T1置为模式3,则T1将停止计数。 TL0使用原T0的各控制位、引脚(C/T,GATE,TR0,TF0和INT0引脚),其功能和操作与模式0和模式1相同,TL0既可以工作在定时器方式,也可以工作在计数器方式。 当T0工作在模式3下,TH0和TL0被分成两个相互独立的8位计数器TL0和TH0如图所示。 TH0只可作简单的8位定时器, 它占用T1的控制位TR1和T1的中断标志位TF1,同时也占用了T1的中断源,由TR1来负责启动和关闭。

单片机应用技术 工作方式3下的定时器T1 在定时器T0已工作在方式3时,T1只能工作在方式0、1、2下。因为它的运行控制位TR1和计数溢出标志位TF1已经被定时器T0借用。其逻辑图简化为左图 在图中,由于TR1、TF1以及T1的中断源已被定时器T0占用,此时T1仅由控制位C/T切换其定时器或计数器工作方式,计数器计数满溢出时,只能将输出送入串行口或用于不需要中断的场合。把T1作为波特率发生器使用时,一般将T1设置为模式2。

五、定时器/计数器综合应举例 例5 P1.0、P1.1经7407驱动LED交替发光并以每秒一次的频率闪烁。硬件连接见下图(采用6MHZ晶振) 分析:闪烁周期为1S,亮、灭各占一半,定时时间需要500mS。使用6MHZ晶振,单片机最长定时时间仅为131mS,所以需要采用软件记数方法扩展定时时间。

单片机应用技术 使用定时/计数器0,定时方式,工作方式1。 设置TMOD控制字: TMOD = 01H 使用6MHZ晶振,机器周期为2μs,设定时时间100mS,定时初值3CB0H。定时器溢出5次为500mS。 程序如下: ORG 0140H LED1: MOV TMOD,#01H ;设置T0工作方式 SETB P1.0 ;输出初始状态 CLR P1.1 SETB TR0 ;启动定时器 LOOP0: MOV R2,#05H ;送软件计数初值 LOOP1: MOV TL0,#0B0H ;送定时常数 MOV TH0,#3CH JBC TF0,$ ;循环等待定时时间到 DJNZ R2,LOOP1 ;软件计数–1≠0循环 XRL P1,#03H ;P1.0、P1.1求反 SJMP LOOP0 ;循环

单片机应用技术 例6 当GATEX =“1”时,定时/计数器只有INTX为高电平才能进行计数。利用这一点,可以方便的测量脉冲信号的宽度。设被测脉冲接至INT1引脚,将定时/计数器1设置为定时方式,即可进行脉宽测量。要求测量脉宽单位为1μs,选用12MHZ晶振。 分析: 设置TMOD控制字: GATE1 =“1”,定时/计数器T1为定时方式C/T =“0”,选用工作方式1。TMOD = 90H。 定时初值为零,在脉冲下跳沿读出计数器的计数值即为脉冲宽度。

单片机应用技术 程序如下: ORG 0180H MOV TOMD,#90H;设置T1工作方式 CLR A ;定时初值为零 MOV TH1,A MOV TL1,A JB P3.3, $ ;等待P3.3变低电平 SETB TR1 ; P3.3变低,准备启动T1 JNB P3.3,$ ;等待P3.3变高,启动T1 JB P3.3,$ ;T1一直定时计数,等待P3.3再次变低,脉冲结束 CLR TR1 ;停止计数 MOV R2,TH1 ;读出脉冲宽度 MOV R3,TL1 运行上面程序后,只要将R2、R3两单元内容转换成十进制数,即可送显示以读出脉冲宽度。由于工作方式1的最大计数值为65536,所以上面程序所测脉冲宽度不能大于65536μs。

单片机应用技术 计数器0计数初值为0000H。 例7 利用单片机定时/计数器测量脉冲信号频率。 例7 利用单片机定时/计数器测量脉冲信号频率。 分析:频率定义为单位时间1S内的周期数,用定时/计数器测频率,需要用一路定时器产生单位时间,另一路计数器对脉冲计数。若被测量的信号频率较高,而测量精度有限的话,单位时间可以小于1S。单位时间选用10mS,其间计的脉冲数乘以100即为信号频率。 设置工作方式: 设单片机时钟频率 fosc = 12MHz。定时器1定时,工作方式1,产生10mS单位时间;定时/计数器0计数,工作方式1。 TMOD = 00010101B = 15H 计数初值: 定时器1计数值10000,计数初值的十六进制补码为 D8F0H。 计数器0计数初值为0000H。

单片机应用技术 程序 ORG 01C0H FREQ:MOV TMOD,#15H ;设置工作方式 MOV TH0,#0 ;送计数初值 MOV TL0,#0 MOV TH1,#0D8H MOV TL1,#0F0H MOV TCON,#50H ;启动定时/计数器 JNB TF1,$ ;等待单位时间到 MOV TCON,#0 ;停止计数 MOV R2,TH0 ;读出计数值 MOV R3,TL0 …… 将R2,R3中的计数值转换成BCD码,即为频率,单位是0 .1KHz。用此种方式测量的频率上限为500KHz。

单片机应用技术 ??? 思考题: 1、MCS-51单片机内有几个定时计数器?有几种工作方式? 2、简要介绍T0的定时工作方式1 3、定时器编程前要事先确定什么参数? 4、用定时器1产生一个50Hz的方波,由P1.2输出,用程序查询方式,fosc=12MHz。

单片机应用技术 第4题参考答案: 方式1是16位定时/计数器, 其定时时间t为:t=(216-X) ×12/fosc 其计数初值X为:X=216-t×fosc/12 方波周期T=1/50=0.02s=20ms,用T1定10ms, 计数初值X1: X1=216-12×10×10-3/(12×106) =65536-10000=55536=D8F0H 源程序如下: MOV TMOD,#10H ;T1模式1,定时 SETB TR1 ;启动T1 LOOP:MOV TH1,#0D8H ;T1计数初值 MOV TL1,#0F0H JNB TF1,$ ;T1没有溢出等待 CLR TF1 ;产生溢出清标志位 CPL P1.2 ;P1.2取反输出 SJMP LOOP ;循环