在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 1332|回复: 0

[资料] 单片机学习者交通灯图

[复制链接]
发表于 2013-5-25 13:46:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

设计一个基于单片机的交通灯信号控制器。已知东、西、南、北四个方向各有红黄绿色三个灯,在东西方向有两个数码管, 在南北方向也有两个数码管。 要求交通灯按照表 1进行显示和定时切换,并要求在数码管上分别倒计时显示东西、南北方向各状态的剩余时间。


1:系统设计


1)任务分析与整体设计思路


试题要求实现的功能主要包括计时功能、动态扫描以及状态的切换等几部分。


计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时 1 秒中的功能。当计时每到 1 秒钟后,东西、南北信号灯各状态的暂存剩余时间的变量减1。当暂存剩余时间的变量减到0 时,切换到下一个状态,同时将下一个状态的初始的倒计时值装载到计时变量中。开始下一个状态,如此循环重复执行。


动态扫描:需要使用4 个数码管分别显示东西、南北的倒计时数字,将暂存各状态剩余时间的数字从变量中提取出“十位”和“个位” ,用动态扫描的方式在数码管中显示。整个程序依据定时器的溢出数来计时,每计时 1S则相应状态的剩余时间减 1,一直减到 0时触发下一个状态的开始。

2)单片机型号及所需外围器件型号,1 交通灯硬件电路原理图


选用MCS51 系列AT89S51 单片机作为微控制器,选择两个四联的共阴极数码管组成 8位显示模块,由于 AT89S51 单片机驱动能力有限,采用两片 74HC244 实现总线的驱动,一个 74HC244完成共阴极数码管位控线的控制和驱动,另一个 74HC244完成数码管的 7 段码输出,在 7段码输出口上各串联一个 100 欧姆的电阻对 7 段数码管限流。用 P3口的 P3.0-P3.5完成发光二极管的控制,实现交通灯信号的显示, 每个发光二极管串联 500欧姆电阻起限流作用。 硬件电路原理图如图1 所示。


3)程序设计思路,单片机资源分配以及程序流程


①单片机资源分配


单片机 P3口的 P3.0-P3.1引脚用作输出,控制发光二极管的显示。在计时模块中,需要定义两个数组变量(init_sn[3]init_ew[3])来存储东西、南北两个方向在不同状态中倒计时的初始值, 题目中每个方向的交通灯共有3种显示状态, 因此数组元素个数为3。 还需要定义两个变量( cnt_sn, cnt_ ew)暂存东西、南北两个方向的倒计时剩余时间。在状态的切换中,为了明确当前处于哪种状态,东西、南北方向各设置一个状态变量(state_val_sn, state_val_ew),当倒计时的剩余时间到零时, 状态变量增 1, 表示启动下一个状态,当该变量增到3 时变为0,回到序号为 1的状态。

②程序设计思路


在设计中,由于没有键盘功能,因此只涉及定时计数和动态扫描功能。主程序将变量初始化之后,设置单片机定时器和中断特殊功能寄存器的初始值,将定时器T1的工作方式设置为 8位自动装载模式,定时器每隔250us 产生一次溢出。在初始化变量与寄存器后,主程序进入一个循环结构,在循环中只做动态扫描的工作,根据东西、南北两向的剩余时时间进行动态扫描显示。计时以及状态的切换通过定时器的中断服务程序来实现, 在中断服务程序中, 每计时到一秒时,则各方向当前状态的剩余时间减1,一直减到 0时触发下一个状态的开始,改变交通灯的指示。




文章来源于:全国首家电子行业商家导航网——W W W .dianzi3 3 3 .com

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-7-1 11:28 , Processed in 0.186616 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表