单片机时钟中断解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机时钟中断解析
本文根据<新概念51单片机C语言教程>整理
一. 中断一般概念
51单片机一共设有5个中断源. 引起CPU中断根源, 成为中断源. 中断嵌套, 也即单片机在处理一个中断时又发生了一个中断, 单片机中断当前中断程序, 转而去处理新的中断程序. 中断优先级, 通过中断优先级寄存器设置.
1. 中断源及其默认优先级
其中, T2是52单片机独有的.
2. 中断控制中的特殊功能寄存器SFR
(1). 中断允许寄存器IE(Interrupt Enable)
(2). 中断优先级寄存器IP(Interrupt Priority)
二. 单片机的定时器中断
定时器/计数器实质是一个16位的加1计数器, 由高8位(THx)和低8位(TLx)两个寄存器组成. TMOD是定时器/计数器的工作方式寄存器, 确定工作方式和功能; TCON是控制寄存器, 控制T0, T1的启动和停止及设置溢出标志.
1. 定时器/计数器工作方式寄存器TMOD
定时器/计数器工作方式寄存器在特殊功能寄存器中, 字节地址为0x89, 不能位寻址, TMOD 用来确定定时器的工作方式及功能选择. 单片机复位时TMOD全部被清0. 各位的含义如
下:
2. 定时器/计数器控制寄存器TCON
3. 中断服务程序的C语言写法
C51的中断函数格式如下:
void func_name() interrupt 中断号[using 工作组]
{
//中断服务程序内容
}
●中断号: 指单片机中几个中断源的序号. 是编译器识别不同中断的唯一符号.
●工作组: 可选部分. 指这个中断函数使用单片机内存中4组工作寄存器中的哪一组, C51
编译器在编译时会自动分配工作组, 故通常省略.
C语言中断程序示例如下:
void T1_time() interrupt 3
{
TH1 = (65536-10000)/256;
TL1 = (65536-10000)%256;
}
三. 补充
1. 普通51系列单片机存储空间资源分配情况。