单片机电子课程设计交通灯

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机电子课程设

计交通灯

1

基于单片机交通灯控制器设计

任务要求

1)经过数字电路的设计,在面包板上模拟交通红绿灯。要求分主干道

和支干道,每条道上安装红(主:R,支:r)绿(主:G,支:g)黄(主:Y,支:y)三种颜色灯,由四种状态自动循环构成(Gr Yr Rg Ry);

2)

在交通灯处在不同的状态时,设计一计时器以倒计时方式显示计时

并要求不同状态历时分别为:Gr:30秒,Rg:20秒,丫r,Ry:5秒。

总体方案

秒脉冲

主控部分

倒计时

数码管

交通灯

1

三、单元电路设计

1)主控电路

在设计要求中要实现四种状态的自动转换,首先要把这四种状态以数字的形态表示出来。因2八2=4,因此能够两位二进制数表示所需状态(00—

Gr, 0—Yr, 10-Rg, 1—Ry)循环状态:(00-01—10—11— 00)

数字电路课程中介绍的计数器就是经过有限几个不同状态之间的循环实现不同模值计数,由此能够尝试设计一模值为4的计数器,其输出(代表不同状态)既能够循环转换,而且能够控制其它部分电路。在课程设计中本人利用74LS74(双上升沿D触发器)设计模4计数器作为主控部分电路。根据真值表化简,然后接线,这里就不详细介绍。

2

3

12

11

J i

主控电路图如下:

W LR'

LKRE'H

V c

c P

4

2)秒脉冲产生电路

经过555芯片按一定的线路接上不同的电阻和电容就可产生周期不的方波脉 冲,即不同的频率脉冲。课程设计需要秒脉冲,利用的2个电容,2个电阻。

脉冲产生电路图如下:

3) 红绿灯(发光二极管)显示电路

红绿灯显示也是表示电路所处状态,其必然与主控电路的状态 --- 对应,受到 主控电路控制,即主控电路的输出(A 和B)决定了主干道和支干道的红绿灯的亮 灭情况。

如亮用1表示,灭用0表示,则有,

A

B 主红(R) 主黄(Y) 主绿(G) 支红(r) 支黄(y) 支绿(g)

0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1

1

1

1

因此,R =A, Y ~AB

G=~A~B

r 二〜A y= AB g= A 〜B

这里应该注意:

我们能够用门电路实现(如与门,与非门,非门等)可是这些电路不稳定,容易出现错误,如果能够用中规模器件的话,我们尽量用中规模器件来实现,因为中规模器件不但较小规模器件稳定,而且接线也教小规模器件简单.

上面红绿灯的状态完全由A和B控制,我们能够用74LS139双二-四译码器但注意译码器的输出必须经非门处理后才能接入红绿灯线路.

红绿灯显示电路接线如下:

4)计时部分电路c

G

5

资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。

a)计时器状态产生模块:

设计要求对不同的状态维持的时间不同,而且要以十进制倒计时显示出来。限于实验室器材本人采用两个74LS161完成计时器状态产生模块设计。

设计思路:

要以十进制输出,而又有一些状态维持时间超过10秒,则必须用两个74LS161分别产生个位和十位的数字信号。显然,计数器能够完成计时功能,我们能够用74LS161设计,并把它的时钟cp接秒脉冲。74LS161计数器是采用加法计数,要想倒计时,则在74LS161输出的信号必须经过非门处理后才能接入数码管的驱动74LS48,而在显示是最好以人们习惯的数字0---9显示计时,故在设计不同模值计数器确定有效状态时,本人以0000, 0001,0010-----1111这些状态中靠后的状态为有效状态。

例如:有效状态1011-1100-1101-1110-1111

取非0100- 0011-0010-0001—0000

日仃x Q n X C

实现模5的倒计时。

在将74LS161改装成其它模值时既能够采用同步清零法,也可采用异步置数法,但0000不可能为有效状态,因此采用异步置数法完成不同模值转化的实现。

首先对控制个位输出的74LS161设计

按要求对系统的状态不同,即红绿灯的状态不同,个位的进制也就要求不同。本人利用系统的状态量A,B控制74LS161的置数端D0D1D2D3当系统处在Gr 或Rg状态时,个位的进制是十(模10),即逢十进一,当系统处在Yr或

6

Ry状态时, 个位的进制是五(模5),即逢五进一,模10时,有效状态为0110, 0111,1000, -----

7

1111,置D3D2D1D0为0110,模5 时有效状态为1011,1100, 1101,1110,1111,置

D3D2D1D 为1011,由此有,

因此,D3=B D2=~B D1 = 1 D0=B

当状态为1111时,74LS161的状态必须跳到进入下一个循环,此时进位输出为1, 我们能够把它的CO非接入置数端[LD]。

再对控制十位输出的74LS161设计。同设计控制个位输出的74LS161基本类似,本人用系统状态量A,B控制十位74LS161的置数端D3D2D1DC!当系统处于Gr状态时置D3D2D1D0为1101,当系统处于Yr或Ry时置D3D2D1D0为1111, 当系统处于Rg时置D3D2D1D0为1110有,

故,D3=D2=1 D仁A+B D0=~A+B

同理我们将CO2非接入置数端[LD]

***对一些级联的处理

8

相关文档
最新文档