单片机课程设计报告模板

时间:2024.3.20

韶 关 学 院

课程设计说明书(论文)

设计题目:基于单片机控制的智能交通灯设计

课程名称:微机原理与应用实训

学生姓名:***

   号:*********

   系:物理与机电工程学院汽车系

专业班级:12机械制造及其自动化 5

  指导教师姓名及职称:谢杰  讲师

陈锦儒  助理实验师

  起止时间:  20##   3 月——  2015   5

  课程设计评分:


目   录

1 课题任务...................................................................................................................... 1

2 硬件电路设计............................................................................................................... 2

2.1 单片机的工作原理............................................................................................... 2

2.2 交通灯的控制原理............................................................................................... 2

2.3 整个硬件系统的设计框图与工作原理................................................................... 3

2.4 硬件设计部分小结............................................................................................... 4

3 软件系统设计............................................................................................................... 5

3.1 整个软件系统设计框图及流程图.......................................................................... 5

3.2 各软件单元的设计流程........................................................................................ 6

3.3 软件设计部分小结............................................................................................... 7

4 系统测试...................................................................................................................... 8

4.1 硬件电路测试与分析........................................................................................... 8

4.2 软件系统测试与分析........................................................................................... 8

4.3 整机测试与分析................................................................................................ 12

4.4 测试部分小结.................................................................................................... 12

5 总结............................................................................................................................ 13

附录............................................................................................................................... 14

附录A:电路原理图................................................................................................ 14

附录B:PCB电路板图............................................................................................ 15

附录C:实物照片.................................................................................................... 16


基于单片机控制的智能交通灯设计

  专业班级:12机械制造及其自动化5班

姓名:**

指导教师:谢杰  陈锦儒

1         课题任务

要求用51单片机设计一个智能交通灯控制系统,使其能模仿城市十字路口交通灯的功能,并对满足特殊的控制要求。该系统的具体功能要求如下:  1.该控制系统能控制东西南北四个路口的红黄绿灯正常工作。东西和南北方向分时准行和禁行。  2.两垂直方向的准行时间均为30s,可以进行控制转换。  3.准行方向亮绿灯与禁行方向亮红灯最后5秒时,四个路口同时加亮一黄灯进行闪烁,以警告车辆及行人,准行方向与禁行方向即将改变。  4.四个道口均用数码管显示准行或禁行的剩余时间。  5.在交通情况特殊情况下可以通过K1、K2、K3按键对交通灯进行控制。 实现:  1)当有紧急情况发生时按下K1四个路口同时加亮黄灯进行闪灯(闪灯时间为5s)且倒计时显示关闭。黄灯闪烁完毕后四路口全变红灯禁行,处理紧急情况。  2)有某方向上车辆过多 ,可以使用K2、K3键控制东西或南北方向通行,另一方向禁行。按下控制键后先在四个路口加5s的黄灯闪烁。

交通状态

2         硬件电路设计

2.1       单片机的工作原理

    通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

2.2       交通灯的控制原理

    东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。

    通过具体的路口交通灯状态的演示分析可以把四个状态归纳如下:  (1)东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时30秒。此状态下,东西向允许通行,南北向禁止通行。  (1)东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。  (3)南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。此状态下,东西向禁止通行,南北向允许通行。  (4)南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

2.3       整个硬件系统的设计框图与工作原理

    通过车流量传感器对东西和南北两条通道的车流量的测量,将车流量信息以脉冲电平的方式传给单片机。单片机能通过程序运算得到两条通道车流量的大小来控制路口各方向的红绿灯时长,并由LED显示。以一个周期向传感器取一次数据。

    设计车流量传感器,一个对准东西方向取样,另一个对南北方向取样,分别取得两个代表东西和南北方向车流量a和b。用单片机巡回检测,并将他们进行比较。若二者相等则按一定时间间隔交替导通。若a>b,进入a方向绿灯延时程序。反之,进入b方向绿灯延时程序。该控制程序又根据具体的比例做时长的变换。这些工作全部由单片机完成。单片机通过接口得到a和b相对应的电压信号量,然后对其进行处理、分析和判断,改变信号灯输出时长,直接控制信号灯驱动电路,实现单片机对信号灯的智能控制。

    本系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值送显P0口和用P2口来选通LED数码管的显示导通,在此同时以50ms为周期,用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。该智能交通灯控制系统以四个状态为一周期循环。每满一个状态循环周期,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达到自动控制的目的。

2.4       硬件设计部分小结

    本章首先对单片机、车流量传感器和电源模块进行了选型,介绍单片机的内部结构及其工作原理。单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。

    本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模块接受输出。

    键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。  在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间一满足不同路况的需要。

3         软件系统设计

3.1       整个软件系统设计框图及流程图

软件系统设计框图

软件系统流程图

3.2       各软件单元的设计流程

    整个软件系统中包含了车流量采样程序设计、显示程序设计、定时器程序设计和软件延时。

    车流量采样程序主要功能是采样各路口的车流量,每次红灯转换成绿灯前两秒对路口车流量进行采样,然后根据采样后得到的车流量的大小来分配红绿灯的时间。

    交通灯的时间显示主要是通过数码管,本设计采用动态显示数码管。其流程图如图下图所示。

    定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:

                              TC=M-C 

