《基于ARM的交通灯设计终极版.doc》由会员分享,可在线阅读,更多相关《基于ARM的交通灯设计终极版.doc(21页珍藏版)》请在三一办公上搜索。
1、成绩 _指导教师评定成绩: 审定成绩: 课程设计报告设计题目: 基于ARM的交通灯设计学 校: 学 生 姓 名: 专 业: 自 动 化 班 级: 学 号: 指 导 教 师: 嵌入式系统课程设计任务书供11级自动化系学生用引言:嵌入式系统课程设计是自动化专业的一个重要教学环节,既有别于毕业设计,又不同于课堂教学。它需要学生统筹运用所学各个专业的基本理论、基本方法对现实生活中的实际问题进行设计和调试。一、 设计题目:基于ARM的交通灯设计掌握嵌入式系统设计的基本方法,熟悉S3C24X0的开发环境及软硬件的调试过程,了解S3C24X0芯片各个引脚功能,工作方式,计时/定时,I/O口,中断等的相关原理
2、,根据控制要求进行编程,解决十字路口交通灯控制的问题。巩固和加深对理论课中知识的理解,提高对所学知识的综合运用能力。二、 系统工作过程说明车辆遇到红灯停绿灯行的行走情况,红绿灯时间均为60s,切换时间为10s,最后5s为黄灯闪烁。利用S3C24X0 ARM芯片实现单路交通灯的控制: 实现红、绿、黄灯的循环控制。使用红、黄、绿三种不同颜色的LED灯实现此功能,人行道用红、绿两个灯控制,用软件控制灯的亮与灭来控制车辆和行人的通行。 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行并出实现。 南北方向控制车辆的绿灯熄灭的同时,控制蜂鸣器响2秒来作为警报。ARM9 2440芯片原理图:
3、交通路口示意图如下图:设计内容:(1)完成S3C24X0最小系统的硬件电路设计,并用Protel DXP设计电路原理图;(2)完成交通指示灯控制程序代码设计,在实验箱上调试并且能正常工作。三、 设计步骤:(1)对系统进行需求分析;(2)初始化配置(各种寄存器);(3)编写各种相关的中断程序并在主函数中调用这些程序;(4)编译程序;(5)使用仿真器进行调试。摘 要在高度信息化智能化的代,我们的生活中有很多使用到ARM嵌入式技术的地方,比如我们使用的手机操作系统,如Android OS、iOS等。随着微电子技术和计算机技术的发展,其控制芯片的功能越来越强大。对于现在社会车辆的增多,交通问题已经是现
4、在一些大城市所面临的严重问题,交通信号灯在这中间起着重要的疏导交通的作用。对于交通灯的控制,可以有很多种方法。在嵌入式应用广泛的时代,当让也少不了基于ARM嵌入式设计的交通灯。关键词:ARM,交通灯,控制 ABSTRACTIn the highlyintelligent information technologyera,ourlife has a lot ofto use ARMembedded technologyareas,such aswe usemobile phone operaing system, such as AndroidOS,iOSetc.With the develo
5、pmentof microelectronics and computer technology,andthe control chipofthe more powerful features.For nowthe socialincrease of vehicles,the traffic problem has alreadyis a serious problem nowfacingsomebig cities,traffic signal lampplays an importanttraffic rolein the middle.Forthe control of traffic
6、lights,can have many kinds of methods.In the embeddedapplication ofpopular era,whenlittle also notbased on the trafficlightsARM embedded design.Keywords:ARM,Traffic light,Control 目 录ABSTRACT- 2 -一、绪论- 3 -1.1、设计目的- 3 -1.2、设计内容- 3 -1.3、要实现的目标- 3 -二、系统分析及硬件设计- 4 -2.1、S3C2440芯片介绍- 4 -2.2、系统电路设计- 6 -2.3、
7、电路原理图- 7 -三、系统软件设计- 8 -3.1、系统流程图- 8 -3.2、系统程序设计- 9 -四、系统调试- 11 -4.1软件调试- 11 -4.2硬件调试- 11 -总结- 12 -参考文献- 13 -附录- 14 -1、源程序- 14 -2、实物图- 17 -一、绪 论1.1、设计目的嵌入式系统课程设计是自动化专业的一个重要教学环节,为了使我们能够熟练运用所学知识,掌握嵌入式系统设计的基本方法,熟悉S3C24X0的开发环境及软硬件的调试过程,了解S3C24X0芯片各个引脚功能,工作方式,计时/定时,I/O口,中断等的相关原理,根据控制要求进行编程,解决十字路口交通灯控制的问题。
8、巩固和加深对理论课中知识的理解,提高对所学知识的综合运用能力。1.2、设计内容(1)完成S3C24X0最小系统的硬件电路设计,并用Protel DXP设计电路原理图;(2)完成交通指示灯控制程序代码设计,在实验箱上调试并且能正常工作。1.3、要实现的目标利用S3C24X0 ARM芯片实现单路交通灯的控制: 实现红、绿、黄灯的循环控制。使用红、黄、绿三种不同颜色的LED灯实现此功能,人行道用红、绿两个灯控制,用软件控制灯的亮与灭来控制车辆和行人的通行。 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行并出实现。 南北方向控制车辆的绿灯熄灭的同时,控制蜂鸣器响2秒来作为警报。二、系
9、统分析及硬件设计2.1、S3C2440芯片介绍S3C2440A基于ARM920T核心,0.13m的CMOS标准宏单元和存储器单元。低功耗,简单,精致,且全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构如先进微控制总线构架(AMBA)。S3C2440A的突出特点是处理器核心,是一个由Advanced RISC Machines(ARM)公司设计的16/32位ARM920T的RISC处理器。ARM920T实现了MMU,AMBA总线和哈佛结构高速缓冲体系结构。这一结构具有独立的16KB指令高速缓存和16KB数据高速缓存。每个都是由具有8字长的行(line)组成。通过提供一套完整的通
10、用系统外设,S3C2440A减少整体系统成本和无需配置额外的组件。综合对芯片的功能描述, S3C2440A集成的以下片上功能: 1.2V内核供电, 1.8V/2.5V/3.3V储存器供电, 3.3V外部I/O供电,具备16KB的指令缓存和16KB的数据缓存和MMU的微处理器 外部存储控制器(SDRAM控制和片选逻辑) LCD控制器(最大支持4K色STN和256K色TFT)提供1通道LCD专用DMA 4通道DMA并有外部请求引脚 3通道UART(IrDA1.0,64字节发送FIFO和64字节接收FIFO) 2通道SPI 1通道IIC总线接口(支持多主机) 1通道IIS总线音频编码器接口 AC97
11、编解码器接口 兼容SD主接口协议1.0版和MMC卡协议2.11兼容版 2通道USB主机/1通道USB设备(1.1版) 4通道PWM定时器和1通道内部定时器/看门狗定时器 8通道10位ADC和触摸屏接口 具有日历功能的RTC 摄像头接口(最大支持40964096像素输入;20482048像素输入支持缩放) 130个通用I/O口和24通道外部中断源 具有普通,慢速,空闲和掉电模式 具有PLL片上时钟发生器2.1.1、系统结构主要由两大部分构成:ARM920T内核及片内外设。(1)ARM920T内核由三部分:ARM9内核ARM9TDMI、32KB的Cache、MMU。图2-1 ARM920T内核(2
12、)片内外设图2-2 ARM920T内核分为高速外设和低速外设,分别用AHB总线和APB总线。图2-2 S3C2440外设2.2、系统电路设计2.2.1总体设计框图用ARM9系列S3C24X0芯片作为系统的主控芯片,控制交通灯的循环点亮并显示灯亮时间(采用倒计时显示),当定时时间到的时候控制蜂鸣器响来提醒人们注意红绿灯的状态。S3C2440最小系统倒 计 时 显 示交 通 灯 循 环蜂鸣器图2-3 S3C2440最小系统 2.2.2系统电源电路:本电源运用5V的直流电源(图4.2所示)。通过电源管理芯片将5V电压转换为3.3V电压,为S3C2440芯片供电,S3C2440芯片所能承受的电压范围是
13、3V3.6V。图2-4 直流电源电路设计2.2.3蜂鸣器设计:将蜂鸣器正极端接电源,负极端通过三极管接地,三极管基极通过电阻接到芯片的引脚上。图2-5 蜂鸣器电路连接图2.3、电路原理图图2-6 S3C2440芯片原理图三、 系统软件设计3.1、系统流程图系统流程图 中断服务程序流程图 开始 系统保护现场 Y 定时器Delay初始化 10=Flag60 车道红灯50S N 初始化中断,开 Y 中断 5=Flag10 车道黄灯亮5S N 交通灯显示倒计时 0flag5 Y 黄灯闪烁5S NN Flag=60 10=flag60 Y 车道绿灯60S 信号灯变换 N N 5=flag10 Y 黄灯亮
14、5S Flag=5 N Y 0=flag5 Y 黄灯闪烁5S N 控制蜂鸣器 中断返回 图3-1 系统流程图3.2、系统程序设计由南向北和由北向南车道各用一组红、绿、黄三色的指示灯,指挥车辆通行。绿灯是通行信号,面对绿灯的车辆可以直行,红灯是禁止通行信号,面对红灯的车辆必须在路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以继续行进。具体红绿灯时间分配时间如表3-1所示。50s5s5s50s5s5s南北通道红灯亮黄灯亮黄灯闪绿灯亮黄灯亮黄灯闪人行道绿灯亮绿灯亮绿灯亮红灯亮红灯亮红灯亮表3-1 时间分配表由于试验箱没有红黄绿三色LED灯,
15、只有一组8个红色LED灯,所有就用如下LED灯来模拟交通信号灯。图3-2 实验箱LED灯LED18、LED17分别为人行道红灯、绿灯;LED16、LED15、LED14分别为南向北的一组红灯、黄灯、绿灯;LED13、LED12、LED11分别为北向南的一组绿灯、黄灯、红灯;北向南马路南向北马路人行道图3-3 LED灯模拟交通灯根据红绿灯是时间分配表可以看出,红绿灯有六个状态:状态人行道南向北马路北向南马路16进制1011000010x612010100100x523010000000x40000100100x124100011000x8c5100100100x926100000000x8000
16、0100100x12表2 信号灯16进制模拟状态1:马路红灯亮,人行道绿灯亮;状态2:马路黄灯亮,人行道绿灯亮;状态3:马路黄灯闪,人行道绿灯亮;状态4:马路绿灯亮,人行道红灯亮;状态5:马路黄灯亮,人行道红灯亮;状态6:马路黄灯闪,人行道红灯亮。由于本本实验系统采用的是动态显示接口,其中数码管扫描控制地址为0x20006000,位0-位5位分别对应一个数码管,将其中某位清0来选择相应的数码管,地址0x20007000,为数码管的数据寄存器。数码管采用共阳方式,向该地址写一个数据就可以控制数码管的显示。所有我用如下代码来显示数码管的倒计时。for(j=0;j10;j+)for(n=0;n150
17、;n+ )*(U8*) 0x20007000) = 0xfd;*(U8*) 0x20006000) = num1i;Delay (1);*(U8*) 0x20007000) = 0xfe;*(U8*) 0x20006000) = num2j;Delay (1); 四、系统调试4.1软件调试打开ADT TDE软件新建工程文件,输入源程序,配置环境变量。步凑如下:(1)编译源程序,查看编译是否通过,不通过就检查错误;(2)使用Debug调试。图4-1 软件调试4.2硬件调试(1)打开CVT-2440实验箱电源,连接PC。(2)在ADT IDE上使用远端连接CVT-2440实验箱。(3)连接成功后,
18、下载源程序到实验箱;运行程序。(5)观察实验箱,是否实现相应功能,如没有,重复软件调试和硬件调试。图4-2 硬件调试总结通过两周的ARM嵌入式课程设计,使我在理论的基础上加强了实践。从只学理论的空空的感觉,到自己亲自动手设计,校验等一系列实验室操作和各种测试,夯实了理论基础。这一次的课程设计使我理论知识上有了更多的收获,既复习了ARM嵌入式课程相关的有关理论知识,又增长了嵌入式系统设计的能力。做到了学以致用。我觉得这次的课程设计的出发点和落足点都是很好的,让我们在把理论付诸于实践的过程中,复习了知识,又动手实践一番。课程设计锻炼了我们学生的能力,包括找资料,独立解决问题等。这次课程设计总之使我
19、受益匪浅的。课程设计是我们专业课程知识综合应用的实践训练,是为我们以后工作打下一个基础,让我们自己独立设计完成有关工作,锻炼个人能力。学以致用才是真本事,我们不光要知道为什么,还要知道怎么做,这就是我们学习的目的,很明显,这次课程设计就是让我们知道为什么,怎么做。由于本人的设计能力有限,在设计过程中难免出现错误和不足,还请老师们多多指教。参考文献1 朱恺. 嵌入式系统基础M. 北京:机械工业出版社, 2014.4.2 赖晓晨, 原旭, 等. 嵌入式系统程序设计M. 北京:机械工业出版社, 2009.3 邱铁. ARM嵌入式系统结构与编程M. 北京:清华大学出版社, 2014.12.4 徐端全.
20、 嵌入式系统原理与设计M. 北京:北京航空航天大学出版社, 2009.08.5 张晨曦, 韩超, 沈立, 等. 嵌入式系统教程M. 北京:清华大学出版社, 2012.12.附录1、源程序#define U8 unsigned charunsigned char num16=0x92,0x99,0xb0,0xa4,0xf9,0xc0;/5-0 unsigned char num210=0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0;/9-0void Delay(int time);/延时程序初始化void led(void)while( 1 )
21、int i,j,n;for(i=0;i5 ; i+) /马路红灯亮50S*(U8*) 0x20005000) = 0x61;for(j=0;j10;j+)for(n=0;n150;n+ )*(U8*) 0x20007000) = 0xfd;*(U8*) 0x20006000) = num1i;Delay (1);*(U8*) 0x20007000) = 0xfe;*(U8*) 0x20006000) = num2j;Delay (1);Delay (1);*(U8*) 0x20005000) = 0x52;for(j=0;j5 ; j+) /马路红灯亮,人行道绿灯 5Sfor(n=0;n150
22、;n+ )*(U8*) 0x20007000) = 0xfd;*(U8*) 0x20006000) = 0xc0;Delay (1);*(U8*) 0x20007000) = 0xfe;*(U8*) 0x20006000) = num2j;Delay (1);for(j=5;j10 ; j+) /马路黄灯闪5sDelay (1);for(n=0;n150;n+ )*(U8*) 0x20005000) = 0x40;*(U8*) 0x20007000) = 0xfd;*(U8*) 0x20006000) = 0xc0;Delay (1);*(U8*) 0x20007000) = 0xfe;*(U
23、8*) 0x20006000) = num2j;Delay (1);*(U8*) 0x20005000) = 0x52;for(i=0;i2 ; i+) /马路绿灯亮50s*(U8*) 0x20005000) = 0x8c;for(j=0;j10;j+)for(n=0;n150;n+ )*(U8*) 0x20007000) = 0xfd;*(U8*) 0x20006000) = num1i;Delay (1);*(U8*) 0x20007000) = 0xfe;*(U8*) 0x20006000) = num2j;Delay (1);Delay (1);*(U8*) 0x20005000) = 0x92;for(j=0;j5 ; j+) /马路黄灯亮,人行道红灯亮5sfor(n=0;n150;n+ )*(U8*) 0x20007000) = 0xfd;*(U8*) 0x20006000) = 0xc0;Delay (1);*(U8*) 0x20007000) = 0xfe;*(U8*) 0x20006000) = num2j;Delay (1);for(j=5;j10 ; j+) /马路黄灯闪5sDelay (1);for(n=0;n0;time-);for(i=0;idelayLoopCount;i+);2、实物图
链接地址:https://www.31ppt.com/p-2392702.html