基于51单片机的交通信号灯模拟控制系统实验一.docx

基于51单片机的交通信号灯模拟控制系统实验一.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于51单片机的交通信号灯模拟控制系统实验

实验目的和要求

1.掌握单片机基本资源使用。

2.掌握单片机电路原理图绘制和仿真。

3.掌握单片机C语言软件开发以及联合仿真。

实验内容和原理

实验内容:

根据题目绘制单片机电路原理图。

绘制程序流程图并编写C语言程序

在仿真程序中进行联合仿真,最后提交实验报告

主要仪器设备

keilC,proteus。

四、操作方法与实验步骤

4.1题目要求

用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行20秒,警告3秒,禁止20秒,同时要考虑到东西、南北两个方向出现异常情况,出现异常情况器该方向通行60秒。

4.2系统设计思路

设置东西、南北方向的交通灯状态变量。设置计时器变量,用来记录当前状态的持续时间。设置异常情况变量,用来记录异常情况是否出现。在主循环中使用无限循环来控制交通灯的状态和计时器的更新。根据计时器的值和交通灯状态,判断当前状态,并控制灯的状态切换。?初始化交通灯状态和计时器,使东西、南北方向都为通行状态,计时器初始值设置为20秒。在循环中,逐秒更新计时器的值,并判断当前状态。如果计时器的值为0,即当前状态持续时间结束,根据当前状态进行灯的状态切换和计时器的重设。如果出现异常情况,将相应方向的状态设置为异常,并将计时器设置为60秒

4.2电路图绘制(包含详细的参数选定文字和图像叙述)

4.3C程序编制(包含详细的文字和程序流程图)

#include?reg51.h

void?delay500ms?(unsigned?char?k);void?main(void)

SP=0X60;

TMOD=0x01;

IE=0x85;

TCON=0x05;

while(1)

//初始化

P1=0x21;

delay500ms?(40);

P1=0x41;

delay500ms?(6);

P1=0x12;

delay500ms?(40);

P1=0x14;

delay500ms?(6);

//状态1,东西方向绿灯,南北方向红灯20s?//状态2,东西方向黄灯,南北方向红灯3s?//状态3,南北方向绿灯,东西方向红灯20s

//状态4,南北方向黄灯,东西方向红灯3s

//东西方向异常,东西方向绿灯闪,南北方向红灯闪?60s

void?int?0(void)?interrupt0

)

unsigned?char?il,i2;

i1=Pl;

for(i2=0;i260;i2++)

P1=0x21;?

delay500ms?(1);

P1=0x00;

delay500ms?(1);

Pl=il;

//南北方向异常,南北方向绿灯闪,东西方向红灯闪?60s?void?int?1(void)?interrupt?2

unsigned?char?jl,j2;

j1=P1;

for?(j2=0;j260;j2++)

P1=0x12;

delay500ms?(1);

P1=0x00;

delay500ms?(1);

Pl=jl;

//延时500ms?函数

void?delay500ms?(unsigned?char?m)

unsigned?char?k1,?k2;

TH0=0x3C;TL0=0xB0;

TRO=1;

for?(k1=0;k1m;k1++)

for?(k2=0;k210;k2++)

while(!TFO);

TF0=0;

TH0=0x3C;TL0=0xB0;

4.3仿真分析(包含文字和图像叙述)

状态,东西方向绿灯,南北方向红灯20秒,状态编码“100”(1):)状态2,东西方向黄灯,?南北方向红灯3秒,状态编码“00000?(41H);状态了,南北方向绿灯,东西方向红灯?20秒,状态编码“00”00?(2H);:状态4,南北方向黄灯,东西方向红灯3秒,状态编码“000”(4H)。

异常情况分两种:东西发生异常时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪60秒:南北发生异常时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪60秒;闪烁通过用亮-次灭一次实现。主程序中实现交通灯正常运行过程,两种异常用外中断0和外中断1管理,外接开关模拟异常发生,在中断服务程序中实现异常处理,在主程序中开放外中断0和外中断1,设置为边沿触发方式。时间单位采用500ms?信号,由定时/计数器?0定时50ms,循环10次产生,定时/计数器0采用查询方式,主程序中设定定时/计数器0的工作方式:方

五、讨论和心得(不少于100字)

讨论与心得:

1.?多任务处理:该设计中需要同时控制东西、南北两个方向的交通灯状态,并处理异常情况。因此,需要考虑如何合理利用单片机的多任务处理能力,确保各个状态之间的切换和异常情况的处理能够同时进行,以实现交通灯控制系统的正常运行。

2.?异常

文档评论(0)

偶遇 + 关注
实名认证
内容提供者

个人介绍

1亿VIP精品文档

相关文档