式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。计算通式变为:  T=(M-TC)T0  模值和计数器工作方式有关。在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。这就是为什么扫描周期为50ms的原因,  若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。

    我们使用的单片机工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。  我们设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到。设定定时器需要定时50毫秒,故T0必须工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH.

3.3       软件设计部分小结

    本章主要对智能交通灯软件方面进行了介绍。主要包括了三个方面的软件设计思路及原理:交通灯主程序的设计,车流量采样程序的设计以及数码管显示程序的设计。最后概述了定时器原理和软件延时原理。

4         系统测试

4.1       硬件电路测试与分析

    本次课程设计电路板已经焊接完成后便进入到电路测试阶段。经过测试发现我的最小电路电路板并无异常,调试成功。但交通灯电路板则出现了好几个发光二极管以及数码管LED灯不亮的问题。在同学的建议下,我用万用表检测了电路板的线路并无发现断路问题,于是判断可能是虚焊。经过新一轮紧张激烈的焊接后,再次测试时,我的交通灯电路板上的问题总算烟消云散了。

 

4.2       软件系统测试与分析

    在程序编写过程中会遇到很多语法问题,符号问题,调用差错问题,通过仔细修改以及同学们的热心帮助都得到了解决。以下是所用的单片机程序:

 #include<reg52.h>

 #define uchar unsigned char

 #define uint unsigned int

 #define zrun_sta1 0xcf              //灯的显示状态,对应p3端口

 #define zrun_sta2 0xd7

 #define zrun_sta3 0xb7

 #define zrun_sta4 0xbb

 sbit wei1=P1^0;        //定义数码管的端口

 sbit wei2=P1^1;

 sbit wei3=P1^2;

 sbit wei4=P1^3;

 uchar code seg7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};  //数码管的查表指令

 uchar dxtime,nbtime,count,sec;

 void delayms(uint xms)       //延时函数

   {

    uint i,j;

  for(i=xms;i>0;i--)

      for(j=110;j>0;j--);

  }

 void display(uchar nbtime,uchar dxtime)   // 数码管显示函数

   {

    uchar shi,ge;

  shi=nbtime/10;          //显示十位时间

  ge=nbtime%10;       //显示个位时间

  P0=seg7[shi];

  wei1=0;

  delayms(5);       //延时5秒

  wei1=1;

  P0=seg7[ge];

  wei2=0;

  delayms(5);     //延时5秒

  wei2=1;

     

  shi=dxtime/10;        //显示十位时间

  ge=dxtime%10;     //显示各位时间

  P0=seg7[shi];

  wei3=0;

  delayms(5);         //  延时5秒

  wei3=1;

  P0=seg7[ge];

  wei4=0;

  delayms(5);         //延时5秒

  wei4=1;

  }

 void regu_run()   //交通灯的变化状态

   {

    if(sec<25)

    P3=zrun_sta1;      //交通灯控制端口

    else if(sec<30)

      P3=zrun_sta2;

      else if(sec<55)

          P3=zrun_sta3;

          else if(sec<60)

            P3=zrun_sta4;

   display(nbtime,dxtime);

   }

       void main()      //主函数,中断函数

   {

    P2=0xff;

  TMOD=0x01;

  TH0=(65536-50000)/256;

  TL0=(65536-50000)%256;

  EA=1;    // 开中断

  ET0=1;

  sec=1;

  nbtime=30; //数码管显示初始时间

  dxtime=25;

  TR0=0;

  while(1)

      {

     TR0=1;

       regu_run();

      }

      }

       void timer0_int() interrupt 1   // 中断函数

         {

          TH0=(65536-50000)/256;  //定义初始时间为50毫秒

        TL0=(65536-50000)%256;

        count++;

 

        if(count==20)        //定时时间为一秒

          {

           sec++;             //时间加

           nbtime--;          //时间减

           dxtime--;

        if(sec==60)     // 交通灯一个周期内的变化状态

          {

           sec=0;

           nbtime=30;

           dxtime=25;

          }

         if(sec==25)            //     绿灯25秒

           {

             dxtime=5;                        

           }

         if(sec==30)           //红灯30秒

           {

            dxtime=30;

            nbtime=25;

           }

          if(sec==55)           //黄灯5秒

           {

            nbtime=5;

            }

            count=0;

            }

            TR0=1;

            }

4.3       整机测试与分析

    在成功完成了系统的硬件电路测试与软件系统测试后,我便进行了下一步的整机测试。但结果并不是像我想象的那么美好。烧录了程序的系统里,发现有一排发光二极管不会随着数码管的动态显示来进行亮和灭的转换,并且一直都是处于不亮的状态。经过反复检查后发现其中一个发光二极管松动,于是我又将出故障的那排发光二极管焊了一遍。再次检测,总算是成功了。

4.4       测试部分小结

    本部分对整个系统进行了硬件、软件和整机的测试。其中硬件部分测试成功的前提是电路板焊接完整正确,否则会在后期给自己带来很多不必要的工作。软件部分则要求我们会写并读懂程序,还要学会程序载入工具的使用。整机测试是在硬件和软件测试都成功完成的条件下进行的,以确保整个系统符合我们设计要求。

