最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于51单片机三岔口交通灯控制系统设计

来源:动视网 责编:小OO 时间:2025-10-01 02:11:38
文档

基于51单片机三岔口交通灯控制系统设计

课题:基于51单片机交通灯系统设计专业:电子信息工程班级:(1)班学号:20110169姓名:峰指导教师:设计日期:成绩:重庆大学城市科技学院电气学院基于51单片机三岔口交通灯控制系统设计一、设计目的1、掌握单片机最小系统电路的设计原理、组装与调试方法。2、掌握LED数码显示电路的设计和使用方法。3、实现电子信息综合简单产品的模拟设计。4、实现电气自动化控制简单产品的模拟设计。5、实现机电传动控制简单产品的模拟设计。二、设计任务与要求1、设计一个三角路口交通灯控制系统2、要求能用按键控制电路控
推荐度:
导读课题:基于51单片机交通灯系统设计专业:电子信息工程班级:(1)班学号:20110169姓名:峰指导教师:设计日期:成绩:重庆大学城市科技学院电气学院基于51单片机三岔口交通灯控制系统设计一、设计目的1、掌握单片机最小系统电路的设计原理、组装与调试方法。2、掌握LED数码显示电路的设计和使用方法。3、实现电子信息综合简单产品的模拟设计。4、实现电气自动化控制简单产品的模拟设计。5、实现机电传动控制简单产品的模拟设计。二、设计任务与要求1、设计一个三角路口交通灯控制系统2、要求能用按键控制电路控


课题:基于51单片机交通灯系统设计专业:电子信息工程

班级:(1)班

学号: 20110169

姓名:峰

指导教师:

设计日期:

成绩:

重庆大学城市科技学院电气学院

基于51单片机三岔口交通灯控制系统设计

一、设计目的

1、掌握单片机最小系统电路的设计原理、组装与调试方法。

2、掌握LED 数码显示电路的设计和使用方法。

3、实现电子信息综合简单产品的模拟设计。

4、实现电气自动化控制简单产品的模拟设计。

5、实现机电传动控制简单产品的模拟设计。

二、设计任务与要求

1、设计一个三角路口交通灯控制系统

2、要求能用按键控制电路控制交通灯系统9个红绿黄LED 交通灯

3、经单片机处理后,要求用4位一体共阴LED 数码管来设计显示电路,以显示红绿黄LED 交通灯的计时

三、设计的具体实现

1系统设计方案与框图

单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED 数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了时间调整功能。

系统的总体框图

据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED 倒计时模块模块接受输出。系统的总体框图如上所示。

单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED 数码管上实时显示。 单片机 最小系统

外围接口电路 LED 数码管显示

红黄绿信号灯

按键 控制电路

对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。ATC51 以低价位单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机ATC51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。

AT51的管脚如下图所示:

A TC51芯片管脚图

3时钟电路

80C51时钟有两种方式产生,即内部方式和外部方式。80C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。本次采用内部震荡电路,瓷片电容采用22PF,晶振为12MHZ。

晶体震荡电路图

4 复位电路

单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10KΩ的阻值,电容采用10μF的电容值。

复位电路以上的各个模块就组成了51单片机的最小系统电路。

最小系统原理图

5 显示计时电路

对于交通灯的计时显示,我们采用4位一体共阴LED数码管。由于P0口输出电流小,需外接上拉电阻,COME端接5V电源。

4位LED数码显示管6 交通灯指示电路

黄灯闪烁为3秒钟,红绿灯可以自行调整。

7 按键控制电路

各个按键的功能如下图所示

8 Proteus仿真步骤及结果

(1)根据电路图选择器件连接电路

(2)双击ATC51装入源程序编译生成的HEX文件

(3)单击运行按钮运行仿真

(4)根据仿真情况与程序实现任务对比,对于不能实现的任务修改并调试程序,重新装载重新运行调试仿真,直到能完全实现所要求的功能为止

(5)进一步改进和简化程序在进行调试仿真

四、总结

通过这次单片机实训课程学习,才深刻体会到自己实际操作能力的匮乏。从刚开始老师对单片机的整体介绍及其应用前景,对单片机产生了浓厚的兴趣,并利用自己的课余时间提前学习有关单片机的基本知识。但空有理路知识,却无半点的实际操作经验。后来在老师的建议下,选择运用单片机设计一个交通灯控制系统,从简单开始,后期逐步复杂化。

