完整单片机交通灯课程实验报告

时间:2024.4.20

课程设计任务书

学生姓名: 王凯     专业班级:电子科学与技术0901

指导教师:  吴友宇        工作单位:    信息工程学院  

题    目:          交通信号灯控制器的设计               

初始条件:

本设计既可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路等。本设计也可以使用单片机系统构建交通信号灯控制器。

用数码管显示时间计数值,用红、黄、绿LED作信号灯。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、课程设计工作量:1周。

2、技术要求:

① 要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。其余部分可根据情况自行发挥。

② 确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。

时间安排:

1、 20## 年 7 3 日集中,作课设具体实施计划与课程设计报告格式的要求说明。

2、 20## 年 7 3 日,查阅相关资料,学习电路的工作原理。

2、 20##年 7 月 4 日  至  2011 年  7 5日,方案选择和电路设计。

2、 20## 年 7 6日  至  2011 年  7 7 日,电路调试和设计说明书撰写。

3、 20## 年  7 8 日上交课程设计成果及报告,同时进行答辩。

指导教师签名:                           年     月    日

系主任(或责任教师)签名:               年     月    日

系主任(或责任教师)签名:                       


目 录

摘   要. 7

交通信号灯控制器的设计. 8

1  任务要求与设计. 8

1.1 设计目的. 8

1.2 设计任务和内容. 8

1.2.1设计任务. 8

1.2.2设计内容. 8

2 总体方案比较. 9

2.1 方案论证. 9

2.2 方案选择. 10

3 总体硬件电路设计及核心器件介绍. 11

3.1总体设计. 11

4单元电路模块设计. 12

4.1复位电路、晶振电路. 12

4.2 LED数码管显示电路. 12

4.3 仿真原理图. 13

5软件编程设计. 14

5.1 设计思想. 14

5.2 程序框图. 15

6  心得体会. 16

参考文献. 17

附录1 原件清单. 18

附录3 总电路图. 18

附录3 源程序. 18


摘   要

交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的状态显示以及倒计时。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用汇编语言编程,主要编写了主程序,LED数码管显示程序。经过整机调试,实现了对十字路口交通灯的模拟。

关键词:交通灯  单片机  C语言

交通信号灯控制器的设计

1  任务要求与设计

1.1 设计目的

(1)加强对单片机和C语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正使用。

