交通等控制系统(C语言)
更新时间:2024-04-24 05:49:01 阅读量: 综合文库 文档下载
单片机课程设计
设计内容:基于单片机的交通控制系统
系 别:机械工程学院 班 级: 学生姓名:
学 号: 指导老师: 成 绩:
2012年5月
引言
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频
繁,这点更是体现的淋漓尽致。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为核心器件来使用,以实现各项功能。
本设计就是采用AT89S52单片机为中心器件来设计交通灯控制器,实现了智能控制功能。
1
2 设计任务及总体方案
2.1 设计任务及要求
利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄
灭,并且用4只LED数码管显示十字路口两个方向的剩余时间。具体设计要求如下。
十字交叉路口的交通灯控制系统的
2
结构如图1.1所示。
往南和往北的信号一致,即红灯(绿灯或黄灯)同时亮或同时熄灭。用两个
数码管来显示被点亮的指示灯还将点亮多久。往东和往西方向的信号一致,其工作方式与南北方向一样,也采用两个数码管来倒计时。当南北方向为绿灯和黄灯时,东西向的红灯点亮禁止通行;而东西方向为绿灯和黄灯时,南北向的红灯点亮禁止通行。
假设南北方向为主干道,通行时间为40秒,东西方向是次干道,通行时间
为40秒,黄灯点亮的时间均为5秒,则其工作方式如下表所示循环点亮信号灯。
交通信号灯工作模式 南北向 绿灯亮40秒 东西向 红灯亮45秒 绿灯亮40秒 2.2 总体方案介绍:
本系统电路由单片机AT89S52、复位电路、时钟电路、数码管显示电路以及发光二级管显示电路构成,逻辑框图如下图所示。
黄灯亮5秒 红灯亮45秒 黄灯亮5秒 复位电路 单 片 发光二极管时钟电路 机 数码管显示
3
各相应组成部分提供定时信号,使得相应的发光二极管和数码管显示。
3 硬件系统的设计
3.1 AT89S52简介
AT89S52单片机是一种低功耗、高性能CMOS 8位微控制器。它具有以下主要标准功能: 8KB可重复编成的Flash存储器, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,8个中断向量源,全双工串行口。它采用单一+5V电源。
其I/O口分别为P0、P1、P2和P3,其中P0
口作通用I/O接口时必须接上上拉电阻;P1口是准双向口,只能作通用I/O接口使用;P2口可作
通用I/O接口和高8位地址线;P3口不仅可作准双向I/O接口使用,而且每一根线都具有第二功能。本设计中,只用了P0、P1和P2口,它们都作通用I/O口使用。
3.2 时钟电路
如图所示,本设计采用内部时钟产生方式,在XTAL1和XTAL2两端跨接12Mhz的石英晶振和两个30pF的振荡电容,构成始终电路。
4
3.3 复位电路
本设计用RC元件构成外部复位电路,因为RC时间常数应大于两个机器周期,所以电容选取10uf,电阻选取1k和200欧姆。复位方式有两种:上电复位和按钮复位。本设计采用按钮复位方式,电路图如右图所示。
3.4 LED数码管显示模块
本设计中LED数码管显示模块电路如下图所示,其中D0、D1数码管显示南北向时间,D2、D3数码管显示东西向时间。
5
本设计所用LED数码管显示器是共阴极8段式数码管,其内部8段发光二极管的阴极端连接在一起,阳极端分开控制,使用时公共端接地,因此,点亮发光二极管,只需给对应的阳极端送高电平。给数码管的各个引脚输入不同的8位二进制编码,可显示不同的数字或字符,这种二进制编码称为字段码。本设计所用共阴极数码管的字段码如下图所示。
显示字符的共阴极字段码
显示字符 0 1 2 3 4 5 6 7 8 共阴极字段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6
9 6FH
LED数码管在显示时,通常有静态显示方式和动态显示方式两种。
静态显示结构简单,操作方便,要显示某个数字,直接在I/O线上发送相对
应的字段码,但是一个数码管就需要8根I/O线,而本系统中数码管数量较多,需要占用的I/O线很多;动态显示所用的I/O接口信号线少,线路简单,因此本系统选用动态显示方式。四个数码管的段选线并接在一起通过P0口控制,它们的公共端不直接接地,每个数码管的公共端分别与一根I/O口项链,通过P2口控制。动态显示的工作原理是4个数码管轮流显示相应的数字,一次循环完毕后,下一次循环又这样轮流显示,由于人的视觉暂留效应,循环的周期太快,只有几十微秒,所以看起来所有的数码管是一起显示的。并在P0口接7407芯片,起到缓冲的作用,使得系统更加稳定。
3.5 红绿灯显示模块
本系统红绿灯显示电路如图所示。其中R1、Y1、G1分别表示南北红、黄、
绿灯,R2、Y2、G2 分别表示东西红、黄、绿灯。
本系统采用共阴极结构发光二极管,6段发光二极管的阴极端连接在一起,阳极
7
端分开控制,使用时公共端接地,要使哪根发光二极管点亮,则对应得阳极端接高电平。由P1口控制,输入对应字段码,显示对应的发光二极管。 3.6 系统电路图
系统电路图见附录二。
4 软件系统的设计
4.1 软件设计分析
为了增加程序的可读性,理清程序的编写思路,程序采用模块化结构,本系统按以下几个模块编写程序:
① 主程序模块: 初始化程序,RAM清零,子程序的调用。
② 延时子程序模块:产生1ms延时信号,循环调用1000次完成1秒钟延时,循环调用500次完成0.5秒定时。
③ 显示子程序模块:为12位LED动态显示提供驱动信号。P0口和P2口为数码管提供驱动信号,P0口送出段选码,P2口为位选码。
P1口输出字段码控制红绿灯亮灭:南北绿灯亮,东西红灯亮时
P1=001100B=0CH,同时数码管从40倒计时到00;南北黄灯闪烁,东西红灯亮,亮0.5S,P1=001010B=0AH,灭0.5S,P1=001000B=08H,同时数码管从05倒计时到00;南北红灯亮,东西绿灯亮时P1=100001B=21H,同时数码管从40倒计时到00;南北红灯亮,东西黄灯闪烁,亮0.5S,P1=010001B=11H,灭0.5S, P1=000001B=01H。
4.2 程序流程图
8
开始 程序初始化 南北绿灯亮,东西红灯亮,数码管显示时间,40s倒计南北黄灯闪烁,东西红灯亮,数码管显示时间,5s倒计时 南北红灯亮,东西绿灯亮,数码管显示时间,40s倒计南北红灯亮,东西黄灯闪烁,数码管显示时间,5s倒计时
4.3 系统程序 系统程序见附录
9
5 设计总结
为期十周的单片机课程设计已经接近尾声,这次的课程设计与以往的课程设
计安排有些不同,将时间分散到每周,而不像以往的集中在两周做,这样提高了课程设计的难度,也考验了我们的能力。在设计过程中,遇到了许多问题,在老师的指导下,以及靠查询图书馆资料克服了种种困难,最终顺利完成了设计。总体来说,这次的课程设计使我受益匪浅。
在设计过程中,遇到了许多问题。在开始的时候,设计硬件电路图,需要用
Protel软件,这个软件虽然以前接触过,但是用的很是不熟,尤其是在新建库文件的时候,但是在老师的指导下,我基本掌握了Protel的基本制图技巧。在做完硬件电路的基础上,我开始编制程序,我采用的是模块化编程方式,然后调用各子程序。由于以前学习理论知识的时候是学的用汇编语言编程,而这次课程设
10
计要求使用C语言编程,所以在编程的时候遇到了一些问题。在编制定时程序的时候,由于我对定时器这一块掌握的不是很透彻,因此选用延时程序代替定时程序,又因为延时程序不如定时器来得准,会有些误差,所以我用Keil软件内部调试方法,改变所赋初值,使得定时误差降到很小很小。诸如此类,小问题很多,但是最终都被克服。
通过这次的课程设计,我掌握了基本的C语言编程方法,也掌握了Protel
基本制图技巧和Keil软件的调试操作,这次课程设计,收获很大!最后,感谢老师十周以来的指导!
11
6 参考文献
1.谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2003
2.李建忠.单片机原理及应用.西安:西安电子科技大学出版社,2002 3.谭浩强.C语言设计(第2版).北京:清华大学出版社。1999
4.严天峰.单片机应用系统设计与仿真调试.北京:北京航空航天大学出版社,2005
5.张齐等.单片机应用系统设计——基于C语言编程.北京:电子工业出版社,2004 6.赵亮,侯国锐.单片机C语言编程与实例.北京:人民邮电出版社,2003
12
7 附录
7.1 附录一:系统程序 #include
#define uchar unsigned char void delay_1ms(uchar t) void scan(void) void scan_led(uchar k)
13
void scan_led40(void) void scan_led5(uchar x) charcode
LED_7[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//共阴极LED数码管的字段码
char code scan_con[4]={0x01,0x02,0x04,0x08};//4个LED数码管的位选码void delay_1ms(uchar t) //1ms延时程序
{ uchar i,j; for(i=0;i ; } void scan_led(uchar k) //数码管显示倒计时 { P2=scan_con[0]; P0=LED_7[k/10]; delay_1ms(1); P2=scan_con[1]; P0=LED_7[k]; delay_1ms(1); P2=scan_con[2]; 14 P0=LED_7[k/10]; delay_1ms(1); P2=scan_con[3]; P0=LED_7[k]; delay_1ms(1); } void scan_led40() { uchar m,n; for(m=40;m>0;m--) { for(n=0;n<1000;n++) { scan_led(m); } } } void scan_led5(uchar x) { uchar y; for(y=0;y<500;y++) { 15 scan_led(x); } } void scan() //显示程序 { uchar i,j; P1=0x0c; //南北绿灯亮,东西红灯亮 scan_led40(); for(i=5;i>0;i--) //南北黄灯闪烁,东西红灯亮 { P1=0x0a; scan_led5(i); P1=0x08; scan_led5(i); } P1=0x21; //南北红灯亮,东西绿灯亮 scan_led40(); for(j=5;j>0;j--) //南北红灯亮,东西黄灯闪烁 { P1=0x11; scan_led5(j); P1=0x01; 16 scan_led5(j); } } void main() { P0=0x00; //初始化 P1=0x00; P2=0x00; while(1) { scan(); //显示程序 } } 7.2附录二:系统原理图 17 7.3 附录三:元器件清单 18 序号 元件名 数量 1 AT89S52单片机 1 2 12Mhz晶振 1 3 30pf电容 2 4 10uf电解电容 1 5 按键 1 6 10k电阻 2 7 1k电阻 6 8 470电阻 8 9 发光二极管 6 10 7407芯片 1 11 8段共阴极LED数码管 4 19
正在阅读:
交通等控制系统(C语言)04-24
三亚公交车路线大全06-05
中年人的朋友观:远近随意,聚散随缘08-02
上市财务分析报告04-15
中学部20XX年秋季开学工作总结12-28
专题03 透镜-2022年中考物理试题分项版解析汇编(第01期)(原卷版)04-15
俄罗斯的反腐败国家计划03-20
二建实务考试记忆词条10-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 控制系统
- 语言
- 交通
- 2017-2023年中国城市集中供热市场运行形势分析及发展战略研究报
- 大连海事大学
- 南郑县茶叶产业发展情况调研报告
- 《计算机系统基础》实验指导书
- 合同信用制度
- 约翰福音查经讲义(授课)
- 大班科学活动教案 有趣的镜子
- 商丘生态市建设规划大纲 - 图文
- 安吉县教育考试中心文件
- 2018-2019优秀入党申请书3000字范文(4页)
- 2,耶和华的祭坛
- 作业8解答
- 古典音乐赏析选修课重点
- 综采队内部市场化制度x
- 小学英语知识点总结:名词所有格语法
- 2016年中央财政支持会计电算化专业建设总结报告考资料
- 代 表 队 名 单
- 保险精算学试题
- 西南大学《园林工程概预算》网上作业题及答案汇总
- 2016年专升本华工网络教育 - 高级语言程序设计C++ - 随堂练习参