从给定电路图的分析到实际电路元件的识别、焊接,再到后期的程序设计以及系统调试,初步掌握了运用单片机系统设计特定功能的设计步骤,也对单片机有了更深的体会。了解和掌握了一些简单的编程思想,对单片机各管脚的功能,I/O口的使用条件都有了更深的理解。这次的课程设计让我把单片机的理论知识运用的实践中,实现了理论与实践的相结合,从中更懂得了理论是实践的基础,实践更能检验理论的真实性,让我受益匪浅。

五、参考文献

1、李群芳编.《单片微型计算机及接口技术》[M].电子工业出版社,2012.1

2、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社,2002.3

3、乔瑞萍.《DSP原理及应用》[M].西安电子科技大学出版社,2012.2六、附录

系统原理电路图

最小系统板电路板

交通灯系统整体电路板交通灯控制系统设计器材表:

单片机STCC51芯片 1

按键开关 5

晶振12M 1

开个二极管 4

电容30PF 2 电解电容10UF 1

排针若干LED红黄绿指示灯各3个阻10k,3k,2k,1k,510,330 若干4位一体共阴数码管 1

导线若干

插线若干

USB电源接口 1源程序:

#include"reg51.h"

sbit P24=P2^4;//按键K1

sbit P25=P2^5;//按键K2

sbit P26=P2^6;//按键K3

sbit P27=P2^7;//按键K4

sbit P20=P2^0;//数码管位控制南北方向

sbit P21=P2^1;

sbit P22=P2^2;//数码管位控制东西方向

sbit P23=P2^3;

sbit l1=P1^0;//南北路口绿灯

sbit h1=P1^1;//南北路口黄灯

sbit r1=P1^2;//南北路口红灯

sbit l2=P1^3;//东西绿灯

sbit h2=P1^4;//东西黄灯

sbit r2=P1^5;//东西红灯

bit a0=1; //闪烁标志位

bit a1=1;//闪烁标志位

bit a2=1;//闪烁标志位

bit a3=1;//闪烁标志位

