分享好友 天南地北首页 网站导航

数字电路设计-交通灯控制器

网友发布 2023-05-20 08:51 · 头闻号仪器机械

我们看到,这是显示的要求是40进制,4进制,20进制。且轮换进行。

很容易想到的就是使用16进制计数器。

设计方法是:

第一个40进制选取两个16进制计数器,第一个计数器的进位输出接入第二个计数器的ENT端,然后再在第二个计数器的输出端接入3-8译码器,我们知道1对应的二进制是00001,40对应二进制是101000。于是在3-8译码器输入端接入前三位,将3-8译码器的第5个输出端接到第一个计数器的LOAD端,然后第一个计数器置数端输入是0001。然后我们就可以发现这两个计数器构成了由1~40的二进制计数器。

同理我们对黄灯用一个16进制计数器设计成1~4的二进制计数器。

同理对南北绿灯用两个16进制计数器设计成1~20的二进制计数器。

然后我们理下思路,要产生你提出的效果,我们接下来要将这些计数器形成循环显示。

具体就是:

1~40二进制计数器(即东西绿灯)当到达40时,进位信号触发后一个1~4二进制计数器(即黄灯),同时这个信号阻断1~40二进制计数器继续计数。

之后,当1~4二进制计数器达到4时,进位信号触发1~20二进制计数器(即南北绿灯),同时这个信号阻断1~4二进制计数器继续计数。

之后同理,1~20到达20后,触发后一个1~4,1~4到达4后,再触发1~40。

于是我们很清晰的看到了这样一个循环,当东西绿灯40秒到后自动停止转到黄灯,到达4秒后自动停止转到南北绿灯。20秒后自动停止转到黄灯。4秒后自动停止并转到东西绿灯然后一直这么循环,完成所要效果。

好,那我们接下来要做的就是怎么联系前后两个计数器。在此仅列举1~40如何转到1~4,之后的1~4转到1~20转到1~4再转到1~40都是一个道理,不再赘述。

如前所述,第一个1~40计数器最终是在3-8译码器的5号输出端返回到第一级的LOAD形成重新的置1从而达到1~40计数的要求的。那么我们如果将这个端口5输出的信号同时接入第一级的ENP端口,那么就行成了一旦达到40,1~40置位回到1,并且由于ENP端口出现0信号,使得整个1~40计数器达到40时重新置1并停止计数。

然后5输出的信号取非后可以用于触发后一级的ENT,触发后一级1~4计数器。然后一样的做法,当1~4达到4时,阻断自己继续计数并将信号触发再后一级的1~20计数器一次类推就达到了你要的结果。

至于显示可以用7段显示器,这个较为简单,列个表画一个卡诺圈就出来了。

希望能解决您的问题。

救命啊!!!求简易交通灯控制逻辑电路设计,跪求!!!

;交通灯模拟实验程序

GEWEI EQU 21H ;个位数据

SHIWEI EQU 23H ;十位数据

SCANLED EQU 25H

SCANMODE EQU 26H

RED EQU 28H ;定义灯的缓冲区

GREEN EQU 29H

YELLOW EQU 32H

NUMTIM EQU 33H

LED EQU 34H

ORG 000H

JMP START

ORG 0BH

JMP TIMER0 ;定时器0中断入口

ORG 100H

START:MOV SP,#50H

MOV R0,#20H

MOV R5,#20

CLR0:MOV @R0,#00H

INC R0

DJNZ R5,CLR0

MOV TMOD,#01H ;设置定时器

MOV TH0,#HIGH(65536-5000)

MOV TL0,#LOW(65536-5000)

SETB TR0

MOV IE,#10000010B ;端口初始化

MOV P0,#0FFH

MOV P1,#0FFH

MOV P2,#00H

MOV P3,#0FFH

MOV R3,#10

MOV R2,#3

MOV R1,#10

MOV R7,#200

MOV RED,#10

MOV YELLOW,#3

MOV GREEN,#10

MOV NUMTIM,#10

MOV LED,#0FFH

AJMP $

;============================================================= TIMER0:PUSH ACC ;定时器部分,负责交通灯的及时和数码管动态扫描

PUSH PSW

MOV TH0,#HIGH(65536-5000) ;重新赋初值

MOV TL0,#LOW(65536-5000)

DJNZ R7,RET0

MOV R7,#200

MOV A,SCANMODE ;调用扫描

MOV B,#4

DIV AB

MOV A,B

RL A

MOV DPTR,#TAB_SCAN

JMP @A+DPTR

TAB_SCAN: AJMP RED_LIGHT

AJMP YEL_LIGHT

AJMP GRE_LIGHT

AJMP YEL_LIGHT

RET0: MOV A,NUMTIM

LCALL BIN_BCD

MOV SHIWEI,A

MOV GEWEI,B

INC SCANLED

MOV A,SCANLED

MOV B,#4

DIV AB

MOV A,B

RL A

MOV DPTR,#TAB_SCAN0

JMP @A+DPTR

TAB_SCAN0:AJMP SCAN_L1

AJMP SCAN_L2

SCAN_L1: MOV P2,#0

MOV A,SHIWEI

JMP END_SCAN

SCAN_L2: MOV P2,#1

MOV A,GEWEI

JMP END_SCAN

END_SCAN:MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,LED

MOV P1,A

POP PSW

POP ACC

RETIRED_LIGHT:MOV LED,#11111100B

MOV NUMTIM,RED

DEC RED

MOV A,RED

CJNE A,#0FFH,RET0

MOV RED,#10

MOV A,SCANMODE

ADD A,#01H

MOV SCANMODE,A

JMP RET0

YEL_LIGHT:MOV LED,#11110011B

MOV NUMTIM,YELLOW

DEC YELLOW

MOV A,YELLOW

CJNE A,#0FFH,RET0

MOV YELLOW,#3

MOV A,SCANMODE

ADD A,#01H

MOV SCANMODE,A

JMP RET0

GRE_LIGHT:MOV LED,#11001111B

MOV NUMTIM,GREEN

DEC GREEN

MOV A,GREEN

CJNE A,#0FFH,RET1

MOV GREEN,#10

MOV A,SCANMODE

ADD A,#01H

MOV SCANMODE,A

RET1:JMP RET0 BIN_BCD:MOV B,#10

DIV AB

RET DELAY: MOV R5,#02

D1: MOV R6,#200

D2: MOV R7,#200

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH;共阴字码表

DB 07H,7FH,6FH,77H,7CH,39H,5EH

DB 79H,71H,76H,73H,3EH,00HEND

你肯定是考试用的。不能帮你作弊。,给你个参考的~~

灯y0红、橙、黄、绿、青、蓝、紫y1~y7

ld m8000 y0(主题灯亮)

ld m8002

or m0

orp t6

ani t0

out m0(红灯亮)

out t0 k5

ldp t0

or m1

ani t1

out m1(橙灯亮)

out t1 k5

ldp t1

or m2

ani t2

out m2(黄灯亮)

out t2 k5

ldp t2

or m3

ani t3

out m3(绿灯亮)

out t3 k5

ldp t3

or m4

ani t4

out m4(青灯亮)

out t4 k5

ldp t4

or m5

ani t5

out m5(蓝灯亮)

out t5 k5

ldp t5

or m6

ani t6

out m6(紫灯亮)

out t6 k5

ld m0

out y1

ld m1

out y2

ld m2

out y3

ld m3

out y4

ld m4

out y5

ld m5

out y6

ld m6

out y7

end

免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

收藏

点赞