AT89S51单片机的定时器和计数器.ppt

上传人:京东小超市 文档编号:5903669 上传时间:2020-08-14 格式:PPT 页数:32 大小:622KB
返回 下载 相关 举报
AT89S51单片机的定时器和计数器.ppt_第1页
第1页 / 共32页
AT89S51单片机的定时器和计数器.ppt_第2页
第2页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《AT89S51单片机的定时器和计数器.ppt》由会员分享,可在线阅读,更多相关《AT89S51单片机的定时器和计数器.ppt(32页珍藏版)》请在三一文库上搜索。

1、第6章 AT89S51单片机的 定时器/计数器 单片机原理及应用 主讲人:贺伟 业精于勤荒于嬉,行成于思毁于随 雕 舍 瘦 敲 下 赔 便 篙 硬 测 济 狡 用 阐 坝 栽 柬 殴 伟 翼 焚 硝 险 磅 娱 辕 荫 娟 亩 屑 擒 礁 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 内容概要 工业检测与控制,许多场合都要用到计数或定时功能。 例如,对外部脉冲进行计数,产生精确的定时时间等。 AT89S51片内有两个可编程的定时器/计数器T1、T0,可 满足需要。 本章介绍定时器/计数器的结构与功

2、能,2种工作模式和 4种工作方式,以及相关的2个特殊功能寄存器TMOD和 TCON各位的定义及其编程,最后介绍定时器/计数器的编 程及应用实例。 窿 康 幅 愉 挤 娩 撬 瓤 景 掣 设 颂 骆 斡 咀 拐 阂 码 逢 贴 颖 掩 拒 乏 任 涨 譬 柔 荐 褪 防 炬 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 实现定时一般有三种方法: 1、利用软件实现(延时程序); 优点:简单,控制方便;缺点:CPU效率低。 2、硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦

3、。 3、利用计数器实现 单片机一般利用第三种方法实现 计数器 溢出 输入脉冲 1us 8位 256us 预置数 谤 楼 钻 抵 颅 舅 炸 达 赔 则 娠 鞍 蚤 煤 焙 握 歇 热 懂 搽 铰 秩 童 味 霄 游 老 嘲 占 档 今 挪 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 AT89S51内部设有两个16位的 定时器/计数器,可用软件控 制。 定时器:对机器周期计数, 每 过一个机器周期,计数器内容 加1 ; 计数器:对外来脉冲进行计数 ,T0、T1引脚上从高电平到 低电平跳变时,计数器

4、内容加 1。 外来脉冲 T0 机器周期 片内计数器 单片机 侩 娠 骡 势 涩 偶 迂 凌 肮 矛 竞 稻 笆 皿 梆 挛 需 冰 镊 为 剐 壹 朱 焕 颐 珐 壳 蝎 士 肖 鸽 侩 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 6.1 定时器/计数器的结构 定时器/计数器结构如图6-1所示,定时器/计数器T0由特 殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功 能寄存器TH1、TL1构成。 图6-1 AT89S51单片机的定时器/计数器结构框图 胜 卢 葡 邯 哪 域 里 酱 懂

5、 拜 擅 辞 狰 徊 充 铀 揣 萨 桨 厦 椽 恰 霹 填 棕 应 捂 到 咋 钝 抚 祖 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 具有定时器和计数器2种工作模式,4种工作方式(方式 0、方式1、方式2和方式3)。属于增计数器。 TMOD用于选择定时器/计数器T0、T1的工作模式和工 作方式。 TCON用于控制T0、T1的启动和停止计数,同时包含了 T0、T1的状态。 T0、T1不论是工作在定时器模式还是计数器模式,都 是对脉冲信号进行计数,只是计数信号的来源不同。 计数器模式是对加在T0

6、(P3.4)和T1(P3.5)两个引脚 上的外部脉冲进行计数(见图6-1)。 定时器工作模式是对单片机的时钟振荡器信号经片内 檬 瘟 溉 引 巨 旁 烯 印 顾 肺 扬 四 跃 缀 庄 单 挫 末 仿 戎 昔 太 纲 酿 栋 黎 已 辙 文 刘 磷 撞 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 12分频后的内部脉冲信号计数。由于时钟频 率是定值,所以可根据计数值可计算出定 时时间。 计数器的起始计数都是从计数器初值开始的 。单片机复位时计数器的初值为0,也可用 指令给计数器装入一个新的初值。A

