- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计项目简介
随着电子科学技术的发展,单片机的应用在现实生活中得到越来越广泛的应用。此十字路口交通灯控制的设计是基于单片机AT89C51的定时装置,当到达一定时间时相应的红、绿、黄灯亮起,起到疏导交通的作用。此外还可以通过人为控制根据具体情况设定具体定时时间,灵活性较强。
1.1 设计任务
用单片机的定时器产生秒信号,控制十字路口的红、绿、黄灯交替点亮和熄灭,并利用LED数码管十字路口两个方向的剩余时间。要求能用按键设置两个方向的通行时间(绿等、红等点亮时间)和暂缓通行时间(黄灯点亮时间)。系统的工作应符合一般交通灯控制的要求。
1.2 性能指标
两位数码管显示器(00-99)
四组(东、南、西、北)交通信号灯
东:绿EAST、红 EAST 、黄 EAST
南:绿SOUTH、红 SOUTH 、黄SOUTH
西:绿WEST、红 WEST 、黄 WEST
北:绿NORTH、红NORTH 、黄NORTH
9个按键
BUTTON_RST-复位
BUTTON_RUN-运行
BUTTON_WE-东西方向红绿灯设置
BUTTON_SN南北方向红绿灯设置
BUTTON_Y-黄灯设置
BUTTON_DA-设置时间加一
BUTTON_DB-设置时间加十
BUTTON_CANCEL-取消设置
BUTTON_FINISH-完成设置
系统总体方案及硬件设计
2.1 单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。如下图所示(Vcc和GND隐藏):
单片机最小系统:电源电路,复位电路和振荡电路(如下图)。
2.2 系统硬件电路的设计
硬件原理图
2.3系统功能描述
通电后,数码管显示00,不同方向的所有灯全部亮起;
点击BUTTON_RUN:电路以默认初始状态开始工作,初始状态下,东西方向通行时间为30秒,南北方向通行时间为25秒,黄灯警告时间为5秒,东西路通行,数码管显示开始倒计时,到5秒时,黄灯闪烁警告,30秒结束后南北路通行,以此往复;当设置时间完成后,点击此按键开始以设置时间运行,不设置重新点击则以上一次时间重新开始运行;
点击BUTTON_WE:进入东西方向红绿灯时间设置状态,东西方向红绿灯亮起,点击BUTTON_DA一次,数码管个位数加一,点击BUTTON_DB,数码管十位数加一,数码管显示时间为人为设定时间(0-99s),点击BUTTON_FINISH保存当前设置时间,点击BUTTON_CANCEL取消当前设置时间并回到默认(30秒)状态;点击BUTTON_RUN开始运行;
点击BUTTON_SN:进入南北方向红绿灯时间设置状态,南北方向红绿灯亮起,点击BUTTON_DA一次,数码管个位数加一,点击BUTTON_DB,数码管十位数加一,数码管显示时间为人为设定时间(0-99s),点击BUTTON_FINISH保存当前设置时间,点击BUTTON_CANCEL取消当前设置时间并回到默认(25秒)状态;点击BUTTON_RUN开始运行;
点击BUTTON_Y:进入黄灯时间设置状态,所有黄灯灯亮起,点击BUTTON_DA一次,数码管个位数加一,点击BUTTON_DB,数码管十位数加一,数码管显示时间为人为设定时间(0-99s),点击BUTTON_FINISH保存当前设置时间,点击BUTTON_CANCEL取消当前设置时间并回到默认黄灯(3秒)状态;点击BUTTON_RUN开始运行;
点击BUTTON_RST:为复位按键,回到刚上电后状态,以默认初始状态运行。
程序流程图
程序清单
#includereg52.h
//按键端口声明
sbit b_run = P3^0;
sbit b_we = P3^1;
sbit b_sn = P3^2;
sbit b_y = P3^3;
sbit b_da = P3^4;
sbit b_db = P3^5;
sbit b_cancel = P3^6;
sbit b_finish = P3^7;
//字符表
unsigned char code LedChar[]={ 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xFF }; //共阳极
unsigned char code LedRGY[] ={ 0x11, 0x14, 0x10, 0x0A, 0x22, 0x02, 0x3F, 0x03, 0x18, 0x24, 0x00 };
/*
LedRGY[0] 东西通行,南北禁止 LedRGY[1],[2] 东西黄灯闪烁
LedRGY[3] 东西禁止,南北通行 LedRGY[4],[5] 南北黄灯闪烁
文档评论(0)