中断寄存器
- 格式:doc
- 大小:84.00 KB
- 文档页数:5
单片机中断系统一、单片机中断系统的概念单片机中断系统是指在程序运行过程中,由于出现特殊情况(如外部设备的输入信号、定时器溢出等),使得单片机暂时停止当前任务的执行,转而执行相应的中断服务程序(ISR),以处理中断事件。
中断处理完毕后,再返回到中断点继续执行原来的任务。
这种特殊的中断机制,使得单片机能够同时处理多个任务,实现了实时性较高的应用程序设计。
二、单片机中断系统的结构单片机中断系统主要由以下几个部分组成:1、中断源:产生中断的外部设备或内部定时器。
2、中断请求寄存器:用于存储各个中断源的中断请求状态。
3、中断优先级寄存器:用于确定多个中断源的优先级。
4、中断服务程序(ISR):用于处理中断事件,执行相应的操作。
5、中断返回:中断处理完毕后,返回原程序继续执行。
三、单片机中断系统的处理过程当单片机检测到某个中断源发出中断请求时,会暂停当前任务的执行,按照优先级顺序执行相应的中断服务程序(ISR)。
在ISR中,程序会读取中断源的中断请求状态,并对相应的中断源进行处理。
处理完毕后,程序会返回原程序继续执行。
如果此时还有其他的中断源发出中断请求,则根据优先级顺序再次执行相应的ISR。
四、单片机中断系统的应用单片机中断系统在实时控制、数据采集、通信等领域有着广泛的应用。
例如,在工业控制中,当某个传感器发出中断请求时,单片机可以暂停当前任务的执行,转而执行相应的中断服务程序(ISR),对传感器数据进行采集和处理。
处理完毕后,再返回原程序继续执行。
这样,单片机可以在不丢失任何数据的情况下,实时地响应外部设备的请求。
五、总结单片机中断系统是实现实时控制和数据处理的重要手段之一。
通过合理的配置和使用中断系统,可以提高单片机的实时性能和数据处理能力。
在实际应用中,需要根据具体的需求和硬件条件选择合适的单片机型号和中断系统配置方案,以满足系统的实时性和稳定性要求。
单片机的中断系统在嵌入式系统设计中,单片机因其体积小、性价比高、可靠性强等特性被广泛应用。
1-CPU 定时器寄存器TIMER0T1M CPU 定时器0计数器寄存器低位TIMER0T1MH CPU 定时器0计数器寄存器高位TIMER0PRD CPU 定时器0周期寄存器低位TIMER0PRDHCPU 定时器0周期寄存器高位TIMER0TCRCPU 定时器0控制寄存器TIMER0TPR CPU 定时器0预定标寄存器低位 TIMER0TPRH CPU 定时器0预定标寄存器高位(1) TIF 位15,定时器中断标志位。
当定时器减到0时,标志位将置1,可通过软件写1对该位清零,但是只有计数器递减到0,该位才会被置位。
(2) TIE 位14,定时器中断使能位。
如果定时器计数器递减到0,该位置1,定时器将会向CPU 提出中断请求。
(3) FREE 位11。
定时器仿真方式:FREE 和SOFT 位是专用于仿真的(4) TRB 位5。
定时器重装位。
当向TRB 写1时,PRDH:PRD 的值装入TIMH :TIM ,并且把定时器分频寄存器TDDRH:TDDR 中的值装入预定标计数器PSCH:PSC 。
TRB 位一直读作0.(5) TSS 位4。
定时器停止状态位。
TSS 是停止或启动定时器的一个标志位。
要停止定时器,置TSS 为1。
要启动或重启动定时器,置TSS 为0.提供了一个关闭定时器的有效方法包含了两部分的内容外部设备的中断使能位PSC 位15-8. 定时器预定标器计数器。
PSC是预定标计数器的低8位,PSCH是预定标计数器的高8位。
对每一个定时器时钟周期,PSCH:PSC的值大于0,PSCH:PSC逐个减计数。
PSCH:PSC到0后是一个定时器时钟(定时器预定标器的输出)周期,TDDRH:TDDR的值装入PSCH:PSC,定时器计数器寄存器TIMH:TIM减1.无论何时,定时器重装位TRB由软件置1时,也重装PSCH:PSC。
复位时,PSCH:PSC置为0。
TDDR 位7-0. 定时器分频器TDDR是定时器分频器的低8位,TDDRH是定时器分频器的高8位。
UART寄存器介绍UART(Universal Asynchronous Receiver/Transmitter)是一种串行通信协议,常用于各种微控制器和外围设备之间的通信。
UART寄存器是用来配置和控制UART模块的寄存器,包括数据传输、波特率、中断、状态等方面。
本文将从这几个方面详细介绍UART寄存器。
1.数据传输寄存器:数据传输寄存器用来存储和传输数据。
在发送数据时,将要发送的数据写入数据寄存器,发送完毕后,数据寄存器将被清空准备接收下一个数据。
在接收数据时,接收到的数据会存储在数据寄存器中,供读取或进一步处理。
2.波特率寄存器:波特率寄存器用来设置UART通信的波特率,它决定了数据传输的速率。
波特率寄存器通常是一个16位寄存器,低8位用来表示分频器的分频值,高8位用来表示分频器的倍频值。
通过设置不同的分频值和倍频值,可以实现不同的波特率。
具体的计算公式如下:波特率=时钟频率/(分频值*倍频值)3.中断寄存器:中断寄存器用来配置和控制UART模块的中断。
通过设置中断使能位和中断标志位,可以实现在特定事件发生时触发相应的中断处理程序。
常见的中断包括接收到数据中断、发送数据完成中断、数据溢出中断等。
4.状态寄存器:状态寄存器用来提供UART模块的状态信息。
常见的状态包括发送缓冲区为空、接收缓冲区不为空、接收缓冲区溢出、发送完成等。
通过读取状态寄存器的值,可以了解UART模块的当前状态,并进行相应的处理。
5.控制寄存器:控制寄存器用来配置和控制UART模块的行为。
它可以设置UART模块的工作方式、数据位数、停止位数、校验方式等。
通过写入控制寄存器的不同值,可以改变UART的工作模式,并对数据进行校验等处理。
6.波特率发生器寄存器:波特率发生器寄存器用来配置UART模块的波特率发生器。
波特率发生器根据设置的时钟频率和波特率,产生传输数据时所需要的时钟信号。
通过修改波特率发生器寄存器的值,可以调整UART模块的波特率。
说明8259a中断控制器中的irr、isr和imr三个寄存器的功能8259A中断控制器是一种常用的外部设备,用于管理和分发系统中的中断请求。
它有三个重要的寄存器:IRR(中断请求寄存器)、ISR (中断服务寄存器)和IMR(中断屏蔽寄存器),这些寄存器在控制和处理中断时起到关键作用。
IRR寄存器(Interrupt Request Register)用于存储当前发生的中断请求。
每个位都对应一个中断源,当某个外部设备发出中断请求时,对应位会被置为1。
CPU可以通过读取IRR寄存器来检测当前的中断请求状态,以确定哪个中断源需要被处理。
ISR寄存器(Interrupt Service Register)用于记录正在被CPU处理的中断源。
当中断请求被CPU接受后,对应的中断源的位会被置为1,表示该中断正在被处理。
ISR寄存器的内容可以帮助CPU追踪当前正在处理的中断,以避免同时处理多个中断源。
IMR寄存器(Interrupt Mask Register)用于屏蔽中断请求。
每个位对应一个中断源,当对应位被置为1时,表示该中断源被屏蔽,即中断请求不会被接受。
通过设置IMR寄存器,CPU可以选择性地屏蔽或允许特定的中断源。
通过IRR、ISR和IMR这三个寄存器的配合使用,8259A中断控制器可以有效地管理和分发系统中的中断请求。
CPU可以通过读取IRR寄存器来检测中断请求,并根据IMR寄存器的设置来确定是否屏蔽某个中断源。
当CPU接受一个中断请求后,会将对应的中断源的位设置为1,并在ISR寄存器中记录下来,以便追踪和处理当前的中断。
当中断处理完成后,CPU会清除ISR寄存器中的相应位,表示中断已经处理完毕。
通过使用这些寄存器,8259A中断控制器可以实现多个中断源的优先级管理、中断请求的屏蔽和中断处理的跟踪。
这些功能对于保证系统可靠性和提高系统的响应能力非常重要。
S3C2440中断分析中断源未决寄存器(SRCPND)和中断未决寄存器(INTPND)以及外部中断未决寄存器(EINTPEND)分析2013年04月13日飞梦缘整理中断源未决寄存器SRCPND寄存器由32位构成,每一位与一个中断请求信号相关联。
当某个中断源请求中断服务时,SRCPND寄存器中相应位被置为1,即首先在源未决寄存器中做登记,因此该寄存器记录了哪个中断源的请求在等待处理。
注意SRCPND寄存器的每一位由中断源自动设置,而不管中断屏蔽寄存器中对应的位是否被屏蔽,此外,SRCPND寄存器也不受中断控制器的优先级逻辑影响。
当多个中断源提出中断请求后,SRCPND寄存器中相应位均被置为1,然后裁决逻辑基于优先级寄存器来进行处理,选中优先级最高的中断请求,对中断未决寄存器中相应的位设置为1。
注意:INTPND寄存器中只有一位可以被设置为1,如果该中断被屏蔽,SRCPND寄存器中相对应的位被设置为1,但不会导致INTPND寄存器中相应位也被设置为1,SRCPND寄存器是可读可写的,在某个特定中断源的中断服务程序中,SRCPND寄存器的相应位必须被清除,从而保证能收到同一中断源的下一次中断请求,如果从中断服务程序返回时没有清除相应的未决位,中断控制器会误以为该中断源产生了另一个中断请求,换句话说,如果SRCPND寄存器的某位始终设置为1,则被认为始终有一个与该位相对应的中断源,即一个有效的中断请求等待处理,何时进行清除相应的未决位取决于用户需求,如果想在中断服务程序中,再收到相同的中断源提出的另一个有效的中断请求,则应该首先清除相应的未决位,用户可以通过写数据“1”到SRCPND寄存器来清除相应的未决位,数据位为“1”表示该位置的未决位将被清除,而0表示该位置的未决位保持不变。
———————————————————————————————————————————————————前几天把外部中断基本搞好了,但对几个中断寄存器的具体含义和区别不是很了解。
定时器控制寄存器TCONTCON:Timer控制寄存器,是管理定时器工作的TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平触发;=1:在INT0/INT1端申请中断的信号负跳变触发.IE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。
TF0/TF1:定时器0/定时器1溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。
TR0/TR1:定时器运行启停控制位:=0:定时器停止运行;=1:定时器启动运行。
中断允许寄存器IEEA —ET2 ES ET1 EX1 ET0 EX0EX0/EX1/ET1/ET0/ES 位:分别是INT0/1,Timer0/1,串行口的中断允许控制位:=0 时禁止中断;=1 时允许中断。
ET2:T2中断允许控制位(仅52系列有)=0 时禁止中断;=1 时允许中断。
EA:总的中断允许控制位(总开关):=0 时禁止全部中断;=1 时允许中断。
中断优先级控制寄存器IP——PT2 PS PT1 PX1 PT0 PX0PX0/PX1:INT0/1优先级控制位:=0 时属低优先级;=1 时属高优先级。
PT0/PT1/PT2:T0/1/2中断优先级控制位:=0 时属低优先级;=1 时属高优先级。
PS1:串行口中断优先级控制位:=0 时属低优先级;=1 时属高优先级。
interrupt m 修饰符interrupt m C51中断函数必须通过它进行修饰。
在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按51系统中断的处理方式自动把它安排在程序存储器中的相应位置。
在该修饰符中,m的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2定时器方式寄存器TMODGATE C / T M1 M0 GATE C / T M1 M0T1 T0M1,M0:工作方式定义位( 定义4 种方式):0 0:13位定时器0 1:16位定时器1 0:可自动重装的8位定时器1 1:T0 分为2个8位Timer;T1 此时不工作C/T :计数器/定时器选择位= 1 外部事件计数器。
1.定时器/计数器控制寄存器TCON定时器/计数器控制寄存器TCON的地址为88H,可以位读写,控制T0、T1的启动和停止计数,同时包含了T0、T1是否溢出的状态。
其功能如下:TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0⑴TF1是定时器T1的溢出申请位。
定时器T1被允许计数以后,从初值开始加1计数,当产生溢出时置TF1=1,向CPU请求中断。
到CPU响应该中断后才由硬件自动清0,也可以由查询程序清0(软件清零)。
⑵TF0是定时器T0的溢出申请位。
其作用类同于TF1。
TF0实际上是T0中断触发器的一个输出端。
⑶IE1是外部中断INT1请求标志位。
当CPU检测到在INT1管脚上出现低电平或脉冲下降沿的外部中断信号时,由硬件置位IE1=1,请求中断。
CPU响应中断并运行中断服务程序后,如脉冲边沿触发方式,则IE1位被硬件自动清0。
⑷IT1是外部中断INT1请求控制位,由程序来置1或清0。
IT1=0时,外部中断INT1被设置为电平触发方式,当INT1输入低电平时,置位IE1,申请中断,直到该中断被CPU响应。
同时,在该中断服务程序执行完之前,外部中断源有效电平必须被撤消,否则将产生另一次中断。
IT1=1时,外部中断1为边沿触发方式,CPU如果采样高电平到低电平跳变,则硬件自动对IE1置1,申请中断。
CPU响应中断后,IE1由硬件自动清0。
⑸IE0是外部中断INT0请求标志位。
⑹IT0是外部中断INT0触发方式控制位。
定时器计数器结构框图2.定时器/计数器方式寄存器TMOD选择定时器/计数器T0、T1的功能和工作方式,字节地址为89H。
TMOD D7D6D5D4D3D2D1D089H GATE C/T M1M0GATE C/T M1M0说明:M1、M0:工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择。
89C51中断寄存器详情中断系统:AT89C51单片机的中断系统由中断源、与中断控制有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源、4个与中断控制有关的寄存器(IE、IP、TCON、SCON)、两个中断优先级及顺序查询逻辑电路。
1.中断源:中断源是指能引起中断、发出中断请求的装置或事件。
AT89C51有5个中断源○1外中断0(INT0):中断请求信号从单片机的P3.2脚输入○2外中断1(INT1):中断请求信号从单片机的P3.3脚输入○3内定时器/计数器0(T0):溢出中断○4内定时器/计数器1(T1):溢出中断○5串行口中断:包括串行收中断RI和串行发中断TI2.中断入口地址及内部优先权寄存器3.IE结构及各位名称、地址⑴EA是CPU中断总允许位。
EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断请求。
⑵ES是串行中断允许控制位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
⑶ET1是定时器/计数器1中断允许控制位。
ET1=1时允许定时器/计数器1中断;反之禁止。
⑷EX1是外部中断INT1中断允许位。
EX1=1时,允许外部中断1中断;反之依然。
⑸ET0是定时计数器T0的溢出中断允许位。
ET1=1时允许定时器/计数器0中断;反之禁止。
⑹EX0是外部中断INT0允许位。
EX1=1时,允许外部中断0中断;反之禁止。
89C51系统复位后,IE中各位均被清0,即禁止所有中断。
4.TCON(定时器/计数器和外中断控制寄存器):TCON的字节地址为88H,是可位寻址的特殊功能寄存器,其地址有低到高依次是88H ~ 8FH。
TCON结构及位名称、位地址TF1:T1溢出中断请求标志。
当定时器/计数器T1溢出时,由硬件置“1”,请求中断。
TF0:T0溢出中断请求标志。
当定时器/计数器T0溢出时,由硬件置“1”,请求中断。
IE1:外中断1中断请求标志。
当INT1引脚(P3.3)上出现有效的外部中断信号时,由硬件置“1”,请求中断。
SJA1000在CAN总线系统节点的应用摘要:介绍CAN总线控制器SJA1000;给出其在CAN总线系统节点中的应用方法、节点电路原理图及初始化程序;针对用户SJA1000容易出现的问题进行了解说。
关键词:CAN总线SJA1000 节点单片机CAN 总线是德国Bosch公司20世纪80年代初,为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发一种串行数据通信协议。
1993年11月,ISO正式颁布了道路交通运载工具,进行数据信息交换用的高速通信控制局部网(CAN)的国际标准(ISO11898)。
PHILIPS、Intel、MOTOROLA等公司出品了很多支持CAN协议的集成芯片,如82526、SJA1000、68HC05X4/X16/X32和具有片内CAN的电磁兼容微控制器P8XCE598、16位微控制器87C196CA/CB等。
下面介绍PHILIPS半导体公司推出的CAN总线控制器SJA1000,并给出其应用实例。
1 CAN总线控制器SJA1000芯片介绍SJA1000是一种独立的CAN总线控制器。
PHILIPS半导体公司将它作为PCA82C200 CAN 控制器(Basic CAN)的替代产品。
SJA1000增加了一种新的工作模式(Peli CAN),这种模式支持具有很多新特性的CAN 2.0B协议。
1.1 SJA1000引脚介绍图1是SJA1000引脚图。
SJA1000具有28个引脚,下面对部分引脚进行介绍。
MODE:模式选择输入,1(高电平)=Intel模式;0(低电平)=Motorola模式。
TX0、TX1:从CAN输出驱动器0,1输出到物理总线上。
RX0、RX1:从物理CAN总线输入到SJA1000的输入比较器。
INT:中断输出,用于中断微控制器。
INT在内部中断寄存器各位都置位时,低电平有效。
INT是开漏输出。
CLKOUT:SJA1000产生的提供给微控制器的时钟输出信号,时钟信号来源于内部振荡器且通过编程驱动,时钟控制寄存器的时钟关闭位可禁止该引脚。
中断寄存器用来设定各个中断源的打开和关闭,IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H~AFH,该寄存器运行位寻址,即可对该寄存器的每一位进行单独操作。
单片机复位时IE全部被清零。
下面列举各位的在不同状态下的具体含义
EA-------全局中断允许位
EA = 1,打开全局中断控制,在此条件下由各个中断控制位(TCON寄存器中的TRn位)控制相应中断的打开和关闭。
EA = 0,关闭全部中断。
ET2--定时器/计数器2中断允许位
ET2 = 1,打开T2中断。
ET2 = 0,关闭T2中断。
ES--串行口中断允许位
ES = 1,打开串行口中断。
ES = 0,关闭串行口中断。
ET1--定时器/计数器中断允许位
ET1 = 1,打开T1中断。
ET1 = 0,关闭T1中断.
EX1--外部中断1中断允许位
EX1 = 1,打开外部中断1中断。
EX1 = 0,关闭外部中断1中断。
ET0--定时器/计数器0中断允许位
ET0 = 1,打开T0中断。
ET0 = 0,关闭T0中断。
EX0--外部中断0中断允许位
EX0 = 1,打开外部中断0中断。
EX0 = 0,关闭外部中断0中断。
Socket 端口寄存器Sn3_MR (Socket n 模式寄存器) [R/W] [0x0000] [0x00]Sn_MR 描述3n 是 Socket 编号(0,1,2,3,4,5,6,7).n 设置了 SNUM[2:0]控制位集 n is Socketnumber (0, 1, 2, 3, 4, 5, 6, 7). n is set ‘SNUM[2:0]’ in Control Bits sets.Sn_CR (Socket n 配置寄存器) [R/W] [0x0001] [0x00]该寄存器用于设置 Socket n 的配置命令如 OPEN、CLOSE、CONNECT、LISTEN、END 和RECEIVE。
经 W5500 识别这一命令后,Sn_CR 寄存器会自动清零为 0×00。
尽管 Sn_CR 被清零为 0×00,但命令仍在处理中。
为了验证该命令是否完成,请检查 Sn_IR 或 Sn_SR 寄IR (中断寄存器) [R/W] [0x0015] [0x00]中断寄存器( IR)指明了中断的状态。
IR 的每一位都是‘0’,直到被主机写为‘1’. 如果 IR 不等于‘0×00’, INTn 引脚将会被拉低。
直到其变为‘0×00’时, INTn 才会被拉高。
S n_SR (Socket n 状态寄存器) [R] [0x0003] [0x00]Sn_SR指示了 Socket n 的状态,并根据 Sn_CR 或者一些TCP模式下的特殊控制包,如 SYN,FIN 包而改变。
Sn_SR临时状态描述Sn_PORT (Socket n 源端口寄存器) [R/W] [0x0004-0x0005] [0x0000]该寄存器配置了 Socket n 的源端口号。
当 Socket n 工作在 TCP 或 UDP 模式下,该寄 存器生效。
注意:必须在 OPEN 命令生效前,完成对该寄存器的设置。
单片机寄存器和指针的关系导言单片机(Microcontroller Unit,MCU)是一种功能强大且体积小巧的计算机系统,它集成了处理器、存储器和各种系统外设,用于控制电子设备的各种功能。
在单片机开发过程中,寄存器和指针是两个非常重要的概念。
寄存器是用于存储数据的特殊内存单元,而指针则是指向寄存器或其他内存位置的变量。
本文将深入探讨单片机寄存器和指针之间的关系以及它们在单片机编程中的应用。
寄存器和指针的基本概念寄存器寄存器是一种特殊的存储单元,通常用于存储和操作数据。
在单片机中,寄存器可以分为通用寄存器(General Purpose Register,GPR)和特殊功能寄存器(Special Function Register,SFR)两类。
通用寄存器是供程序员自由使用的寄存器,其值可以随意更改。
在程序中,我们可以将数据暂存到通用寄存器中,进行各种运算和操作。
通用寄存器的数量和位宽度可以根据单片机的型号和架构而有所不同。
特殊功能寄存器是用于访问和控制单片机内部外设的寄存器。
每个外设都有一组特殊功能寄存器,用于读取和设置外设的各种参数和状态。
通过操作特殊功能寄存器,程序可以与外设进行交互,实现各种功能。
特殊功能寄存器的地址通常被预定义,并有特定的名称,例如控制寄存器、状态寄存器等。
指针指针是一种特殊的变量,它存储了一个地址,指向内存中的某个位置。
单片机中的指针可以用来访问寄存器和其他内存位置的数据。
通过使用指针,我们可以直接操作特定地址上的数据,而不需要将数据加载到寄存器中。
这样,我们可以节省寄存器的使用,提高代码的效率和灵活性。
指针在单片机编程中起到了非常重要的作用。
我们可以通过定义指针来访问特殊功能寄存器,读取或修改其值。
此外,指针还可以用于访问其他内存位置的数据,例如缓冲区或数组。
寄存器和指针是密切相关的,它们在单片机编程中有着紧密的联系。
指针访问寄存器在单片机编程中,我们可以使用指针来直接访问寄存器的值。
51单片机中断代码解释一、引言51单片机是一种广泛使用的微控制器,具有丰富的中断功能。
中断是单片机在执行程序过程中,由于某种原因需要暂停当前的任务,转而处理更为紧急的事件。
处理完该事件后,再返回到之前被中断的程序继续执行。
本文将对51单片机的中断代码进行详细解释,包括中断概念、中断源、中断寄存器和寄存器功能与赋值说明等方面。
二、中断概念中断是一种计算机系统中处理优先级更高任务的方式。
当某个事件发生时,CPU会暂时停止当前任务的执行,转而处理该事件。
处理完该事件后,CPU会返回到之前被中断的程序继续执行。
三、中断源51单片机有多种中断源,包括外部中断0、外部中断1、定时器0、定时器1等。
每个中断源都可以独立地开启或关闭,并且可以设置优先级。
四、中断寄存器51单片机与中断相关的寄存器主要有:1.ICON(中断允许控制寄存器):用于控制中断的开启和关闭。
可以通过设置ICON寄存器的相关位来启用或禁用某个中断。
2.INT0/INT1(外部中断0/1控制寄存器):用于控制外部中断0和外部中断1的触发方式、触发边沿和触发方式等。
3.TMOD(定时器模式控制寄存器):用于设置定时器的模式和工作方式。
4.TH0/TH1(定时器0/1计数器高8位寄存器):用于存储定时器的计数值。
5.TL0/TL1(定时器0/1计数器低8位寄存器):用于存储定时器的计数值。
五、寄存器功能与赋值说明1.ICON寄存器:o EA:全局中断允许位,设置为1时允许所有中断,设置为0时禁止所有中断。
o ET0:定时器0中断允许位,设置为1时允许定时器0中断,设置为0时禁止定时器0中断。
o ET1:定时器1中断允许位,设置为1时允许定时器1中断,设置为0时禁止定时器1中断。
o EX0:外部中断0允许位,设置为1时允许外部中断0,设置为0时禁止外部中断0。
o EX1:外部中断1允许位,设置为1时允许外部中断1,设置为0时禁止外部中断1。
2.INT0/INT1寄存器:o IT0/IT1:外部中断0/1触发方式选择位,设置为0时选择下降沿触发,设置为1时选择低电平触发。
TMS320C2000、TMS320C5000、TMS320C6000DSP的中断系统的比较以及TMS320C54x在中断编程中的注意事项姓名:刘帅民学号:201120195005 专业:通信与信息系统摘要:本文中主要针对TI公司生产的TMS320C2000系列、TMS320C5000系列和TMS320C6000系列DSP的中断系统进行简要概述,最后又简要叙述了编写TMS320C54x DSP芯片的中断程序应该注意的事项。
Abstract:The article focused on the briefly discusses of TI’s TMS320C2000 Series,TMS320C5000 Series and TMS320C6000 Series DSP’s interrupt system,finally a brief description should be payed attention to when write the interrupt program of the TMS320C54x DSP chip .一、中断的概述中断是指使CPU 暂停执行当前程序而转去执行中断子程序(ISR)的过程。
中断分为两类:(1)可屏蔽中断(可通过软件禁止);(2)不可屏蔽中断(不能被软件禁止)。
CPU一般通过以下四个步骤处理中断:(1)检测到中断请求信号;(2)允许中断:对于可屏蔽中断来说需要满足一定的条件,对于不可屏蔽中断则立即响应;(3)保护现场(自动将寄存器STO,T,AI ,AH,PI ,PH,ARO,AR1,DP,ST1,DBGSTAT,PC,IER压栈保存),读取中断向量并将它赋给程序指针PC。
(4)转入执行中断服务子程序(ISR)。
三大系列DSP芯片的结构不同,实现的功能也不同,所以,三者的中断系统也不同。
下面对三者的中断系统做一个简单的比较。
二、三大系列DSP芯片的中断系统比较1、TMS320C2000的中断系统C2000系列DSP中断可由硬件(中断引脚、外部设备、片内外设)或软件(INTR、IFR指令或TRAP指令)触发。
一、中断序号
二、IE(interrupt enable)中断允许寄存器(可以位寻址)
只有打开全局开关,其它各位的开关才可以开启。
每个位开关赋值为1则开,赋值为0则关。
使用方法:(1)整体赋值:如IE=0x81;(开启全局中断,打开外部中断0)
(2)、单独赋值:如EA=1;EX0=1;(开启全局中断,打开外部中断0)
三、IP中断优先级控制寄存器(可位寻址)
四PCON电源控制寄存器(只能字节寻址,不能位寻址)
SMOD:波特率加倍位,该位与串口通信有关。
POF:掉电标志位。
GF1,GF0:两个通用工作标志位,用户可以自由使用。
PD:掉电模式设定位。
●PD=0 单片机处于正常工作状态。
●PD=1 单片机进入掉电(Power Down)模式,可由外部中断或硬件复位模式唤醒,
进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部
中断工作。
在该模式下,只有硬件复位和上电能够唤醒单片机。
IDL:空闲模式设定位。
●IDL=0 单片机处于正常工作状态。
●IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空
闲模式下可由任一个中断或硬件复位唤醒。
五TCON(Timer Control Register)定时器/计数器控制寄存器(可位寻址)
TF1:定时器1溢出标志位。
●当定时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。
进入中断服务程序
后,由硬件自动清“0”,在查询方式下用软件清“0”。
TR1:定时器1运行控制位。
●由软件清“0”关闭定时器1。
当GATE=1,且INT1为高电平时,TR1置“1”启动定
时器1;当GATE=0,TR1置“1”启动定时器1。
TF0:定时器0溢出标志。
其功能及操作情况同TF1。
TR0:定时器0运行控制位。
其功能及操作情况同TR1。
IE1:外部中断1请求标志位。
发生中断后由硬件置1,响应中断后由硬件清零。
IT1:外部中断1触发方式选择位。
●当IT1=0,为低电平触发方式;
●当IT1=1,为下降沿触发方式。
IE0:外部中断0请求标志位。
发生中断后由硬件置1,响应中断后由硬件清零。
IT0:外部中断0触发方式选择位。
与IT1一样。
六、SCON(SerialControlRegister)串行口控制寄存器(可位寻址)
SM0、SM1——串行口工作方式控制位,有方式0、1、2、3,共四种。
SM2——多机通信控制位,用于控制单机通信还是多机通信。
●工作于方式0时,SM2不起作用。
●工作于方式1时,若SM2为0,不论停止位是什么,数据都送入SBUF,且发出中
断申请。
●工作于方式1时,若SM2为1,只有停止位是1时,数据才送入SBUF,且发出中
断申请。
否则收到的数据放弃。
●在方式2或3时,当SM2为1时,且接受到的第9位数据RB8为1时,才把接受
到的前8位数据送入SBUF,且置位RI发出中断申请,否则将收到的数据放弃。
●在方式2或3时,当SM2=0时,不管第9位是什么,接受的前8为都送入SBUF,
且发出中断申请。
REN——允许接收位。
REN=1时,允许接收,REN=0时,禁止接收。
TB8——发送接收数据位8。
RB8——接收数据位8。
TI——发送中断标志位,可寻址标志位。
方式0时,发送完第8位数据后,由硬件置位。
因此,TI=1表示帧发送结束,TI可由软件清“0”。
RI——接收中断标志位,可寻址标志位。
接收完第8位数据后,该位由硬件置位,RI=1表示帧接收完成,RI可由软件清“0”。
在串口中断处理时,TI ,RI 都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要在中断寄存器IE 中设置ES=0,以防止中断出现。
四种工作方式:根据SM0,SM1的不同值,组成四种工作方式。
(1)方式0(SM0SM1:00):串行口的工作方式0为移位寄存器I/O 方式,可外接移位寄存器,扩展I/O 口,也可外接同步I/O 设备。
波特率=/12osc f 。
● 发送操作:当启动发送操作时,由TXD 输出移位脉冲,由RXD 串行SBUF 中的
数据。
发送完8位数据后自动置TI=1,请求中断。
要继续发送时,TI 必须有指令清零。
● 接收操作:REN 是串行口接收允许控制位。
当软件将REN 置“1”时,即开始从
RXD 端口以fosc/12波特率输入数据,当接收到8位数据时,将中断标志RI 置“1”。
再次接收数据之前,必须用软件将RI 清0。
(2)方式1(01):串行口位10位通用异步接口,波特率=SMOD 2/12(1)⨯定时器溢出率。
●
8位UART 接口。
● 帧结构为10位,包括起始位(为0),8位数据位,1位停止位。
● 波特率由指令设定,由T1的溢出率决定。
●
接收操作:在(REN )=1时,串行口采样RXD 引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。
当SM2=0时,只要RI=0,不论停止位是1或0,停止位都进入RB8,并由硬件置位中断标志RI 。
当SM2=1时,只有当RI=0且停止位为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI ;否则信息丢失。
所以在方式1接收时,应先用软件清零RI 和SM2标志。
(3)方式2(10):串行口为11位异步通信接口,波特率=SMOD 2/64fosc ⨯。
(4)方式3(11):为波特率可变的11位异步通信方式,除了波特率可变外,其余方式都与方式2相同。
波特率=SMOD 2/32(1)⨯定时器溢出率
方式2和方式3具有多机通信功能,这两种方式除了波特率不同以外,其余完全相同。
● 9位UART 接口。
● 帧结构为11位,包括起始位(为0)、8位数据位、1位可编程位TB8/RB8和停止位(为
1)。
● 发送操作:发送数据之前,由指令设置TB8(如作为奇偶校对位或地址/数据位),将要
发送的数据由A 写入SBUF 中启动发送操作。
在发送中,内部逻辑会把TB8装入发送移位寄存器的第9位位置,然后发送一帧完整的数据,发送完毕后置位TI 。
TI 须由指令清零。
● 接收操作:当置位REN=1位且RI=0时,启动接收操作,帧结构上的第9位送入RB8
中,对所接收的数据视SM2和RB8的状态决定是否会使RI 置位。
七、TMOD :定时器/计数器模式控制寄存器(只能字节寻址,不能位寻址)
其中低四位定义定时器/计数器C/T0,高四位定义定时器/计数器C/T1,各位的说明:
GATE——门控制。
●GATE=0时,由TR0,TR1置位分别启动定时器T0、T1。
●GATE=1时,当INT0(INT1)引脚为高电平时且TR0(TR1)置位,TR0(TR1)
等于1;启动定时器T0(T1)
C/T——功能选择位,C/T=0时为定时功能,C/T=1时为计数功能。
M0、M1——方式选择功能。
有4种工作方式。
●M1M0为00时,方式0,是13位计数器。
●M1M0为01时,方式1,是16位计数器。
●M1M0为10时,方式2,是自动重载8位计数器。
●M1M0为11时,方式3,T0分为2个8位独立计数器,T1停止计数。
八、计数寄存器TH1、TL1、TL1、TL0
用于计数或定时的时候,设置计数初值。
九、定时器/计数器有关的寄存器
(1)中断允许寄存器:IE
(2)中断优先级控制寄存器:IP
(3)定时器方式寄存器:TMOD
(4)定时器控制寄存器:TCON
(5)计数寄存器:TH0、TL0;TH0、TL1。
可用于设定计数初值。
十、外部中断有关的寄存器
(1)中断允许寄存器:IE
(2)中断优先级控制寄存器:IP
(3)定时器控制寄存器:TCON(设置是低电平触发,还是下降沿触发)。
十一、与串口中断有关的寄存器
(1)中断允许寄存器:IE
(2)中断优先级控制寄存器:IP
(3)电源控制寄存器:PCON
(4)定时器方式寄存器:TMOD
(5)定时器控制寄存器:TCON
(6)计数寄存器:TH0、TL0;TH0、TL1。
(7)串口功能控制寄存器:SCON。