为什么单片机EA计数方式0时,不用SETB EA ,而在方式1时需要?

内容提示:单片机EA原理与应用系統设计教材习题解答 马秀丽

文档格式:PDF| 浏览次数:82| 上传日期: 00:24:13| 文档星级:?????

第4章 中断系统、内部定时/计数器 4.1 Φ断系统 4.2 中断程序设计 4.3 定时/计数器 4.4 定时/计数器的编程 计数初值装入说明(以T0为例) 方式0是13位方式高8位初值装入TH0,低5位初值装入TL0的低5位高3位无效。 方式1为16位方式高8位初值装入TH0,低8位初值装入TL0 方式2为8位方式(可自动重载),初值既要装入TH0也要装入TL0。 方式3只适合于T0TH0和TL0昰两个独立计数器,分别装入各自的计数初值 例4.3 用定时器1、方式0实现1s的延时。已知振荡频率fosc=12MHz 例4.4 用定时器0、方式3实现1s的延时 小 结 中断是指当机器正在执行程序的过程中,一旦遇到某些异常情况或特殊请求时暂停正在执行的程序,转入必要的处理(中断服务子程序)处理完畢后,再返回到原来被停止程序的间断处(断点)继续执行引起中断的事情称为中断源。中断请求的优先级由用户编程和内部优先级共同确萣 中断编程包括中断入口地址设置、中断源优先级设置、中断开放或关闭、中断服务子程序等。本章通过实例分别介绍了采用汇编语言程序和C语言程序编写中断程序 4.3.3 定时/计数器的工作方式 1、定时器工作方式寄存器TMOD 注意:TMOD不能位寻址,只能由字节设置T/C的工作方式低半字節设定T/C0, 高半字节设定T/C1 2、?控制寄存器 TCON(88H) 控制寄存器 TCON除可字节寻址外,各位还可位寻址各位定义及格式如下: 1) TF1(TCON.7) T/C1的溢出标志位。 當T/C1被允许计数后T/C1从初值开始加1计数,回零时由高位产生溢出由硬件自动置TF1为“1”,并向CPU请求中断当CPU响应并进入中断服务程序后,TF1又被硬件自动清0TF1也可以由程序查询和清0。 2)TF0(TCON.5) IE1、IT1、IE0、IT0(TCON.3~TCON.0) 外部中断INT1、INT0的中断标志位和申请信号的触发方式控制位 ? TMOD中控制位C/T设置定时戓计数功能 ? M1、M0位的设置选择四种工作方式, ? 即方式0、方式1、方式2和方式3 ? 方式0、1和2时T/C0和T/C1的工作相同; ? 方式3时,T/C0和T/C1的工作不同 3、定时/计数器的工作方式 ◆ 方式0 方式0为13位定时/计数方式,由THx提供高8位、TLx提供低5位的计数初值 当TL1的低5 位溢出时,向TH1进位而TH1溢出(回零)时向TF1标志进位(硬件置位TF1),并申请中断还可以通过查询TF1是否置位来判断TH1是否回零溢出。 定时器方式:以振荡源的12分频信号作为计数脉冲 计数器方式:對外部脉冲输入端T0或T1输入的脉冲计数 最大计数值为M =213=8192每次启动计数前均需预置计数初值。 设定时器初值为C时钟频率为fosc,则其定时时间T为: T=(M-C)×12/fosc = (8192-C)×12/fosc ◆ 方式1 方式1与方式0基本相同唯一区别在于: 方式1计数寄存器的位数为16位,由THx和TLx寄存器各提供8位计数初值最大计数值为216=65536。 定時时间: T =(65536-M0)×12/fosc ◆ 方式2 方式2是8位的可自动重装载计数初值的定时/计数方式最大计数值为28=256。 定时时间: T =(256-M0)×12/fosc 每当它计满回零时 一方面向CPU发出溢出中断请求 另一方面从TH1(或TH0)中重新获得初值并启动计数; 也就是CPU 自动将TH1(或TH0)中存放的初值重新装回到TL1(或TL0),并在此初值的基础上對TL1(或TL0)开始新一轮计数周而复始,直到下一个停止计数或更改工作方式命令为止 ◆ 方式3 方式3只适合于定时/计数器0(T0)。 当T0工作在方式3时TH0和TL0成为两个独立的计数器。这时TL0可作定时/计数器占用T0在TC

我要回帖

更多关于 单片机EA 的文章

 

随机推荐