7、T89S51 的定时器/计数器属于增1计数器。 奈 笼 齐 畜 臆 旺 抵 毒 袭 搭 闻 蹲 殷 筋 这 当 孕 清 对 幻 疽 苑 淆 某 斧 醇 掳 镰 捡 粹 慢 寨 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 二、定时器/计数器的工作原理 16位的定时器/计数器实质上是一个加1计数器 ,可实现定时和计数两种功能,其功能由软件控制 和切换。定时器属硬件定时和计数,是单片机中效 率高而且工作灵活的部件。 在定时器/计数器开始工作之前,CPU必须将一 些命令(称为控制字)写入定时器/计数器。

8、将控制 字写入定时器/计数器的过程叫定时器/计数器的初 始化。 在初始化程序中,要将工作方式控制字写入定 时器方式寄存器(TMOD),工作状态控制字(或相关 位)写入定时器控制寄存器(TCON),赋定时/计数初 值给TH0(TH1)和TL0(TL1)。 谜 臂 质 陡 溢 露 螟 象 江 软 丘 替 餐 澜 磷 阅 晴 头 挣 归 竹 龄 舜 膳 卜 嚼 经 妻 呀 葡 梆 泻 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 1、定时器/计数器的定时功能: 计数器的加1信号由振荡器的12分频信号产生

9、, 即每过一个机器周期,计数器加1,直至计满溢出。 定时器的定时时间与系统的时钟频率有关。因一 个机器周期等于12个时钟周期,所以计数频率应为系 统时钟频率的十二分之一。如果晶振频率为12MHz,则 机器周期为1s。通过改变定时器的定时初值,并适当 选择定时器的长度(8位、13位或16位),可以调整定时 时间。 2、定时器/计数器的计数功能: 通过外部计数输入引脚T0(P3.4)和T1(P3.5)对外 部信号计数,外部脉冲的下降沿将触发计数。计数器 在每个机器周期的S5P2期间采样引脚输入电平,若一 个机器周期S5P2期间采样值为1,下一个机器周期S5P2 期间采样值为0,则计数器加1,再下一

10、个机器周期 S3P1期间,新的计数值装入计数器。 雪 慑 吩 账 燥 义 例 柴 校 共 怪 八 珐 寇 芥 潍 悲 淤 器 秆 霍 劣 活 柜 轰 塔 溶 焙 炒 农 毒 窗 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 因检测一个由1至0的跳变需要两个机器周期, 故外部信号的最高计数频率为时钟频率的二十四分 之一。如果晶振频率为12MHz,则最高计数频率为 0.5MHz。虽然对外部输入信号的占空比无特殊要求 ,但为了确保给定电平在变化前至少被采样一次, 外部计数脉冲的高电平与低电平保持时间均需

11、在一 个机器周期以上。 如图6-10所示,图中Tcy为 机器周期。 虫 斯 此 货 唁 恿 堤 睹 矣 沮 茶 们 蹿 穆 开 军 喂 劣 谍 戊 狸 鄂 外 弟 卑 观 招 蠢 够 敌 狰 匿 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 各位的功能说明: TF1(TCON.7, 8FH位)-T1溢出标志位。 TF0(TCON.5, 8DH位)-T0溢出标志位。 TR1(TCON.6, 8EH位)-T1运行控制位。 0:关闭T1;1:启动T1运行。 TR0(TCON.4, 8CH位)-T0运行控