Unsigned char code x[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//unsigned char code x[10]={0xC0,0xF9,0xA4, 0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳0~9

unsigned char ucled0; //数码管十位存储南北方向

unsigned char ucled1; //数码管个位存储

unsigned char ucled2; //数码管十位存储东西方向

unsigned char ucled3; //数码管个位存储

unsigned int dxz=0; //东西红灯时间

unsigned int nbz=0; //南北红灯时间

unsigned int sjz1; //南北方向时间存放

unsigned int sjz2; //东西方向时间存放

unsigned int cs=0; //k3按键次数

unsigned int CST=0; //50ms记数

bit nb=0; //南北红灯闪烁标志

bit dx=0; //东西红灯闪烁标志

/**********************************

短延时

***********************************/

void delay()

{

unsigned int j;for(j=0;j<200;j++)

}

/***********************************

定时器T0

************************************/

void Time0() interrupt 1

{

TH0=60;

TL0=176;

CST++; //50ms次数累加

ucled0=sjz1/10; //送南北十位数据

ucled1=sjz1%10; //个位

ucled2=sjz2/10; //送东西数据

ucled3=sjz2%10;//个位

if(CST==20) //定时1S

{

CST=0;//清零

if(r2==1) //东西红灯亮

{

if(sjz1==0)//南北绿灯时间

{

P1=0xE2; //南北黄灯亮

nb=1; //黄灯闪烁亮标志

sjz1=sjz2;// 赋黄灯时间

//sjz1--;sjz2--;

}

if(sjz2==0)//东西红灯时间到

{

P1=0xCC;//东西绿灯亮南北红灯亮 sjz1=nbz;sjz2=(nbz-3);//重新赋?

nb=0; //黄灯闪烁灭标志 }

else

{ sjz1--;sjz2--;} //数据自减 }

if(r1==1) //南北红灯亮

{

if(sjz2==0)//东西记时到

{

P1=0xD4;//东西方向黄灯亮

sjz2=sjz1;//附黄灯时间

dx=1; //黄灯闪烁亮标志 // sjz1--;sjz2--;

}

if(sjz1==0)//南北时间到

{

P1=0xE1;//南北绿灯亮东西红灯亮 sjz1=(dxz-3);sjz2=dxz;//重新赋值

dx=0; //黄灯闪烁灭标志

}

else

{ sjz1--;sjz2--;} //数据自减

}

}

}

/**************************************

定时器T1 闪烁

************************************/

void Time1() interrupt 3

{

TH0=60;

TL0=176;

if(nb==1)

{ h1=!h1;} //南北方向闪烁

if(dx==1)

{h2=!h2;} //东西方向闪烁

if(cs==1)

{a0=!a0;a3=1;} //第1位闪烁

if(cs==2)

{a1=!a1;a0=1;} //第2位闪烁

if(cs==3)

{a2=!a2;a1=1;} //第3位闪烁

if(cs==4)

{a3=!a3;a2=1;} //第4位闪烁}

/*****************************************

按键

******************************************/

void anjian() interrupt 0

{

P24=1; P25=1; P25=1; P27=1;

if(P24==0) //按键K1 进去修改状态并显示南北东西方向红灯时间

{

P1=0xd2; //只有黄灯亮

nb=1;dx=1;//黄灯闪烁

ucled0=nbz/10; //南北十位红灯时间

ucled1=nbz%10; //南北个位红灯时间

ucled2=dxz/10; //东西十位红灯时间

ucled3=dxz%10; //东西个位红灯时间

TR0=0; //关定时器

cs=1;

}

if(P25==0)

{

if(cs==1)

{ ucled0++; //南北十位加1

if(ucled0==10)

ucled0=0;

}

if(cs==2)

{

ucled1++; //南北个位加1

if(ucled1==10)

ucled1=0;

}

if(cs==3 )

{ ucled2++; //东西十位加1

if(ucled2==10)

ucled2=0;

}

if(cs==4 )

{ ucled3++; //东西个位加1if(ucled3==10)

ucled3=0;

}

}

if(P26==0 ) //按键K3按下数码管闪烁

{

switch(cs)

{

case 1: cs=2;break; //第一次按键

case 2: cs=3;break ; //第二次按键

case 3: cs=4;break; //第三次按键

case 4: cs=1;break; //第四次按键

default: break;

}

}

if(P27==0 ) //按键K4按?

{

TR0=1;

P1=0xCC;

nb=0;dx=0;cs=0;

nbz=ucled0*10+ucled1; //计算修改后的数据并送南北数据存储空间

dxz =ucled2*10+ucled3; //计算修改后的数存储

a0=1;

a1=1;

a2=1;

a3=1;

// if(r2==1)

sjz2=0;

//if(r1==1)

sjz1=0;

}

}

/****************************************

扫描显示

*****************************************/

void display(){ if(a0)

{

P0=x[ucled0]; //送南北十位数据 P20=0;

delay();

P20=1;

}

if(a1)

{

P0=x[ucled1]; //送南北个位数据

P21=0;

delay();

P21=1;

}

if(a2)

{

P0=x[ucled2];//送东西十位数据

P22=0;

delay();

P22=1;

}

if(a3)

{

P0=x[ucled3]; //送东西个位数据

P23=0;

delay();

P23=1;

}

}

/****************************

主函数

****************************/

void main()

{

TMOD=0x11;

TH1=60;

TL0=176; //定时T0赋初值

ET0=1;

TR0=1;

TH1=60; //定时器T1赋初值

TL1=176;

ET1=1;

TR1=1;IT0=1;

EX0=1;

EA=1; //开总中断控制位P1=0xE1;//赋初值

dxz=15;nbz=14;//红灯初值 while(1)

{

display();//调显示 }

}

文档

基于51单片机三岔口交通灯控制系统设计

课题:基于51单片机交通灯系统设计专业:电子信息工程班级:(1)班学号:20110169姓名:峰指导教师:设计日期:成绩:重庆大学城市科技学院电气学院基于51单片机三岔口交通灯控制系统设计一、设计目的1、掌握单片机最小系统电路的设计原理、组装与调试方法。2、掌握LED数码显示电路的设计和使用方法。3、实现电子信息综合简单产品的模拟设计。4、实现电气自动化控制简单产品的模拟设计。5、实现机电传动控制简单产品的模拟设计。二、设计任务与要求1、设计一个三角路口交通灯控制系统2、要求能用按键控制电路控
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top