2各模块设计:
(1).单片机及键盘控制模块
单片机采用89C52,其中有8K程存可用。对交通灯的控制主要用其中的计数器定时来完成。一方面要完成对各模块的控制,另一方面也要协调好各模块的时序及口线冲突问题。
键盘采用7289串行控制,其电路图如图(1)所示。共采用8个按键:数字键0-9,时间设置键,回车键,紧急情况控制键,模式转换键,手动控制键及恢复键。时间设置可分别设计各方向的通行时间,其设置的时间应符合以下公式:
Tr1=Tg2+Ty2+Tl2+Tl1
Tg1=Tm1+Trt1
Tr2=Tg1+Ty1+Tl1+Tl2
Tg2=Tm2+Trt2
模式转换功能为根据交通状况切换到预先设定好的通行时间模式,或切换回原来模式。手动控制为手动控制各个方向的通行时间,具有灵活的特性。恢复键是从紧急状态或手动控制状态返回正常状态。

图(1)
(2).LCD和LED显示模块
LED用来实现倒计时功能,可直接从7289的接口上接过来。其控制较为简单。
LCD用来显示提示信息及在时间设置时的提示功能。其电路图如图(2)所示。

图(2)
(3).交通灯演示模块
交通灯用发光二极管代替,因为P2口过一段时间
后其值会发生变化,故采用P2口加锁存器和P3口一起来控制。其电路图如图(3)。

图3
3 软件系统:
※ 流程图
如图所示

三.调试
根据方案设计的要求,调试过程共分三大部分:硬件调试、软件调试和软硬联调。
1硬件调试:
⑴ 交通灯演示电路的调试:交通灯模块由多个发光二极管组成,接线繁琐,极易出错。检查二极管无故障、导线无断线、连线接头无互相搭联后可先写一个软件调试程序,依次检查东南西北方向的指示灯(发光二极管)是否点亮;若未点亮,则可能是连线接错。根据灯的亮灭情况依次查找直到电路正常工作为止。
⑵ 倒计时电路调试:倒计时电路主要有数码管组成。当交通灯程序写好后,倒计时的显示可与最小系统板上两组数码管显示比较(系统板上的这两组数码管用以检查倒计时工作情况)。若倒计时电路中有数码管不亮,检查数码管是否良好、数码管连线是否良好。依次检查,直至倒计时电路正常工作。
⑶语音提示电路的调试:本系统采用现成的语音板。语音板上电后若不能工作,可将录音板首先复位,然后录音,再重放。依上操作,直到语音板正常工作。
⑷其它电路的调试主要看接口以及连线是否正确。依次检查,直到正常工作。
2软件调试
本系统的软件系统很大,全部采用汇编语言编写,除语法与逻辑差错外,当确认程序没问题时,直接下载到单片机仿真调试。采取自下到上的方法,单独调好每一个模块,最后完成一个完整的系统调试。
3软硬联调
系统做好后,进行系统的完整调试。
(1).初始化后,两个方向通行时间完全相等。Tr1=Tr2=19s
Tg1=Tg2=12s,Ty1=Ty2=2s,Tl1=Tl2=5s,Trt1=Trt2=4s,Tm1=Tm2=8s
各灯运行及倒计时情况良好。
(2).按模式转换键后,按预先装入的模式2进行工作:
(3).按设置键后,进行时间设置:
完成后,会按重新设置的时间进行。
(4).按紧急预案键后,先出现全红状态,再按一下该键,又出现一方通行状态,再按,则另一方通行。如此循环。
按手动控制键后,进行手动控制,每按一次,灯会转到下一个状态。
按恢复键对上两者进行恢复到正常状态。