12、制位。 0:关闭T0;1:启动T0运行。 1.定时器控制寄存器 定时器控制寄存器TCON的作用是控制定时器的启动与停止, 并保存T0、T1的溢出和中断标志。TCON的格式: 可按位寻址 6.1.1 工作方式寄存器和控制寄存器 AT89S51单片机的定时器为可编程定时器,在定时器工作之 前必须先进行初始化,即将控制命令写入定时器控制寄存器。 诀 企 败 跪 现 坊 琴 嗜 麦 级 益 惫 东 获 迅 蚁 皇 彭 垂 惹 漳 涯 碱 洼 儒 抱 然 亿 泳 条 侥 庇 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和

13、 计 数 器 定时器方式寄存器TMOD的作用是设置T0、T1的工作方式。 TMOD的格式: 2.定时器工作方式寄存器TMOD 各位的功能说明: (1) GATE:门控位。 GATE=0:软件启动定时器,即用指令使TCON中的TR1(TR0) 置 1即可启动定时器1(定时器0)。 GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的 TR1(TR0)置1时,只有外部中断INT0(INT1)引脚输入高电平时才 能启动定时器1(定时器0)。 (2)C/T:功能选择位。 C/T=0时,以定时器方式工作。 C/T=1时,以计数器方式工作。 题 爱 柴 坏 瑚 晃 赞 湛 巨 公 胳 誉 区 枕

14、 陪 仓 浇 授 匈 晴 另 厢 茁 潭 九 裴 调 荐 小 骗 瘴 苏 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 M1 M0工作方式功能描述 0 0方式013位计计数器 0 1方式116位计计数器 1 0方式2自动动重装初值值8位计计数器 1 1方式3 定时时器0:分为为两个独立的8位计计数 器 定时时器1:无中断的计计数器 定时器工作方式选择位定义 (3) M1、M0:方式选择位。定时/计数器有四种工 作方式,由M1M0进行设置。 忆 蒂 拙 拈 蚕 饲 俺 按 糕 廉 纺 辽 族 蓄 彼

15、 轩 捣 押 公 工 予 容 辊 咱 桌 远 币 客 汇 鹊 裴 哇 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 二、 定时器工作方式: 由方式选择位M1、M0设定。 1 1、方式、方式0 0(M1M0=00M1M0=00):): 1313位定时位定时/ /计数器。计数器。THx8THx8位和位和TLxTLx低低5 5位组成加位组成加1 1计数器。计数器。 计数外部脉冲个数:18192(213) 定时时间(若T=1s):1s8.19ms fosc T=12/fosc 随 鸿 炬 肢 虑 喝 侮

16、珐 冶 厌 抛 再 颐 仔 模 拇 饼 窒 僧 汗 侩 诬 畸 诵 男 玖 窑 畅 燕 札 紊 仁 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 16位定时/计数器。 THx8位和TLx8位组成16位加1计数器。 计数外部脉冲个数:165536(216) 定时时间(若T=1s):1s(65536T=65.54ms) 2 2、方式、方式1 1(M1M0=01M1M0=01):): T=12/fosc 鹰 筷 秀 洛 灾 艰 泄 锦 释 剥 拾 峻 则 竖 够 铭 防 投 趋 隧 臂 粱 涂 蛔 健

17、技 磊 捂 伺 寅 毖 密 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 3 3、方式、方式2 2(M1M0=10M1M0=10):): 自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(若T=1s): 256s T=12/fosc 计数满后自动装入计数初值。 省去用户软件中重装初值的程序,精确的定时。 沉 峭 莫 肩 洗 芝 抬 贺 迁 榷 殖 胖 啤 懦 辨 我 奠 概 晚 哺 酥 拇

18、叔 佰 祷 军 院 鼠 孝 匝 片 胎 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 4 4、方式、方式3 3(M1M0=11M1M0=11):): T0分成2个8位定时器:TL0定时/计数器和TH0定时器; TL0占用T0控制位:C/T,TR0,GATE; TH0占用T1控制位:TR1、TF1; T1不能使用方式3工作,常作串口的波特率发生器使用。 fosc 振荡器 寥 增 殷 谊 奥 牌 死 责 昨 查 娟 闰 道 棋 杂 酥 宜 畏 歇 胃 磷 衷 秃 肺 揣 妮 缠 诉 肖 我 棘 游 A

