单片机控制交通灯(5)

2019-04-05 14:49

中北大学2010届毕业设计说明书

开始 初始化 A绿灯 B红灯 延时55s 绿灯闪3次 延时2s A红灯 B绿灯 延时25s B绿灯闪烁3次 B黄灯 A红灯 延时2s 图3.10 主程序框图 4.3.2 主程序设计

ORG 0000H;

LJMP MAIN ;转向主程序 ORG 0003H

LJMP INTTO ;转向紧急车辆终端中断服务程序

第 21 页 共 36 页

中北大学2010届毕业设计说明书

ORG 0013H

主程序为:

MAIN:MOV SP,#30H ;设定堆栈指针

SETB PX0 ;置外部中断0为高优先级中断 MOV TCON,#00H ;置外部中断0,1为电平触发 MOV TMOD,#10H MOV IE,#85H LOOP:MOV P1,#0F3H MOV R1,#110 DIP1:ACALL DELAY DJNZ R1,DIP1 MOV R1,#06 WAN1:CPL P1.2 ACALL DELAY

DJNZ R1,WAN1 MOV P1,#0F5H MOV R1,#04H YL1:ACALL DELAY

DJNZ R1,YL1 MOV P1,#0DEH MOV R1,#32H DIP2:ACALL DELAY

DJNZ R1,DIP2 MOV P1,#06H

WAN2:CPL P1.5 ACALL DELAY DJNZ R1,WAN2

MOV P1,#02EH MOV R1,#04H

;置定时器1为方式1

CPU中断,开外中断0,1中断 ;A道绿灯放行,B道红灯禁止 ;置0.5s循环次数(0.5X110=55s)

;调用0.5s延时子程序

;55s不到继续循环 ;置A绿灯闪烁循环次数

;A绿灯闪烁

;闪烁次数未到继续循环 ;A黄灯警告,B红灯禁止 ;置0.5s循环次数(1.5X4=2s)

;2s未到继续循环 ;A红灯,B绿灯

;置0.5s循环次数(0.5X50=25s)

;25s未到继续循环 ;B绿灯闪烁

;A红灯,B黄灯 第 22 页 共 36 页

;开中北大学2010届毕业设计说明书

YL2:ACALL DELAY

DJNZ R1,YL2

AJMP LOOP ;循环执行主程序

DELAY:MOV R3,#0AH ;0.5s子程序(50msX10=0.5s)

MOV TH1,#3CH ;置50ms初值x=3CB0H MOV TL1,#0B0H

SETB TR1 ;启动T1 LP1:JBC TF1,LP2 ;查寻计数溢出

SJMP LP1

LP2:MOV TH1,#3CH ;置50ms初值x=3CB0H

MOV TL1,#0B0H DJNZ R3,LP1 RET

4.3.3 中断程序框图

中断子程序的主要任务是:当有紧急车辆通过时,中断服务程序也需要保护现场,调用延时子程序和P1口,但是不需要关中断,因为其为高优先级中断,然后执行相应的中断服务,每0.5mS定时器中断发生,程序跳转到中断服务程序INTT0开始执行。中断服务程序一次将定时器中断计数变量减1,当定时器中断中数值变量为0时,0.5S定时时间到,将位变量SECOND_FLAG置1。定时器中断服务通过RETI指令返回,程序将跳转到中断前断点继续执行。待交通信号出现后延时20s,确保紧急车辆通过交叉路口,然后恢复现场,返回继续执行主程序[25]。

第 23 页 共 36 页

中北大学2010届毕业设计说明书

中断响应 保护现场 CPU检测是否为低电平 A红灯,B红灯 恢复现场 返回 图4.2 中断程序框图 4.3.4 中断子程序设计

INTT0:PUSH P1 ;P1口数据压栈保护

PUSH TH1 ;TH1压栈保护 PUSH TL1 ;TL1压栈保护 MOV P1,#0F6H ;A,B道均为红灯

MOV R2,#40 ;置0.5s循环初值(20s)DEY0:ACALL DELAY

DJNZ R2,DEY0 ;20s未到继续循环 POP TL1 ;弹栈恢复现场 POP TH1 POP P1

RETI ;返回主程序

第 24 页 共 36 页

中北大学2010届毕业设计说明书

4.3.5 中断绍及使用

所谓中断,是指在计算机执行程序过程中,当出现某种情况,如发生紧急事件或其他情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前后程序的执行,而转去执行相应的处理程序,待处理程序完成之后,再返回来继续执行原来被中断的程序。外部中断有两个:INT0和INT1,分电平触发和边沿触发两种形式,由特殊功能计数器TCON中的IT0、IT1控制。TCON既与中断控制有关,又与定时器控制有关。

特殊功能寄存器TCON的地址为88H,可位寻址,每一位有相应的位地址,其格式如表4.1示:

表4.1 TCON位置位格式

TCON(88H) D7 D6 D5 D4 D3 D2 D1 D0 位地址 功能 8FH TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0

当IT0=0(IT1=1)时,INT0(INT1)为低电平触发方式。CPU在每个机器周期对

INT0(INT1)采样,一旦在P3.2引脚上检测到低电平时,则认为有中断请求,使IE0

(IE1)置“1”,向CPU申请中断。本设计采用的是外部中断0,即INT0. 4.3.6定时器/计数器的介绍

单片机的定时器/计数器模块是由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。定时器0和定时器1实际上是两个16位的加法计数器,分别由两个8位的特殊功能寄存器组成。定时器/计数器T0的输入脉冲周期与机器周期一样,为振荡频率的1/12,本设计的时钟频率为12MHZ,现要采用中断方法去实现0.5S延时,要在定时器0中设置一个时间常数,使其每隔0.5S产生一次中断,CPU响应中断后将R0中计数值减一,令R0=0AH,即实现0.5S延时。

若将T0的工作方式设定为工作方式1,则T0的初值为3CB0H,即利用MOV TH0,#3CH和MOV TL0,#0B0H指令赋初值。

第 25 页 共 36 页


单片机控制交通灯(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北师大二附中特级教师二轮精讲2014届中考化学二轮复习经典精讲+

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: