您好,欢迎来到年旅网。
搜索
您的当前位置:首页推荐-单片机的交通信号灯控制系统程序 精品

推荐-单片机的交通信号灯控制系统程序 精品

来源:年旅网
基于单片机的交通信号灯控制系统设计

附:

交通灯主程序:

ORG 000H ;主程序的入口地址

LJMP MAIN ;跳转到主程序的开始处

ORG 0003H ;外部中断0的中断程序入口地址

ORG 000BH ;定时器0的中断程序入口地址

LJMP T0_INT ;跳转到中断服务程序处

ORG 0013H ;外部中断的中断程序入口地址

MAIN:MOV SP,#50H

MOV IE,#8EH ;CPU开中断,允许T0中断,T1中断和外部中断1中断

MOVTMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1

MOV TH1,#00H ;T1计数器清零

MOV TL1,#00H

SETB TR1 ;启动T1计数器

SETB EX1 ;允许INT1中断

SETB 1T1 ;选择边沿触发方式

MOV DPTR,#003H

MOVA,#80H ;给8255赋初值,8255工作于方式0

MOVX@DPTR,A

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

MOVA,P1

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

MOV RO,#00H ;R0清零

MOV RO,A ;存入东西方向绿灯初始时间

MOV R3,A

LCALL DISP1

LCALL DELAY

AJMP AGAIN

RED: MOV A,P1

ANLA,#7FH ;P1.7置0

MOV R7,#00H;R7清零

MOV R7,A ;存入东西方向红灯初始时间

MOV R3,A

LCALL DISPI

LCALL DELAY

AJMP AGAIN

N0: SETB TR0 ;启动T0计时器

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

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

MOV R3,A

MOV DPTR,#0000H ;置8255口,东西方向红灯亮,南北方向绿灯亮

MOV A,#0DDH

MOVX@DPTR,A

N01:JBP2.0,B0

N02:SETB P3.0

CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执

N2:MOV R7,#00H

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

MOV R.,A

MOV DPTR,#0000H ;置8255A口,东西方向绿灯亮,南北方向红灯亮

MOV A,#0EBH

MOVX@DPTR,A

N21:JBP2.0,T03

N22:CJNE R3,#00H,N21

东西方向车流量检测程序:

T03:MOV A,R3

SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量

JZ N3

JB P2.0,T03

INC R7

CJNE R7,#H,E1

MOV R7,#00H ;中断到100次则清零

E1: SJMP N22

东西方向车流量显示程序:

T02:MOV B,#0AH

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

DIV AB

MOV 79H,A

MOV 74H,B

DIS3:MOV A,79H ;显示十位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX@DPTR,A

MOV DPTR,#0001H

MOV A,#0F7H

MOVX@DPTR,A

LCALL DELAY

DS4:MOV,74H :显示个位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX@DPTR,A

MOV DPTR,#0001H

MOV A,#0FBH

MOVX@DPTR,A

LJMP N7

字符表:

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

程序代码:

R4 存放黄灯时间 3 03H (此时间可以动态设定)

R5 存放红灯时间 60 3CH

R6 存放绿灯时间 80 50H

PC0 显示黄灯信号

PC1 显示红灯信号

PC2 显示黄灯信号

8255 工作与方式0

8255PA,PB,PC 口输出PC 控制字为10000000B(80H)

程序代码:

ORG 000H

LJMP MAIN

ORG 0100H

MAIN: MOV R1,#03H 初始化8255

MOV A,#80H

MOVX@R1,A

AGAIN: MOVP3,#80H 设置初值

MOV A,P3

JB ACC.7,NEXT0

AGAIN: MOV P3,#80H MOV A,P3

JB ACC.7,NEXT0

AGAINI: MOV P3,#40H

MOV A,P3

JB ACC.6,RED

MOV P3,#0FH

MOV A,P3

ANLA,#0FH

MOV R3,A

设置初值

AJMP AGAINI

RED: MOV P3,#0FH

MOV A,P3

ANLA,#0FH

MOV R2,A

AJMP AGAIN

NEXT0: MOV DPTR,#TAB 显示黄灯个位

MOV A,R1

MOVC A,@A+DPTR

MOV R1,#00H

MOVX @R1,A

MOV R1,#0

MOV DPTR,#TAB 显示黄灯十位

MOV A,R0

MOVC A,@A+DPTR

MOV R1,#01H

MOVX@R,A

MOV DPTR,#0C62H

MOV A,#00H

LCALL 0F4E0H

ACALLDELAY 延时1秒

MOV A,R3

MOV R0,A

NEXT2: MOV DPTR,#TAB 显示红灯个位

MOV A,R0

MOVC A,@A+DPTR

MOV R1,#00H

MOVX@R,A

MOV DPTE,#TAB 显示红灯十位

MOV A,R0

MOVC A,@A+DPTR

MOVR1,#01H

MOV A,R0

MOVX@R1,R0

MOV R1,#02H 显示红灯信号

MOV A,#02H

MOVX @R1,A

ACALLDELAY 延时1秒

DJNZ R0,NEXT2

MOV A,R2

MOV R0,A

NEXT3: MOV DPTR,#TAB 显示绿灯十位

MOV A,R0

MOVC A,@A+DPTR

MOV R1,#01H

MOV A,R0

MOVX@R1,R0

MOV R1#02H 显示绿灯信号

MOV A,#02H

MOVX @R1,A

ACALL DELAY DJNZ R0,NEXT3

AJMP NEXT0

DELAY: MOV R4,#08H DE2: LCALL DELAY1

DJNZ R4,DE2

RET

DELAY1:MOV R6,#0

MOV R5,#0

DE1: DJNZ R5,$

延时1秒

延时1秒子程序

DJNZ R6,DE1

RET

TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

END

电源电路

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务