51单片机控制交通灯设计(4)

2019-04-09 16:13

3 4 5 6 7 8 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 4FH 66H 6DH 7DH 07H 7FH 表 3 驱动代码表 5.4.5 8255与8051的连接

用8051的P0 口的 p0.7 连接8255的片选信号cs 我们用8031的地址采用全译码方式,当p0.7 =0 时片选有效, 其他无效, p0.1 p0.1 用于选择8255端口 P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0 A7 A6 A5 A4 A3 A2 A1 A0

1 X X X X X 0 0 00H为8255 的PA口 1 X X X X X 0 1 01H 为8255的PB口 1 X X X X X 1 0 02H 为8255的PC口 1 X X X X X 1 1 03H 为8255的控制口 由于8051是分时对8255和储存器进行访问所以8051的P0口不会发生冲突

5.5 程序设计 5.5.1流程图如图所示

图8

16

开始 初始化 等待键盘事件 键盘事件处理 显示程序处理 5.5.2 程序源代码

ORG 0000H LJMP MAIN ORG 0003H 图9 程序流程图 ;主程序的入口地址 ;跳转到主程序的开始处

;外部中断0的中断程序入口地址 17

ORG 000BH ;定时器0的中断程序入口地址 LJMP T0_INT ;跳转到中断服务程序处

ORG 0013H ;外部中断1的中断程序入口地址 MAIN : MOV SP,#50H

MOV IE,#8EH ;CPU开中断,允许T0中断,T1中断和外部中断1中断 MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1 MOV TH1,#00H ;T1计数器清零 MOV TL1,#00H

SETB TR1 ;启动T1计时器 SETB EX1 ;允许INT1中断 SETB IT1 ;选择边沿触发方式 MOV DPTR ,#0003H

MOV A, #80H ;给8255赋初值,8255工作于方式0 MOVX @DPTR, A

AGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转

MOV A,P1

JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间

MOV R0,#00H ;R0清零

MOV R0,A ;存入东西方向绿灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN RED: MOV A,P1

ANL A,#7FH ;P1.7置0 MOV R7,#00H ;R7清零

MOV R7,A ;存入东西方向红灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN

;-------------------------------------------

N0: SETB TR0 ;启动T0计时器

18

MOV 76H,R7 ;红灯时间存入76H

N00: MOV A,76H ;东西方向禁止,南北方向通行 MOV R3,A

MOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮 MOV A,#0DDH MOVX @DPTR, A N01: JB P2.0,B0 N02: SETB P3.0

CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执行 ;------黄灯闪烁5秒程序------ N1: SETB P3.0 MOV R3,#05H

MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0D4H MOVX @DPTR,A N11: MOV R4,#00H

N12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒

N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0DDH MOVX @DPTR,A N14: MOV R4,#00H

CJNE R4,#7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N1 ;闪烁时间达5秒则退出 ;------------------------------------------------------------ N2: MOV R7,#00H

MOV A,R0 ;东西通行,南北禁止 MOV R3,A

MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮 MOV A,#0EBH MOVX @DPTR,A N21: JB P2.0,T03

N22: CJNE R3,#00H,N21 ;------黄灯闪烁5秒程序------ N3: MOV R3,#05H

19

MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0E2H MOVX @DPTR,A N31: MOV R4,#00H

CJNE R4,#7DH,$ ;黄灯持续亮0.5秒

N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0EBH MOVX @DPTR,A N33: MOV R4,#00H

CJNE R4,#7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N3 ;闪烁时间达5秒则退出 SJMP N00 ;------闯红灯报警程序------

B0: MOV R2,#03H ;报警持续时间3秒 B01: MOV A,R3

JZ N1 ;若倒计时完毕,不再报警 CLR P3.0 ;报警

CJNE R2,#00H,B01 ;判断3秒是否结束 SJMP N02 ;------1秒延时子程序------- N7: RETI

T0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值 MOV TH0,#0F1H INC R4 INC R5

CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序 MOV R5,#00H ;R5清零 DEC R3 ;倒计时初值减一 DEC R2 ;报警初值减一 T01: ACALL DISP ;调用显示子程序 RETI ;中断返回 ;------显示子程序------ DISP: JNB P2.4,T02 DISP1: MOV B,#0AH

MOV A,R3 ;R3中值二转十显示转换

20


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

下一篇:中小企业财务管理目标论文:中小企业财务管理目标

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

马上注册会员

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