首页天道酬勤51单片机交通灯的控制设计,基于51单片机的智能交通灯设计

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

admin 05-13 04:36 272次浏览

课程设计任务书与成绩课程名称单片机课程设计

主题信号灯控制设计

了解课程设计目标和任务、计划和进度计划:实践教学要求和任务: 1、信号机的基本工作原理;

2、通过Proteus仿真实现信号控制

3、用Keil C51编程实现上述功能

4、用Keil与Proteus同步。

检索工作计划和进度安排: 17周相关资料。

18周详细设计。

进行19周的手续测试,写论文,进行答辩。

引言交通事业蓬勃发展,交通量逐年增加,大、中、小城市汽车、摩托车等各种车辆日益增加,道路交通繁忙,经常存在严重的拥堵现象,特别是在交叉口,汽车、非汽车、行人来往非常混乱。 这是为了在交叉口各主干道实现合理的科学分流。 本人提出了一种用STC89c51单片机自动控制交通信号灯和时刻显示的方法,同时给出了软硬件实现方法,为交通指挥自动化提供了新的廉价手段,具有一定的推广意义。 本文介绍了控制的基本原理和控制的表现,同时论述了城市交通信息系统的设计目标、开发途径及其系统结构和功能与数据地理编码、库的建立,同时论述了系统中交通现状、交通管理、交通规划和背景信息查询模块的建设与应用。 介绍了一种用于城市交叉口的可编程三色交通信号时间指示器的研制方案,为其供电、发光二极管结构负载结构、灯色时间检测提供了精致合理的优化结构,大大提高了产品可靠性,降低了制造成本。

2 APP应用介绍2.1 C语言介绍c语言是贝尔研究所的惠普hpdbh Ritchie于1972年基于b语言研发的。 第一种c语言被识别为UNIX操作系统的开发语言。 此后贝尔研究所进行了多次c语言的改进和版本的发布,c语言的优点引起了人们的普遍注意。 随着UNIX操作系统在各种机器上的广泛使用,c语言迅速普及。 1978年,美丽的行人W. Kernighan和惠普hpdbh M. Ritchit共同出版了一本书,名为《The C Programming Language》。 这本书深刻影响了c语言的发展,是后来c语言版本的基础,被称为标准c。 此后,c语言在各种计算机上迅速普及,出现了许多c语言版本。

2.2 Keil C51 Keil C51是美国Keil Software公司生产的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能、结构、可读性、可维护性方面具有明显的优势,因此学Kil提供了完整的开发方案,包括c编译器、宏程序集、链接器、库管理和强大的仿真调试器,这些部分在集成开发环境(Vision )中组合在一起。 运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

2.3 Proteus Proteus软件是由英国lab center电子公司出版的EDA工具软件。 它不仅可以模拟其他EDA工具软件的功能,还可以模拟单片机和外围设备。 这是目前比较好的模拟单片机和外围设备的工具。 目前,国内刚刚开始普及,但很受单片机爱好者、从事单片机教学的教师和致力于单片机开发应用的科技人员的欢迎。 Proteus是英国著名的EDA工具(模拟软件),从原理图布局、代码调试到单片机与外围电路协同模拟,一键切换到PCB设计,真正从概念到是目前世界上唯一集电路仿真软件、PCB设计软件和虚拟模型仿真软件于一体的设计平台,其处理器型号为8051、HC11、pic10/12/16/18/24/30、dspp 在2010年又增加了的编译方面,也支持IAR、Keil、MATLAB等许多编译器。

3硬件资源介绍3.1单片机介绍单片机(MCU )又称单片机控制器,是将一个计算机系统集成在一个芯片上,而不是完成某种逻辑功能的芯片。 概括地说,一个芯片就是一台计算机。 体积小、重量轻、价格便宜,为学习、应用、开发提供了便利的条件。 另外,学习单片机的使用是了解计算机原理和结构的最佳选择。

现在单片机已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的痕迹。 导弹导航装置、飞机上各种仪表的控制、计算机的网络通信和数据传输、工业自动化过程的实时控制和数据处理、各种广泛使用的智能IC卡、民用豪华轿车的安全保障系统、视频、摄像机更不用说自动控制领域的机器人、智能仪表和医疗器械了。 因此,单片机的学习、开发和应用将成为计算机应用和智能化控制的科学家、工程师。

3.2 89C51概述89C51具有4K字节的闪存可编程只读存储器(fpe rom-flashprogrammableanderasablereadonlymemory ) )的低电压、高性能CMOS8位麦克风单片机的可擦除只读存储器可以重复擦除100次。 该器件采用ATMEL高密度非易失性存储器制造技术制造,与工业标准的MCS-51指令集和输出引脚兼容。 因为

将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 89C51 是一种高效微控制器,89C2051 是它的一种精简版本。

3.3 89C51 单片机的片内逻辑结构

3.4 89C51 硬件资源

(1)微处理器(CPU):一个 8 位 CPU。
(2)数据存储器(RAM):片内为 128B,片外最多可外扩 64KB。
(3)程序存储器(4KB Flash ROM):片内为 4KB,片外最多可外扩程序存储器至 64KB。
(4)4 个 8 位可编程并行 I/O 口(P0、P1、P2、P3),1 个全双工的串行口。
(5)定时器/计数器:片内有 2 个 16 位的定时器/计数器,具有 4 种工作方式。
(6)中断系统:具有 5 个中断源,2 级中断优先级。
(7)特殊功能寄存器(SFR): 共有 21 个特殊功能寄存器,用于 CPU 对片内各功能部件进行管理、控制和监视。
(8)1 个看门狗定时器(WDT)。