(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

(4)提高利用已学知识分析和解决问题的能力。

(5)提高实践动手能力。

1.2 设计任务和内容

1.2.1设计任务

①要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。其余部分可根据情况自行发挥。

②确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

1.2.2设计内容

(1)填写设计任务书。

(2)进行总体设计,画出原理图。

(3)编写并调试程序。

(4)用Proteus软件进行仿真。

2 总体方案比较

为了实现上述功能,有两种选择,其一是采用纯硬件设置,可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路设计技术延时显示电路,只需要手动按键,电路自行实现功能。另一选择就是通过编程使用单片机系统,利用软件硬件结合。

2.1 方案论证

方案一:如图 2-1采用集成集成译码器、计数器、定时器、脉冲发生器以及所需要的门电路,首先周期为一秒的脉冲发生器产生脉冲沿使计数器进行一秒钟计数,计数通过译码器将计数值送给数码管显示作为交通灯的倒计时显示,倒计时为零时产生计数脉冲改变LED灯的亮与灭,逻辑开关包括总开关、复位开关和预置数功能。

图 2-1方案一原理框图

方案二:如图2-2 此方案主要以单片机为核心,采用C语言编程实现交通灯效果。此方式为软硬件结合,硬件包括单片机最小系统,复位电路,数码管显示模块和LED灯模块。软件设计时包括四种状态转换,中断延时程序。系统框图如图。

组织结构图

图2-2   方案二原理图

2.2 方案选择

第一中方案使用纯硬件电路比较容易理解也也不需要软件设计,但是硬件焊接电路较复杂,而且需要比较精确的脉冲信号源,对硬件电路要求较高,第二种方案硬件电路很简单也几乎不需要电阻电容的组织选择,而且只需要+5V直接稳压电源,采用程序实现数码管与LED灯显示功能,所以综合难易程度也可实现性,选择第二种方案。

3 总体硬件电路设计及核心器件介绍

3.1总体设计

整个设计以AT89C51单片机为核心,LED数码管显示,晶振电路,复位电路组成。

硬件模块入图3-1。

图3-1 硬件原理图

4单元电路模块设计

4.1复位电路、晶振电路

复位电路、晶振电路总体电路图如图 4-1

图 4-1 复位电路、晶振电路

4.2 LED数码管显示电路

在单片机应用系统中,数码管显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多,动态扫描电路软件设计较为复杂,由于89C52的可供使用I/O口足够多所以采用静态扫描。

此处使用74LS04是由于数码管位选段选直接与单片机I/O口相连,但是单片机I/O口输出电流很小,可能不足以带动数码管位选,则会导致数码管显示不够亮,此处使用的非门作为驱动,增加输出电流。

电路图如图 4-2

图 4-2  LED数码管显示电路

4.3 仿真原理图

如图4-3 数码管LED灯初始化显示(倒计时为三十秒)

当数码管倒计时到22秒时,此时状态是南北路红灯亮而东西路绿灯亮。

图4-3  仿真原理图

5软件编程设计

5.1 设计思想及程序框图

软件编程是实现交通信号灯显示的灵魂,由于设计要求LED灯循环显示,,并且倒计数时间可以(0~30s)预置数。程序可以分为按键模块,LED灯循环显示模块,数码管计数模块。

如图5-1所示根据分析可以将交通灯根据其显示情况可以分为四个状态,可以通过中断定时来控制每个状态的时间,程序总思路是 首先设计一秒钟的中断模块,在一秒到来时,数码管计数显示减一,当倒计时到五秒时状态转换到黄灯亮另一路口继续红灯亮,,倒计时到零,从新显示预置数值,状态装换到一路口红灯灭,另一路口路灯亮,然后继续倒计时五秒,装换状态,完成这四个状态构成一个完整的程序循环

图5-1 程序框图

6  心得体会

心得体会

今年是第二次做课程设计,上次做的很匆忙,可想而知结果也很糟糕,总结了上次的经验与教训,这次准备的比较早,虽然遇到了很多的困难与问题,但是在自己的自学和同学的帮助之下,圆满的完成任务。

本设计采用的是软硬件结合的方案,所以对软件编程和硬件焊接排布都有一定的要求,而且这也是我第一次自己写C语言程序,刚开始思路很僵硬也不知道机械语言的那种很强的逻辑性,最后通过多看程序,多思考和改进终于实现软件功能。

虽然硬件电路比较简单,但是首先要有比较好的布局,这关系到美观和走线的方便,再一个就是电路的排查方面,第一次焊出来的电路总是或多或少有一些接触不良的问题这就需要细心与耐心的排查。

总体觉得这次的课程设计对自己自学能力动手能力是一个很大的考验和检查。

参考文献

[1] 叶挺秀.应用电子学.杭州:浙江大学出版社,1994

[2] 朱承高.电工及电子技术手册.北京:高等教育出版社,1990

[3] 周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例.北京:电子工业出版社,2006

[4] 李朝青.单片机原理及接口技术(第三版).北京:北京航空航天大学出版社,2005

[5]刘艳萍,高振斌,李志军.EDA实用技术及应用.北京:国防工业出版社,2006.

附录1 原件清单

附录2 总电路图

附录3 源程序

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit kai=P2^2;

sbit jia=P2^4;

sbit jian=P2^3;

sbit shiwen=P3^0;

sbit gewen=P3^1;

sbit LED_BLUE1=P3^2;

sbit LED_RED1=P3^3;

sbit LED_YELLOW1=P3^4;

sbit LED_BLUE2=P2^5;

sbit LED_RED2=P2^7;

sbit LED_YELLOW2=P2^6;

bit wen=1,guan;

uchar TIME,i,z;

char TIME_MAX1=30;

/*uchar code table[]={

0x30,0xf3,0x98,

0x91,0x53,0x15,

0x14,0xb3,0x10,0x11}; */

uchar code table[]={

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90};

uchar wenxuan[]={0,1};shuzi[]={0,0};

void delayms(uchar z)

{

       uchar x,y;

       for(x=0;x<z;x++)

       for(y=0;y<110;y++);

}

void re_display(uchar z)

{

       shuzi[0]=z/2/10;

       shuzi[1]=z/2%10;

}

void display()

{

       P0=0xff;

       shiwen=wenxuan[wen];

       gewen=!wenxuan[wen];

       P0=table[shuzi[wen]];

}

void set_zhuangtai(uchar zhuangtai)

{

       if(zhuangtai==0)

       {

              LED_BLUE1=0;

              LED_RED1=1;

              LED_YELLOW1=1;

              LED_BLUE2=1;

              LED_RED2=0;

              LED_YELLOW2=1;

              TIME=2*TIME_MAX1+1;

       }

       else if(zhuangtai==1)

       {

              LED_BLUE1=1;

              LED_RED1=1;

              LED_YELLOW1=!LED_YELLOW1;

              LED_BLUE2=1;

              LED_RED2=0;

              LED_YELLOW2=1;

       }

       else if(zhuangtai==2)

       {

              LED_BLUE1=1;

              LED_RED1=0;

              LED_YELLOW1=1;

              LED_BLUE2=0;

              LED_RED2=1;

              LED_YELLOW2=1;

              TIME=2*TIME_MAX1+1;

       }

       else if(zhuangtai==3)

       {

              LED_BLUE1=1;

              LED_RED1=0;

              LED_YELLOW1=1;

              LED_BLUE2=1;

              LED_RED2=1;

              LED_YELLOW2=!LED_YELLOW2;

       }    

}

void key()

{

       while(!kai)

       {

              delayms(10);

              if(!kai)

              {

                     guan=~guan;

                     set_zhuangtai(z);

              }

              while(!kai);         

       }

}

void tiao()

{

       if(jian==0)

       {

              delayms(10);

              if(jian==0)

              {

                     if(--TIME_MAX1<0) TIME_MAX1=30;

              }

              while(!jian);

       }

       else if(jia==0)

       {

              delayms(10);

              if(jia==0)

              {

                     if(++TIME_MAX1>30) TIME_MAX1=0;

              }

              while(!jia);

       }

       z=0;

       if(TIME_MAX1<6) z=1;

}

void main()

{

       TMOD=0x11;

       TH0=(65536-50000)/256;

       TL0=(65536-50000)%256;

       TH1=(65532-2000)/256;

       TL1=(65536-2000)%256;

       EA=1;

       while(1)

       {

              key();

              if(guan)

              {

                     TR0=1;

                     TR1=1;

                     ET0=1;

                     ET1=1;

              }

              else

              {    

                     LED_BLUE1=1;

                     LED_RED1=1;

                     LED_YELLOW1=1;

                     LED_BLUE2=1;

                     LED_RED2=1;

                     LED_YELLOW2=1;

                     ET0=0;

                     TR0=0;

                     ET1=1;

                     TR1=1;

                     TIME=2*TIME_MAX1+1;

                     re_display(TIME);

                     tiao();

              }

       }

      

}

void TIME0() interrupt 1

{

       TH0=(65536-50000)/256;

       TL0=(65536-50000)%256;

       i++;

       if(i==10)

       {

              i=0;

              if(TIME_MAX1>5)

              {           

                     if(1<--TIME&&TIME<12)

                     {

                            set_zhuangtai(z+1);

                           

                     }

                     if(TIME<2)

                     {

                           

                            set_zhuangtai(z=2-z);

                     }

              }

              else

              {

                     if(--TIME<2)

                     {

                           

                            set_zhuangtai(z=4-z);

                            TIME=2*TIME_MAX1+1;

                     }

                     else set_zhuangtai(z);

                    

              }    

              re_display(TIME);

             

      

             

       }    

}

void TIME1() interrupt 3

{

       TH1=(65532-2000)/256;

       TL1=(65536-2000)%256;

       display();

       wen=~wen; 

}

更多相关推荐:
单片机交通灯实验报告

交通灯控制系统设计院系:电子电气工程学院专业:电气自动化班级:P10电气四班成员:*************交通灯控制系统设计实验一.设计目的1.通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加…

单片机交通灯课程设计报告[1]

摘要31引言42总体设计方案521设计思路5211设计目的5212设计任务和内容6213方案比较设计与论证6214芯片简介922设计方框图153设计原理分析16313233交通灯显示时序的理论分析与计算16交通...

单片机交通灯设计报告[1]

河南理工大学电子设计综合训练报告单片机控制的交通灯控制系统设计姓名:***学号:***专业班级:电气本09-2班指导老师:**所在学院:电气工程与自动化学院20XX年4月15日1摘要2系统总体方案及硬件设计12…

单片机交通灯实训报告

九江职业技术学院单片机交通灯设计班级电气综1101小组成员侯政刘述全游子民罗垂军九江职业技术学院电气工程学院目录第一章任务分析与设计111任务分析112设计思路1第二章硬件与软件设计121硬件组成1211设计电...

单片机交通灯实训报告完整版

课程设计课题名称智能交通信号灯姓名学号班级专业所在系指导教师完成日期智能交通信号灯摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上综合应用单片机原理微机原理等课程方面的知识设计一个采用AT89C52单片机...

单片机交通灯实验报告

交通灯控制系统设计院系电子电气工程学院专业电气自动化班级P10电气四班成员王帅茹旭桐夏振薛佳佳魏光琪刘昌爽指导老师李霞淄博职业学院交通灯控制系统设计实验一设计目的1通过本次课程设计进一步熟悉和掌握单片机的结构及...

单片机交通灯实验完整代码加报告

湖北大学20xx20xx学年度第二学期课程考试试题纸第1页共12页说明本试卷将作为样卷直接制版胶印请命题教师在试题之间留足答题空间湖北大学20xx20xx学年度第二学期课程考试试题纸第2页共12页说明本试卷将作...

单片机交通灯实训报告

物理与机电工程学院课程设计报告课程名称单片机课程设计系部物理与机电工程学院专业班级学生姓名指导教师完成时间报告成绩目录一设计任务与要求二方案设计与论证三硬件电路设计1单片机模块2时钟震荡电路3复位电路四软件设计...

单片机交通灯实验报告

一实验目的通过仿真和实物搭建相结合完成交叉口交通灯的设计并掌握C51编程的操作二实验内容及要求模拟控制就是以红绿黄色4组6个发光二极管表示交通信号灯每组有两位数码倒计时显示1正常情况下AB道轮流放行A道放行15...

单片机交通灯实验设计报告(C语言)

东北林业大学单片机原理实验课程设计总结报告设计项目电子交通灯的设计项目完成人指导教师学院信息与计算机工程学院专业电子信息工程20xx级3班20xx年5月23日综合电子课程设计任务书摘要随着目前微电子技术的发展技...

单片机交通灯实验报告(汇编语言)

实验四单片机交通灯实验1实验要求本实验分两部分第一部分是普通交通灯的模拟初始状态0为东西红灯南北红灯然后转状态1南北绿灯通车东西红灯过一段时间转状态南北绿灯闪几次转两黄灯延时几秒东西仍然红灯再转状态3东西绿灯通...

单片机交通灯实训报告

通过这一个学期的单片机学习我收获了很多关于单片机的知识并且这些知识和日常的生活息息相关单片机微型计算机是微型计算机的一个重要分支也是颇具生命力的机种单片机微型计算机简称单片机特别适用于控制领域故又称为微控制器1...

单片机交通灯实验报告(24篇)