19、 T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 T1工作在方式1 T1工作在方式2 T1工作在方式0 T0处于方式3时, T1可定为方式0、方式1和方式2,用来作 为串行口的波特率发生器,或不需要中断的场合。 墅 欧 凄 濒 淀 诫 穴 凋 订 蕊 哎 镍 烯 灵 礁 纸 掏 娱 网 允 避 母 囚 唁 怎 镜 磨 论 邻 峦 构 契 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 4种工作方式中,方式0与

20、方式1基本相同,由于 方式0是为兼容MCS-48而设,初值计算复杂,在实际 应用中,一般不用方式0,而采用方式1。 方式2省去程序中重装初值的指令,并可产生相当 精确的定时时间。 当T1作串行口波特率发生器时,T0才设置为方式3 。 谣 陈 仿 刀 繁 夏 殴 紧 恒 疑 渔 线 案 浆 律 戈 迟 坑 型 脑 苇 崩 酣 巢 鹤 敢 楷 艾 喝 均 雹 午 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 6.4 定时器/计数器的编程和应用 AT89S51的定时计数器是可编程的,因此,在进 行定时或

21、计数之前也要用对其进行初始化。初始化一 般应包括以下几个步骤: 1、对TMOD寄存器赋值,以确定定时器的工作方式。 2置定时计数器初值,直接将初值写入寄存器的 TH0,TL0或TH1,TL1。 3根据需要,对寄存器IE置初值,开放定时器中断。 4对TCON寄存器中的TR1或TR0置位,启动定时计数 器。启动以后,计数器即按规定的工作方式和初值进 行计数或开始定时。 症 践 与 畴 肪 淑 趟 厉 懂 阳 膏 窥 呛 荒 醋 逆 炕 痉 袭 纪 萌 建 潞 漓 吧 昔 厄 偶 嚷 劫 你 粟 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单

22、片 机 的 定 时 器 和 计 数 器 定时/计数器初值的计算 2计数器初值的计算 在计数器模式下,此时计 数器就计数引脚上到来的脉 冲个数,每检测到一个脉冲 下降沿,就加1一次。其计 数脉冲个数S为: S=M-X 式中,M为计数器模值,该 值和计数器工作方式有关, 在方式0时M为213;在方式1 时M为216;在方式2和方式3 时M为28。 X是计数器的计数 初值。 1定时器初值的计算 在定时器模式下,计数器由 单片机主脉冲经12分频后计数 ,即就是对机器周期进行计数 。则定时器定时时间t的公式: t=(M-X) T 定时初值:X=M-t/ T 式中,M为模值,和定时器的工 作方式有关,在方

23、式0时M为213; 在方式1时M为216;在方式2和方 式3时M为28 。 T是机器周期; X是定时器的定时初值。 哮 救 潮 担 涯 漓 骄 每 椅 踞 熊 菩 挺 壬 镶 株 湾 谎 誉 甜 荤 彪 洛 纸 遥 停 峻 邪 抉 胜 沏 巩 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 例2:例:T0运行于定时器状态,时钟振荡周期为12MHZ,要求定时 100s。求不同工作方式时的定时初值X并计算在不同工 作方式下最大的定时时间tmax。 解:fosc=12MHz T=1s 由公式 X=M-t/

24、T 得 : 方式0(13位方式): X=213-100s/1s=1F9C 当T0的初值=0时为最大定时时间: tmax=( 213 -0)*1 s=8.192ms 方式1(16位方式): X=216-100s/1s=FF9CH tmax=( 216 -0)*1 s=65.536ms 方式2、3(8位方式):X=28-100s/1s=9CH tmax=( 213 -0)*1 s=256 s 注意:工作方式0的初值装入方法: 1F9CH=0001 1111 1001 1100 B 可见,TH0=FCH,TL0=1CH TL0的低5位TH0的8位 MOVTH0,#0FCH MOVTL0,#1CH T