5         总结

    交通灯控制在交通运输领域有着非常重要的作用。本课程设计完成了基于单片机的交通灯控制系统的设计。包括通行方案的设计,系统的硬件开发和软件编程等。在论文完成过程中,主要做的工作有:

(1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配,以及要求其他多功能的实现。 

(2)以单片机为核心进行系统硬件设计,输入量包括:车流量,按键状态和违规检测传感信号;输出控制交通信号灯亮灭状态及时间,以及LED数码管倒计时显示。

 (3)在车流量检测系统中采用模糊控制方法,这需要知道被控对象的数学模型,进行清晰化,具体化。因此,必须实施调查确定车流量少,中,多所要求的具体数量,然后经过单片机控制器的相关算法及处理确定红绿灯亮灭时间。

    系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现 。

    通过这次的课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。这次的单片机课程设计,还使我加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为自己的东西。设计结果能够符合题意,成功完成了此次实践操作,我们不只在乎这一结果,更加在乎的是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。在此,忠心感谢老师以及许多同学的指导和支持。我会继续努力的学习,大胆创新,使自己得到更大的提升。

附录

附录A:电路原理图

最小电路

交通灯

附录B:PCB电路板图

最小电路

交通灯

附录C:实物照片

更多相关推荐:
单片机课程设计报告范例

单片机课程设计示例交通灯控制系统设计一总体设计1设计要求交通灯的任务要求为模拟十字路口的交通灯的亮灭及闪烁基本工作原理根据交通灯的亮灭情况可以分为四种状态利用定时计数器每20秒产生一次中断每产生一次中断后由是否...

单片机课程设计报告书模板

西南科技大学20xx级微机原理与接口技术课题名称姓名学号系部专业指导教师课程设计报告微机原理与接口技术制造科学与工程学院20xx年月日院1目录一绪言1二系统设计121系统整体流程图122日历时钟的控制方案论证1...

单片机课程设计报告

河南理工大学《单片机应用与仿真训练》设计报告题目四路定时控制器姓名:学号:专业班级:电子信息工程指导老师:所在学院:电气工程与自动化学院20XX年1月08日摘要随着当今时代的发展,人们对生活水平的要求越来越高,…

单片机课程设计报告格式

单片机课程设计报告格式要求统一的A4纸打印。每页约44行,每行约34字;打印正文用宋体小四号字;版面页边距上空2.5cm,下空2cm,左空2.5cm,右空2cm;页码用小五号字,底端居中。A、封面;B、课程设计…

单片机课程设计报告格式新

单片机微机系统与接口课程设计报告论文题目3号宋体加粗居中专业班级姓名时间指导教师年月日课程设计任务书小三宋体1设计目的与要求5号黑体设计出一个简单的单片机键盘输入八段管输出系统准确地理解有关要求独立完成系统设计...

单片机课程设计总结报告参考模板

湖州师范学院求真学院课程设计总结报告课程名称单片机应用系统设计设计题目基于STC89C51的数字电子钟设计专业电子科学与技术班级080835姓名张静学号12指导教师李祖欣吴小红报告成绩求真学院信息与工程系二一一...

单片机课程设计报告模板

西安欧亚学院信息工程学院单片机课程设计说明书信息工程学院课程设计说明书论文题目单片机设计课程名称单片机课程设计专业电子信息工程班级统本电信1001学生姓名阮子权武泽旭邢哲设计地点3北603指导教师李敏设计起止时...

单片机课程设计报告

课程设计报告课程名称微机原理课程设计题目基于单片机的出租车计费系统设计学院环境与化学工程系过程装备与测控工程专业班级学号学生姓名起讫日期指导教师摘要出租车计价器是乘客与司机双方的交易准则它是出租车行业发展的重要...

单片机课程设计报告

课程设计报课程名称嵌入式系统原理与设计课题名称专业通信工程班级通信1001班学号姓名指导教师20xx年1月6日告湖南工程学院课程设计任务书课程名称嵌入式系统原理与设计课题电子琴专业班级通信工程1001学生姓名学...

单片机课程设计__电子密码锁报告

基于单片机控制的电子密码锁摘要本系统由单片机系统矩阵键盘LED显示和报警系统组成系统能完成开锁超时报警超次锁定管理员解密修改用户密码基本的密码锁的功能除上述基本的密码锁功能外还具有调电存储声光提示等功能依据实际...

单片机课程设计__电子密码锁报告

基于单片机控制的电子密码锁摘要本系统由单片机系统矩阵键盘LED显示和报警系统组成系统能完成开锁超时报警超次锁定管理员解密修改用户密码基本的密码锁的功能除上述基本的密码锁功能外还具有调电存储声光提示等功能依据实际...

单片机课程设计报告

单片机原理及应用课程设计报告书题目简易数字电压表的设计姓名汪剑专业电气工程及其自动化设计时间20xx年11月电子与信息工程学院目录1引言111设计意义112系统功能要求12方案设计221功能要求及设计目标122...

单片机课程设计报告模板(34篇)