方波信号发生器设计论文 联系客服

发布时间 : 星期日 文章方波信号发生器设计论文更新完毕开始阅读eed0381e650e52ea55189894

表4. 定时器4种工作方式

M1 0 0 1 1 M0 0 1 0 1 --

方式 0 1 2 3 说明 13位定时器(TH的8位和TL的低5位) 16位定时器/计数器 自动重装入初值得8位计数器 T0分成两个独立的8位计数器,T1在方式3时停止工作 --

当C/T=1时,为计数方式;C/T=0时,为定时器方式。

当GATE=1时,只有外部中断引脚为高电平且TR0(或TR1)置1时,相应的定时器/计数器才能被选通工作,这时可用于测量INTX端出现的正脉冲的宽度。当GATE=0时,只要TR0(或TR1)置1,定时器/计数器就被选通,而不管外部中断引脚电平是高还是低。

定时器/计数器控制寄存器TCON用于控制定时器的操作及对定时器中断的控制。其各位定义如下表所示:

表5. TCON各位定义

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 各引脚作用如下表所示:

表6. TCON各位作用

符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 名称及定义 内部定时器1溢出标志。当定时器/计数器溢出时,由硬件置位,申请中断,进入中断服务后被硬件自动清除。 内部定时器1运行控制位。靠软件置位或清除,置位时,定时器/计数器接通工作,清除时停止工作。 内部定时器0溢出标志。其作用类似于TF1 内部定时期0运行控制位。其作用类似于TR1 外部中断1请求标志。检测到外部中断引脚上出现的外部中断信号有效时,由硬件置位,请求中断。进入中断服务后被硬件自动清除。 外部中断1类型控制位。靠软件来设置或清除,以控制外部中断的触发类型。高电平时,下降沿触发;低电平时,低电平触发。 外部中断0请求标志。其作用类似于IE1。 外部中断0类型控制位。起作用类似于IT1。 3、定时器0和1的操作 定时器0和 1定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择。这两个定时/计数器4 种操作模式,通过TMOD的M1和M0进行选择。两个定时/计数器的模式0,1和2都相同,模式3不同。如下所述:

模式 0

将定时器设置成模式0时类似8048定时器,即 8位计数器带32分频的预分频器。

此模式下,定时器寄存器配置为13位寄存器。当计数从全为 1 翻转为全为 0 时,定时器中断标志位 TFn 置位。当 TRn=1 同时 GATE=0 或 INTn=1 时定时器计数。置位GATE时允许由外部输入INTn控制定时器,这样可实现脉宽测量。 该13位寄存器包含THn全部8个位及TLn的低5位。TLn的高3位不定,可将其忽略,置位运行标志 TRn 不能清零此寄存器。

模式0的操作对于定时器 0 及定时器 1 都是相同的,两个不同的GATE位 TMOD.7和 TMOD.3分别分配给定时器 0 及定时器 1。

模式 1

模式 1 除了使用了THn及TLn全部 16 位外,其它与模式0相同。 模式 2

此模式下定时器寄存器作为可自动重装的8位计数器 TLn。TLn 的溢出不仅置位TFn,而且将THn内容重新装入 TLn,THn 内容由软件预置重装时,THn 内容不变。模式2的操作对于定时器0及定时器1是相同的。

模式 3

在模式3中,定时器1停止计数,效果与将TR1设置为0相同。

此模式下定时器0的TL0及TH0作为两个独立的8位计数器。TL0占用定时器0的控制位C/T,GATE,TR0,INT0及TF。TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1。此时TH0控制定时器1中断。

模式 3 可用于需要一个额外的8位定时器的场合。定时器0工作于模式3时,89C51 看似有 3 个定时器/计数器, 定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。

4、中断

89C51共有5个中断源。外部中断INT0和INT1可根据寄存器TCON中的IT0 和IT1位状态分别设置为电平或者边沿触发。实际产生的中断标志是TCON中的位IE0和IE1。当产生外部中断时,如果是边沿触发,进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发,由外部请求源而不是由片内硬件控制请求标志。

定时器0和定时器1中断由TF0和TF1(分别由各自的定时/计数寄存器控制, 定时器0工作在模式3时除外)产生。当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位。

所以这些产生中断的位都可通过软件置位或清零。与通过硬件置位或清零的效果相同。简而言之,中断可由软件产生,推迟或取消。

当中断服务程序执行到RETI指令时,通知处理器中断程序已执行完毕,然后从堆栈弹出两个字节重新装入PC,继续执行被中断的程序。

注意:RET指令也可以返回被中断的程序,但这样会使中断系统认为中断仍在执行,那么后面的中断就无法响应.

5、中断优先级结构

每个中断源都可通过编程中断优先级寄存器IP单独设置优先级。一个中断服务程序可响应更高级的中断,但不能响应同优先级或低级中断。最高级中断服务程序不响应其它任何中断。如果两个不同中断优先级的中断源同时申请中断时,响应较高优先级的中断申请。下面就简单介绍一下IP寄存器。

IP寄存器定义如下图所示:

表7. IP寄存器定义

* * * PS PT1 PX1 PT0 PX0 各位的作用如下表所示:

表8. IP寄存器各位作用

符号 PS PT1 PX1 PT0 PX0 名称及定义 串行口中断优先级设定位。高电平时,串行口为高优先级,相反为低优先级。 内部定时器1中断优先级设定位。高电平时,T1为高优先级,相反为低优先级。 外部中断1优先级设定位。高电平时,外部中断1为高优先级,相反为低优先级。 内部定时器0中断优先级设定位。高电平时,T0为高优先级,相反为低优先级。 外部中断0优先级设定位。高电平时,外部中断0为高优先级,相反为低优先级。 IP寄存器中包含了一些无效位,由于这些位可能用于其它89C51系列产品中,用户软件不应将这些位写入1。

89C51共有5个中断源,为了使每个中断源都能被独立的允许或禁止,以使用户灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器。只有该触发器无效,它所对应的中断请求信号才能进入CPU,即此类型中断开放。同时,CPU内还设置了一个中断允许触发器,它控制CPU能否相应中断。

中断屏蔽触发器和中断允许触发器由中断允许寄存器IE控制,其各位定义如下表所示:

表9. IE寄存器各位定义

EA * * ES ET1 EX1 ET0 EX0 各位的作如下表所示:

表10. IE寄存器各位作用

符号 EA ES ET1 EX1 名称及定义 中断总允许位。低电平时,禁止一切中断;高电平时,每个中断源是否允许由各自的允许位确定。 串行口中断允许位。低电平禁止,高电平允许。 内部定时器1中断允许位。低电平禁止,高电平允许。 外部中断1允许位。低电平禁止,高电平允许。