热度 15
2013-2-5 10:04
1140 次阅读|
0 个评论
昨天给大家介绍了W7100A结构以及存储器的部分,今天继续介绍有关中断、I/O端口及定时器的部分。 3. 中断 中断引脚的功能在下表中介绍,所有引脚都是单向的。没有三态信号。 表3.1 外部中断引脚描述 W7100A内核由两级中断优先级控制,通过设置或清除对应的IP(0xB8)和EIP(0xF8)寄存器的中断优先级位,每一个外部中断可以设置为高优先级或低优先级。外部中断引脚可以是下降沿触发或低电平触发。中断请求在系统时钟的上升沿采样。 表3.2 W7100A中断总结 通过改变IE(0xA8)和EIE(0xE8)对应位的值,每个中断向量都可以独立打开或关闭。IE寄存器包括一个中断总开关EA位,可以禁止(设置为0)和开启中断(设置为1)所有中断。 IE(0xA8) 图3.1 中断使能寄存器 注意: EA – 总中断使能 EX0 - INT0中断使能 ET0 - Timer0中断使能 EX1 - INT1中断使能 ET1 - Timer1中断使能 ES – UART中断使能 ET2 - Timer2中断使能 所有这些可以产生中断的位可以通过软件设置或清除,其结果与硬件中断相同。因此中断可以由软件产生或消除。唯一例外的是IE0和IE1的中断请求标志位。如果外部中断0和中断1编程设置为电平触发,IE0和IE1分别由外部引脚nINT0/FA6和nINT1/FA7控制。 IP(0xB8) 图3.2 中断优先级寄存器 注意: PX0 - INT0中断优先级控制 (1是最高级) PT0 - Timer0中断优先级控制 (1是最高级) PX1 - INT1中断优先级控制 (1是最高级) PT1 - Timer1中断优先级控制(1是最高级) PS - UART中断优先级控制(1是最高级) PT2 – Timer2中断优先级控制(1是最高级) 没有定义的位读出的值为”0”或”1” TCON(0x88) 图3.3 Timer0,1配置寄存器 注意: IT0 - INT0电平(0)/边沿(1)触发控制 IT1 - INT1电平(0)/边沿(1)触发控制 IE0 –当处理器跳转到中断服务程序时,INT0中断标志由硬件清除 IE1 –当处理器跳转到中断服务程序时,INT1中断标志由硬件清除 TF0 – Timer0中断溢出标志,当处理器跳转到中断服务程序时由硬件清除。 TF1 –Timer1中断溢出标志,当处理器跳转到中断服务程序时由硬件清除。 SCON(0x98) 图3.4 配置寄存器 注意: RI – UART接收中断标志 TI – UART发送中断标志 EIE(0xE8) 图3.5 扩展的中断允许寄存器 注意: EINT2 – INT2中断允许位 EINT3 – INT3中断允许位 EINT4 – 如果用EIE,该位为”0” EINT5 – TCP/IP内核中断启动位 EWDI – 看门狗定时器中断允许位 EIP(0xF8) 图3.6 扩展的中断优先级寄存器 注意: PINT2 - INT2中断优先级控制(1是最高级) PINT3 - INT3中断优先级控制(1是最高级) PINT4 – 如果用EIP寄存器,该位为”0” PINT5 – TCPIP核中断优先级控制(1是最高级) PWDI – 看门狗定时器中断优先级控制(1是最高级) EIF(0x91) 图3.7 扩展的中断标志寄存器 注意: INT2F - INT2中断标志.必须软件清零 INT3F – INT3中断标志.必须软件清零 INT4F – 如果用ELF寄存器的话,必须设置成”0” INT5F – TCPIP内核中断标志.必须软件清零 WDCON(0xD8) 图3.8 看门狗控制寄存器 注意: WDIF – 看门狗中断标志. WDIF与看门狗中断允许位(EIE.4)关联,而EWT提供看门狗定时器事件已经产生、或应该采取什么行动等信息。在退出中断服务程序前应该由软件清除这个标志位,否则将产生另外一次中断。通过软件设置WDIF使能,将产生看门狗中断。因此使能WDIF可以产生看门狗中断。定时访问寄存器可以修复该位。 4. I/O端口 根据SFR寄存器的设置,W7100A的GPIO有三种模式:’上拉’,’下拉’和’保持’。 ‘Keep’模式通过同时设置上拉和下拉寄存器来实现。 GPIO在’Keep’工作模式下保持之前的值。 I/O口的功能描述如下表。 表4.1 I/O口引脚功能 对I/O端口的读写操作都是通过对应的特殊功能寄存器(SFR的P0(0x80),P1(0x90),P2(0xA0),P3(0xB0))来实现的。有些读端口指令从寄存器读取数据,而有些从端口引脚读取数据。”读-修改-写”指令是直接操作寄存器,如下表所示。 表4.2 读-修改-写指令 所有其它读端口的指令都是读端口引脚。所有端口引脚都可以作为GPIO(通用输入/输出)。W7100A的GPIO如下图所示。GPIO的输出驱动根据Px的上拉或下拉SFR的值应该是0V或3.3V P0_PD(0xE3) :GPIO0下拉电阻寄存器, 相应引脚为1表示下拉。 P0_PD(0xE3) 5. 定时器 W7100A包含两个16位的定时器/计数器,Timer0和Timer1。在定时器模式,定时器寄存器以每12个时钟周期的周期递增。在计数器模式下,定时器寄存器在相对应引脚(T0或T1)的下降沿递增。输入引脚在每一个CLK周期都采样。 5.1 Timers0,1 5.1.1 概述 Timer0,1的引脚功能描述如下,所有的引脚都是单向的。这些引脚没有三态输出和内部信号。 表5.1 Timers0,1引脚描述 Timer0和Timer1与标准8051的定时器完全兼容。每一个定时器包括2个8位的寄存器:TH0(0x8C)和TL0(0x8A),TH1(0x8D)和TL1(0x8B)。定时器有四种工作模式,描述如下。 注意: GATE – 选通控制 1: 当GATEx引脚为高电平且TRx控制位为”1”时,Timer x 允许工作。 0: 当TRx置”1”时,Timer x允许工作 CT – 定时器/计数器选择位 1: 计数器模式,Timer x的时钟源来自Tx引脚 0: 定时器模式,使用内部时钟 M1, M0 – 模式选择位 TCON(0x88) 图5.2 Timer0,1配置寄存器 注意: TR0 - Timer0运行控制位 1: 使能 0: 禁止 TR1 - Timer 1运行控制位 1: 使能 0: 禁止 外部输入引脚GATE0和GATE1可通过编程设置,实现脉冲宽度测量的功能。 5.1.1 中断 与Timer0,1中断相关的位如下。通过IE寄存器可以产生一个中断,中断优先级可以通过IP寄存器进行配置。 IE(0xA8) 图5.2 Timer0,1配置寄存器 注意: TR0 - Timer0运行控制位 1: 使能 0: 禁止 TR1 - Timer 1运行控制位 1: 使能 0: 禁止 外部输入引脚GATE0和GATE1可通过编程设置,实现脉冲宽度测量的功能。 5.1.2 中断 与Timer0,1中断相关的位如下。通过IE寄存器可以产生一个中断,中断优先级可以通过IP寄存器进行配置。 IE(0xA8) 图5.3 中断允许寄存器 注意: EA – 总中断启动位 ET0 –Timer0中断启动位 ET1- Timer1中断启动位 IP(0xB8) 图5.4 中断优先级寄存器 注意: PT0 – 允许Timer0中断优先 PT1 – 允许Timer1中断优先 未使用的位读出为”0”或”1” TCON(0x88) 5.1.3 Timer0 – 模式0 Timer0寄存器为13位的寄存器(8位:计时器,5位:预分频器)。当计数器的值(所有有效位)从1翻转位0时,Timer0的中断标志位TF0置”1”。当TCON.4=1且TMOD.3=0或GATE0=1时,定时器开始计数。通过设置TMOD.3=1,外部计数输入GATE0可以控制定时器0,进行脉冲宽度的计量。13位寄存器由8位TH0和5位TL0组成。TL0的高3位忽略。如下图所示: 5.1.4 Timer0 – 模式1 模式1和模式0相同,只是定时器是16位,模式1如下图所示: 5.1.5 Timer0 – 模式2 模式2的定时寄存器是8位的TL0,带自动重装功能,如下图所示,当TL0溢出时,它将TF0置”1”,并将TH0的值装载到TL0。TH0在装载完成后保持不变。 5.1.6 Timer0 – 模式3 在这种模式下,TL0和TH0被分为两个独立的计数器。Timer0运行在模式3下的逻辑关系如下图所示。TL0使用定时器0的控制位:C/T、GATE、TR0、GATE0和TF0。TH0锁定为定时器功能,使用定时器1的TR1和TF1,并控制Timer1的中断。模式3用于需要特别的8位定时器/计数器的应用中。如果Timer0工作在模式3,通过切换位模式3,Timer1可开启或关闭,或作为串口通道的波特率发生器,或在某些应用中,不需要Timer1的中断。 5.1.7 Timer1 – 模式0 在这种模式下,Timer1寄存器为13位寄存器(8位:计时器,5位:计数器)。当所有的有效位从”1”翻转为”0”时,Timer1中断标志TF1置”1”。当TCON.6=1且TMOD.6=0或GATE1=1(设置TMOD.7=1,允许Timer1受外部输入信号GATE1的控制,该功能可用于脉冲宽度测量)时,开始对外部输入计数。13位寄存器由8位TH1和TL1的低5位组成。TL1的高3位未定义,可以忽略。详细过程如下图所示。 5.1.8 Timer1 - 模式1 模式1与模式0相同,只是定时器是全部16位。模式1如下图所示 图5.11 Timer/Counter1,模式1:16位定时器/计数器 5.1.9 Timer1 - 模式2 模式2配置为8位TL1定时器,带自动装载功能,如下图所示。只有TL1的溢出将置TF1标志位,但TH1的值将自动装载到TL1,装载后TH1的值保持不变。 5.1.10 Timer1 - 模式3 Timer1的模式3保持计数功能。其影响将与TR1=0的设置相同,因为它用于Timer0的模式3。详细内容请参考5.1.6’Timer0模式3’。 5.2 Timer2 5.2.1 综述 引脚的功能描述如下表所示。所有的引脚都是单向的,这些引脚没有三态输出和内部信号。 表5.4 Timer2引脚描述 W7100A的Timer2与标准8051的Timer2是完全兼容的。有5个特殊功能寄存器用于Timer2的操作控制,TH2/TL2(0xCD/0xCC)计数寄存器,RLDH/RLDL(0xCB/oxCA)捕获寄存器和T2CON(0xC8)控制寄存器。Timer2有3种工作模式,由T2CON的位进行选择,如下表所示。 注意: EXF2 – 当EXEN2=1时,表示T2EX输入有下降沿的信号。必须由软件清零。 RCLK – 接收时钟使能位 0: Timer1的溢出脉冲作为UART的接收器时钟 1: Timer2的溢出脉冲作为UART的接收器时钟 TCLK – 发送时钟使能位 0: Timer1的溢出脉冲作为UART的发送器时钟 1: Timer2的溢出脉冲作为UART的发送器时钟 EXEN2 – T2EX引脚功能允许位 0: 忽略T2EX事件 1: T2EX引脚的下降沿允许捕获或重装载 TR2 –启动/停止Timer2 0:停止 1:启动 CT2 – 定时器/计数器选择 0:内部时钟定时器 1:外部事件计数器,时钟源由T2引脚输入 CPRL2 – 捕获/重载选择 0:当Timer2溢出,或在EXEX2=1且T2EX引脚出现下降沿输入时,产生自动重载。当RCLK或TCLK置位,忽略该位,并在Timer2溢出时自动重载。 1: 当EXEN2=1时,T2EX引脚出现下降沿输入时激活捕获功能。 5.2.2 中断 Timer2的中断如下。中断可以由IE寄存器的对应位触发,由IP寄存器的对应位配置其优先级。 所有产生中断的位可以由软件设置或清除。与硬件产生的结果相同,也就是说中断可以由软件产生或清除。 感谢关注! 相关内容: 单片机以太网控制芯片W7100A数据手册(一) ( http://blog.iwiznet.cn/?p=4160 )