3.5 89C51 的引脚图

(1)P0 口:8 位,漏极开路的双向 I/O 口。
(2) P1 口:8 位,准双向 I/O 口,具有内部上拉电阻。
(3)P2 口:8 位,专为用户使用的准双向 I/O 口,具有内部上拉电阻。
(4)P3 口:8 位,准双向 I/O 口,具有内部上拉电阻。也可作为普通的 I/O 口使用。除此之外,P3 口还有第二功能的定义。

4 设计课题

交通灯控制设计:
1.了解一个十字路口交通灯基本工作原理,要求分主次干道,并加入倒计时功能
2.用Keil C51编程实现上述功能
3.用Proteus模拟实现十字路口交通灯控制电路。
4.用Keil与Proteus联调

5.方案设计 5.1交通灯四种通行模式及行车方向指示

按照简单的交通路口规则,有四种模式

南北绿灯亮 东西红灯亮南北黄灯闪 东西红灯亮南北红灯亮 东西绿灯亮南北红灯亮 东西黄灯闪

5.2 交通灯控制系统

实用交通灯控制系统主要CPU控制模块为了、信号灯显示模块、倒计时显示模块等组成,如下图所示:

其中控制模块是最核心的部分,控制核心采用AT89C51单片机,利用AT89C51单片机内部定时器实现交通指示灯控制的计时功能,在正常情况下产生相应的控制信息控制倒计时显示电路,信号灯显示电路的正常运行。
信号灯显示模块采用四个集成交通指示灯来模拟红、黄、绿交通指示灯,用单片机的P1口控制发光二极管的亮灭状态。
倒计时显示模块的接口电路有静态显示和动态显示两种方式,由于动态显示方式在仿真软件中不易于查看,所以本次采用静态显示方式,这种方式优点是易于操作,缺点是浪费单片机接口资源。
为了倒计时更加准确,采用外加晶振电路方法实现其功能。

6硬件系统设计 6.1 信号灯显示模块

由于南北方向的信号灯始终是同一种状态,所以南北信号灯为一组,只需将对应的信号灯并联即可,东西方向同理。

6.2 倒计时显示模块

选取8个7段数码管分别模拟显示四个方向的倒计时,数码管采用共阴极接法。
为了提高P0、P2端口的电流输出能力,保证数码管亮度,保护端口引脚,在P0端口与数码管之间增加了74LS245芯片。

6.3 复位模块

此系统可以通过复位按键实现从新工作,电路图如图所示:

7软件系统设计 7.1 中断服务程序框图

7.2 主程序框图


7.3 程序代码

#include<reg51.h>sbit g1=P1^0; //位定义sbit r1=P1^1; sbit y1=P1^2; sbit g2=P1^3; sbit r2=P1^4; sbit y2=P1^5; unsigned char f=0;unsigned char nanbei_time=15; //定义南北的时间长度unsigned char dongxi_time=11; //定义东西的时间长度unsigned char m; unsigned char code t[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F}; void init_timer0(void) //中断初始化函数{ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; EA=1; TR0=1; } void display(unsigned char x) { unsigned char m,n; m=x/10; n=x%10; P0=t[m]; P2=t[n]; } void timer(void) interrupt 1 using 1 //中断服务函数{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; f++; if(f==20) { f=0; m--; }}void main() {m=nanbei_time; P1=0x00; init_timer0(); while(1) { do { display(m); g1=1; r1=0; g2=0; r2=1; } while(m!=3); do { if(m<=3) { y1=~y1;r1=0;g1=0; r2=1;g2=0; } display(m); r1=0; g2=0; r2=1; } while(m!=3); do { if(m<=3) { y1=~y1;r1=0;g1=0; r2=1;g2=0; } display(m); }while(m!=0);if(m==0){ m = dongxi_time;y1 = 0;y2 = 0; }do{display(m);g1 = 0;r1 = 1;g2 = 1;r2 = 0;}while(m!=3);do{ if(m<=3) { r1=1,g1=0; y2=~y2,r2=0,g2=0; } display(m); }while(m!=0); if(m==0) { m=nanbei_time; y1=0; y2=0; } }}

8 电路仿真


开始仿真:



9设计总结
通过这次单片机课设,我不仅学到了许多新的知识,而且加深了我对以前学习的理论知识的掌握。以前我们学的东西仅限于课本,对实实在在的应用还比较模糊,这次课程设计有利于同学们学习目的的明确性和主动性。通过这次课程设计,我们知道了哪些东西是应该确实掌握的,在实践中填充我理论知识的不足,可以将理论很好地应用到实际当中去。
10参考文献
1.《单片机原理及接口技术》 ngdxtd刚 人民邮电出版社
2.《单片机课程设计指导书》 皮大能 北京理工大学出版社

Java自学方向指引SpringSecurity注销怎么设置怎么用Java比较两个对象的大小从 0 搭建 Vite 3 + Vue 3 前端工程化项目见缝插针游戏的实现途径程序员网吧写代码挨顿打?网友:想笑死我继承我的花呗?php怎样形成绝不重复字符串数组Springmvc完成ajax功能实例详解rpm包构建
交通信号灯plc控制系统设计,交通灯控制系统设计的毕业论文 简易交通灯控制系统的设计,交通灯单片机课程设计报告
相关内容