毕业设计论文-交通信号灯控制电路设计(单片机内容摘要:

记,如此一来 T1 不是标记、控制可用了吗。 是的,在一般情况下,只有在 T1 以工作方式 2 运行时,才让 T0 工作于方式 3。 工作方式 1:工作方式 1 是 16 位的定时 /计数器方式,将 TMOD 的 M1M0 设为“ 01”即可,其他特性与工作方式 0 相同。 定时 1S 十字路口交通灯模拟控制器定时器采用工作方式 1,先定时 125MS,然后在定时中断程序中累加中断次数, 8 次为一秒 ,这样就可以起到定时 1S 的功能。 工作方式由工作方式控制寄存器( TMOD)决定, FR 寄存器 TMOD 用于 2 个定时器 /计数器 T1/T0 的工作方式设定,各位的含义表示如下: GATE:门控位,定义 T1/T0 的启动方式, 8 C/T:定时 /计数功能选择位。 为“ 0”作定时器用;为“ 1”,作计数器用。 M1M0:工作方式选择位。 00 方式 0 13 位计数器 01 方式 1 16 位计数器 10 方式 2 初值自动重装 8 位计数器 11 方式 3 2 个 8 位计数器,仅适用于 T0 十字路口交通灯模拟控制器设计采用 6M 晶振,因此定时 125MS,可用下列语句实现。 工作方式 1 是 16 位计数结构的工作方式,计数器由 TH 全部 8 位和TL 全部 8 位构成。 所以初始化定时器 T0 工作方式 1,定时 125MS 的语句如下: MOV TMOD, 01 MOV TH0, 3CH MOV TL0, 0B0H 定时 1S 在定时器 0 中断程序中完成,即计数八次为 1S。 定时器中断初始化 程序如下 : SETB EA ;开中断 SETB ET ; 定时器 0 允许中断 SETB TR ;开始定时 定时器定时 1S 的中断流程图 如图 5: 9 外中断程序 对于外中断必须有中断的初始化程序、中断服务程序。 1) 要使用中断则首先必须中断中断允许。 2) 硬件的初始化:设置引脚连接设置 I/O 口的输入输出。 3) 软件的初始化:设置中断寄存器,设置中断服务地址,清除中断标志, 设置中断触发模式。 4) 使能中断。 外中断是由外部原因引起的中断,有两个中断源,即外中断 0 和外中断 1,中断请求信号由引脚 和 输入。 外中断请求信号弹有两种方式,一是电平方式,二是脉冲方式,可通过有关控制位的定义进行 规定。 电平方式为低电平有效,只需在单片机的( INT0)和( INT1)中断请示输入端采样到有效的低电平时,就会激活外部中断。 脉冲方式则在脉冲的后负跳沿有效,即在相邻两个机器周期对中断请求引入端电平 10 进行采样中,如前一次为高,后一次为低即为有效中断请求。 这就要求在这种中断方式,中断请求信号的脉冲宽度必须大于一个机器周期,以保证电平变化能被单片机采样到。 ( TCON) 外中断请求方式的控制位在定时控制寄存器 TCON 中的位( IT0)和( IT1)两个位,当 IT0( IT1) =0 为电平方式, IT0( IT1) =1 为脉冲方式。 同时此寄存器中的位 89( IE0)和( IE1)为外中断请求标志位,当 CPU 采样到 INT0( INT1)端出现有效中断请求时,此位由硬件 置 1。 在中断响应完成后转向中断服务时,再由硬件自动清除。 ( IE) 下面本文对有关控制位作说明: EA—— 中断允许总控制位。 EA=0,中断总禁止,禁止所有中断。 EA=1,中断总允许,总允许位打开后,各中断的允许或禁止由各中断允许控制位设置决定。 .EX0( EX1) —— 外部中断允许控制。 EX0( EX1) =0,禁止外部中断。 EX0( EX1)=1, 允许外部中断。 .EX0(ET1)—— 定时 /计数中断允许控制位。 ET0( ET1) 0,禁止定时 /计数中断。 ET0( ET1) =1,允许外部中断。 ET0( ET1) =1,允许定时 /计数中断。 .ES—— 串行中断允许控制位。 ES=0,禁止串行中断。 ES=1,允许串行中断。 11 中断的允许和禁止就是中断的开放和关闭,中断允许就是开放中断的禁止就是关闭中断。 从以上说明我们可看出, MCS51 的中断允许是通过两级控制的,以EA 位作为总中断控制位,以各中断挖掘位为分控制位。 当总中断位为禁止状态时,不管分控制位是允许或禁止,整个中断都是禁止的。 MCS51 单片机复位后,IE=00H,因此中断处于禁止状态。 值得一提的是:单片机中断响应后还会自动关闭中断,因此在转入中断服务程序后,应由软件指令禁止中断。 中断优先级控制寄存器( IP) MCS51 的中断优先级控制比较简单,只设置 了高、低两个级别的有限级,各中断源的优先级别先级别由优先寄存器( IP)进行控制。 .PX0—— 外中断 0( INT0)优先级控制位。 .PI0—— 定时中断 0 优先级控制位。 .PX1—— 外中断 1 优先级控制位。 .PT1—— 定时中断 1 优先级控制位。 .PS—— 串行中断优先级控制位。 控制位 =0,优先级为低。 控制位 =1,优先级为高。 中断优先级是为了中断嵌在服务的,控制原则为: 1) 低优先级中断不能打断高优先级的中断服务,而高优先级的中断服务可以打断低优先级的中断服务。 2) 同级的中断已经响应,其他中断将被禁止。 3) 如果同级的 多个中断源同时出现, CPU 将按查询次序确定哪个中断被响应,次序为:外中断 0定时中断 0外中断 1定时中断 1串行中断。 本例设计要采用定时器中断,外中断 0,外中断 1。 定时器中断、外中断、 12 串口中断控制如下,其中外中断 0、 1 优先级最高,保证了应急通行的需求。 MOV SCON, 00H ; 工作于工作方式 0,既移位寄存器状态 SETB ES ;开总中断 SETB ET0 ;开定时器中断 SETB TR0 ;启动 T0 定时器 SETB IT0 ;外中 断 0 为脉冲触发方式 SETB IT1 ;外中断 0 为脉冲触发方式 MOV IP, 05 ;外中断 0, 1 为高优先级 SETB EX0 ;开个中断 0 SETB EX1 ;开外中断 1 外中断程序逻辑流程 如图 6: .串口工作方式设计 13 串口有 4 种方式:方式 0、 3,由串口控制寄存器 SCON 和 PCON 控制。 0 0 方式 0 同步移位寄存器 0 1 方式 1 10 位异步收发 1 0 方式 2 11 位异步收发 1 1 方式 3 11 位异步收发 1) 方式 1: 10 位异步收发 方式 1 下,串行口位 10 位通用异步接口。 发送或接收数据信息为 10 位,包括 1 位起始位“ 0”、 8 位数据、 1 位停止“ 1”。 方式 1 发送:数据从 TXD 端口输出,当数据写入发送缓冲器 SBUF 时,启动发送器发送。 发送完数据后,置中断标志 T1=1,申请中断,通知 CPU 可以发送下一个数据。 方式 1 接收:首先使 REN=1,串行口从 RXD 接收数据,当采样到 1 至 0 跳变时,确认是起始位“ 0”,就开始接收数据,当接收完数据时,置中断标志 RI=1,申请中断,通知 CPU 从 SBUF 取走接收到的数据。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。