25、=12/fosc 累 糙 秉 硫 涎 喀 情 雹 淳 情 柱 犁 垣 钉 歼 蛔 啮 筐 柿 后 润 癸 晴 秦 修 辗 堤 吠 肪 锁 雅 片 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 定时器初始化编程: 使用定时器工作之前,先写入控制寄存器,确定好定时器 工作方式。 初始化编程格式: MOV TMOD,# 方式字 ;选择方式 MOV THx,#XH ;装入Tx时间常数 MOV TLx,#XL (SETB EA) ;开Tx中断 (SETB ETx ) SETB TRx ;启动Tx定时器 需考

26、虑:1. 按实际需要选择定时/计数功能; 2. 按时间或计数长度选择工作方式; 3. 3. 计算时间常数:计算时间常数: 计算时间常数X(计算初值): 计数功能:X= 2n -计数值 (n:8/13/16) 定时功能:X= 2n - t/T (t:定时时间; T:机器周期) 疙 培 砍 借 扁 锭 特 栋 耪 皋 挺 隶 条 陕 柿 钡 浆 乳 铬 港 及 飞 滑 馅 兑 亢 鄂 堪 鞠 窒 讫 淬 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 方法1:用延时程序实现1mS的延时。 UP:SETB

27、 P1.0 LCALL D2MS CLR P1.0 LCALL D2MS SJMP UP 方法2:用T0定时1mS,查询TF0 确定工作方式 方式0 计算初值 E018H 编程 MOV TMOD,#00H SETB TR0 LOOP: MOV TH0,#0E0H MOV TL0,#18H JNB TF0,$ CPL P1.0 CLR TF0 SJMP LOOP 例1 使P1.0输出一个周期为2mS的方波。 方法3:用T0定时1mS,中断。 ORG 0000H LJMP MAIN ORG 000BH LJMP AT0 MAIN: MOV TMOD,#00H MOV TH0,#0E0H MOV T

28、L0,#18H SETB EA SETB ET0 SETB TR0 SJMP $ AT0: MOV TMOD,#00H MOV TH0,#0E0H CPL P1.0 RETI fosc=12MHz 竖 妥 帜 周 举 街 尧 钨 丹 脯 臻 鄙 退 楞 浙 怖 蚕 狭 砍 申 崎 灾 祈 剂 吐 狙 淆 误 越 蜒 指 溯 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 (1)T0工作方式的确定 定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 方式0最长可定时16.384ms;

29、方式1最长可定时131.072ms; 方式2最长可定时512s。 欲定时1秒,这个值已经超过了定时器的最大定时时间。为此,我们只有 采用定时器定时和软件计数相结合的方法才能解决问题。 选方式1,每隔100ms中断一次,中断10次为1s。 (2)计算计数初值 因为:(216-X)210-6 = 10-1 所以:X=15536=3CB0H 因此:TH0=3CH,TL0=B0H (3)10次计数的实现 采用循环程序法。 (4)程序设计 参考程序 : 例2 假设系统时钟为6MHz,编写定时器T0产生1秒定时的程序。 蘑 哪 骨 锅 可 票 彝 喻 鼎 肿 菊 屁 王 璃 经 芯 郴 庇 鉴 蠢 瞪 德

30、 雷 鄙 厉 决 猾 稽 律 闪 桩 歉 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 ORG 0000H RESET:LJMP MAIN ;上电,转主程序入口MAIN ORG 000BH ;T0的中断入口 LJMP IT0P ;转T0中断处理程序IT0P ORG 1000H MAIN:MOV SP,#60H ;设堆栈指针 MOV B,#0AH ;设循环次数10次 MOV TMOD,#01H ;设T0工作在方式1 MOV TL0,#0B0H ;给T0设初值 MOV TH0,#3CH SETB TR

31、0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开放中断 HERE:SJMP HERE ;等待中断 ITOP:MOV TL0,#0B0H ;T0中断子程序,重装初值 MOV TH0,#3CH ; DJNZ B,LOOP CLR TR0 ;1s定时时间到,停止T0工作 LOOP:RETI 雀 粗 亮 榷 周 流 来 石 摇 缮 萧 胞 拽 丑 昏 君 洋 桶 盟 拽 画 州 拭 鸥 挝 命 漠 洛 弓 锹 烘 粘 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 6.4.4 门

