您的当前位置:首页单片机课程设计-交通灯控制系统

单片机课程设计-交通灯控制系统

2021-07-13 来源:乌哈旅游


交通灯控制系统

当今 ,社会上的汽车越来越多,并且交通事故愈演愈烈,

为了要减少此类的事情的发生,必须加强道路的管理。因此、合理设计交通灯控制系统可以大大减少此类事情发生。 一、 系统功能要求:

1.设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。时间 方向 控制要求白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯夜晚 东西 黄灯 南北 黄灯

2.总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。 二、 总体设计方案提示:

1.假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态。

2.东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态。 3.南北绿灯通车,东西红灯。过一段时间转状态。

4.南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。 三.硬件设计 电路原理图如下:

D3R333R733022R833011R9330D7D126P23P22P21P20vccGND绿D2330R2绿D8绿D11330R11黄D1330R1黄D9黄D10330R10红VCC330红红33040R161KR171KVCCU2P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWR8051RXDTXDALE/PPSEN10113029P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P273938373635343332212223242526272810111213141516J2123456789VCCINT0INT1S2S3123456VCC1234567820INT1INT0C213121514P20P21P22P2330pvccY16MhzC33119189GNDS11030p1716C4VCC22uFR14200R131K20R151KU410111413221214132312U710111011U8BACOMFG14132412141321121615161516158LED8LED8LED8LEDU510111413231214132412U610111011U9BACOMFG1413211214132212U10DPCCOMDE109876109876DPCCOMDE8LEDBACOMFG543211011161516151615161554321BACOMFG8LEDDPCCOMDE109876109876DPCCOMDE8LED5432154321BACOMFG8LED161554321BACOMFGDPCCOMDE109876109876DPCCOMDE5432154321BACOMFGDPCCOMDE109876109876DPCCOMDEBACOMFG543211011四、软件设计1、 流程图

54654R12R4330R5330R6330D4绿D5黄D6红VCCU124681A11A21A31A42A12A22A32A41G2G74LS2441Y11Y21Y31Y42Y12Y22Y32Y41816141297532423111315171192221J12INT11VCCC1D13103LEDU3

开始 确保P0为0 设定定时时间和方式 绿灯25s倒计时红灯30s倒计时 计完30s后南北红灯亮东西绿灯亮 判断东西南北倒计完25s后南北绿灯亮东西红灯亮 1s延时后东西南北黄灯闪烁1s 计完30s后东西红灯亮南北绿灯亮 判断东西南北倒计完 计完25s后东西绿灯亮南北红灯亮 1s延时后东西南北黄灯闪烁1s 结束

2、程序设计

ORG 0000H

MOV P0,#00H ;确保P0为低电位 lJMP MAIN0 ORG 0030H MAIN0:MOV 30H,#08H MOV R6,#00H MOV R7,#00H

MOV DPTR,#TABLE ; MOV TMOD,#01H ; MOV TL0,#0CDH MOV TH0,#0BH SETB TR0 MOV IE,#00H

MAIN:MOV P1,#0F3H ; MOV R6,#1EH ; MOV R7,#19H ; MAIN1:CALL DELAY ;1S JB P0.1,REL1 ; CJNE R7,#00H,MAIN1 ; MOV P1,#0F5H ; MAIN2:CALL DELAY

MOV R7,#00H ;0s

CPL P1.1 ; CJNE R6,#00H,MAIN2 ; MOV P1,#0DEH ; MOV R7,#1EH MOV R6,#19H MAIN3:CALL DELAY JB P0.0,REL2

CJNE R6,#00H,MAIN3 MOV P1,#0EEH MAIN4:CALL DELAY MOV R6,#00H CPL P1.4

CJNE R7,#00H,MAIN4 JMP MAIN

取数码管的译码 设计定时方式及时间 南北绿灯,东西红灯 红灯30s倒计时 绿灯25s倒计时 延时子程序

判断是否有东西方向按钮按下 判断绿灯25s是否倒计完 南北黄灯,东西红灯 红灯继续倒计时,黄灯闪烁,保持黄灯闪烁

判断红灯是否倒计时完 南北红灯,东西绿灯

REL1:MOV P1,#0F5H ;东西方向按钮按下,南北方向强制由绿灯变成黄灯警告 MOV R6,#05H

MOV R7,#00H JMP MAIN2

REL2:MOV P1,#0EEH ;南北方向按钮按下,东西方向强制由绿灯变成黄灯警告 MOV R7,#05H MOV R6,#00H JMP MAIN4 ;1s延时子程序

DELAY:MOV A,R6 ;调整

MOV B,#0AH DIV AB

MOVC A,@A+DPTR ; MOV P2,#01H

MOV P3,A ; MOV R4,#4 ; LOOP2:MOV R3,#125 LOOP3:DJNZ R3,LOOP3 DJNZ R4,LOOP2 MOV A,B

MOVC A,@A+DPTR

MOV P2,#02H ; MOV P3,A MOV R4,#4 LOOP4:MOV R3,#125 LOOP5:DJNZ R3,LOOP5 DJNZ R4,LOOP4

MOV A,R7 ;调整

MOV B,#0AH DIV AB

MOVC A,@A+DPTR MOV P2,#04H MOV P3,A MOV R4,#4 LOOP6:MOV R3,#125

进行南北方向倒计时时间的十进制找寻相应的数码管代码 输出个位

降低动态显示频率 输出十位 进行东西方向倒计时时间的十进制

LOOP7:DJNZ R3,LOOP7 DJNZ R4,LOOP6 MOV A,B

MOVC A,@A+DPTR MOV P2,#08H MOV P3,A MOV R4,#4 LOOP8:MOV R3,#125 LOOP9:DJNZ R3,LOOP9 DJNZ R4,LOOP8

JBC TF0,LOOP ;判断是否计满125ms AJMP DELAY

LOOP:MOV TL0,#0CDH ;计满125ms重新给定时器赋值 MOV TH0,#0BH MOV A,30H DEC A

MOV 30H,A

JNZ DELAY ;判断是否计满8次125ms,即1s DEC R6 ;计满1s,东西倒计时减1,南北倒计时减1

DEC R7

MOV 30H,#08H ;重新1s次数,重新计时 RET

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;相应数值的数码管代码 DB 92H,82H,0F8H,80H,90H END

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