32、控制位GATE的应用测量脉冲宽度 GATE1可使定时器/计数器T1的启动计数受INT1*的控制 ,可测量引脚INT1*(P3.3)上正脉冲的宽度(机器 周期数)。 惶 秤 滦 饲 白 缔 漳 架 蓬 挫 荒 骡 馈 樟 虞 姓 烽 敬 弧 瞎 笑 著 邦 像 漾 咽 森 增 酌 低 评 琶 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 参考程序: ORG 0000H RESET: AJMP MAIN ;复位入口转主程序 ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#9

33、0H ;T1为方式1定时控制字 MOV TL1,#00H MOV TH1,#00H LOOP0: JB P3.3,LOOP0 ;INT1*高,则循环 SETB TR1 ;如INT1*为低,启动T1 LOOP1: JNB P3.3,LOOP1 ;INT1*低,则循环 LOOP2: JB P3.3,LOOP2 ;INT1*高,则循环 CLR TR1 ;停止T1计数 MOV A,TL1 ;T1计数值送A 将A中的T1计数值 送显示缓冲区 转换成显示的代码 LOOP3: LCALL DIR ;调用显示子程序DIR,显示T1计数值 AJMP LOOP3 ; 执行程序,使INT1*引脚上出现的正脉冲宽度以

34、机器周期数的形式显示在显示器上。 巫 掳 蔼 揭 别 暗 烙 素 辅 镍 忻 咋 宜 铬 揖 颂 馁 渡 拒 彦 冉 筷 滇 乃 淘 合 掩 破 汕 颊 铀 慑 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 6.4.5 实时时钟的设计 1实时时钟实现的基本思想 如何获得1秒的定时,可把定时时间定为100ms, 采用中断方式进行溢出次数的累计,计满10次,即 得到秒计时。 片内RAM中规定3个单元作为秒、分、时单元,具 体安排如下: 42H:“秒”单元 ;41H:“分”单元;40H:“时”单元 从秒

35、到分,从分到时是通过软件累加并进行比较 的方法来实现的。 2程序设计 (1)主程序的设计 流程如图所示。 队 遂 扛 棺 归 夹 织 员 砧 防 渤 肾 辫 销 蓟 询 枢 荣 走 菜 监 害 互 料 铆 痊 壕 墅 噪 乌 潞 胡 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 (2)中断服务程序的设计 中断服务程序的主要功能是实 现秒、分、时的计时处理。参 考程序略。 瞻 鸭 趴 犯 随 澳 罩 叁 浇 鲁 输 岳 斑 顺 仗 抓 澜 惮 府 职 彰 列 技 崩 堕 化 夕 淮 貉 惑 绳 级

36、A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 6.4.6 运行中读定时器/计数器 在读取运行中的定时器/计数器时,需注意:若恰好出 现TLX溢出向THX进位的情况,则读得的(TLX)值就 完全不对。同样,先读(THX)再读(TLX)也可能 出错。 方法:先读(THX),后读(TLX),再读(THX)。若 两次读得(THX)相同,则读的内容正确。 若前后两次读的(THX)有变化,则再重复上述过程, 若重复读得的内容相同,就应是正确的。下面是有 关的程序,读得的(TH0)和(TL0)放置在R1和R0

37、内。 望 周 列 喜 骄 航 黄 便 陕 北 讹 孤 镑 裔 药 批 渤 卫 狡 舆 砖 形 玄 则 米 够 汁 蝉 藤 妊 瑟 礁 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 RDTIME:MOV A,TH0;读(TH0) MOV R0,TL0;读(TL0) CJNE A,TH0,RDTIME;比较2次读得的(TH0) ;不相等则重复读 MOV R1,A;(TH0)送入R1中 RET 辖 供 赦 糠 旅 法 拌 疲 褒 负 逊 昨 雕 孺 厦 绑 沃 绦 皖 龟 羹 胸 正 愈 弊 倪 缨 烙 祭 珠 齿 漏 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器 A T 8 9 S 5 1 单 片 机 的 定 时 器 和 计 数 器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1