十字路口交通灯控制.doc_第1页
十字路口交通灯控制.doc_第2页
十字路口交通灯控制.doc_第3页
十字路口交通灯控制.doc_第4页
十字路口交通灯控制.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统大作业十字路口交通灯控制一、设计目的:1了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O控制寄存器的设置方法;2掌握ARM7应用系统编程开发方法,能用C语言编写应用程序;3熟练掌握ADS1.2软件的使用以及PROTEUS仿真调试的方法;二、具体任务:1采用PROTEUS完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;2用ADS1.2编写C语言应用程序,完成十字路口交通灯控制;3采用PROTEUS将应用程序装载在LPC2106中,进行仿真验证。要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。三、基础知识1LPC2106/2105/2104特性简介 ARM7TDMI-S 处理器 ;128k 字节片内Flash 程序存储器,具有ISP 和IAP 功能。Flash 编程时间:1ms 可编程512 字节,扇区擦除或整片擦除只需400ms。 64/32/16K 字节静态RAM(LPC2106/2105/2104 )。极小封装:TQFP48 (7 7mm2)。 向量中断控制器控制中断; 双UART,其中一个带有完全的调制解调器接口。具有I 2C串行接口和 SPI 串行接口;两个定时器,分别具有4 路捕获/ 比较通道;多达6 路输出的PWM 单元;实时时钟;看门狗定时器 ;通用I/O 口 ; CPU 操作频率可达60MHz;双电源: CPU 操作电压范围:1.65V1.95V(1.8V8.3%) , I/O 电压范围:3.0V3.6V(3.3V10%) ; 两个低功耗模式:空闲和掉电;片内PLL 允许CPU 以最大速度运行,可以在超过整个晶振操作频率范围的情况下使用。 主要应用:Internet 网关 ;串行通信协议转换器 ; 访问控制 ; 工业控制; 医疗设备等。LPC2106/2105/2104 包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7 局部总线、与中断控制器接口的AMBA 高性能总线(AHB)和连接片内外设功能的VLSI 外设总线(VPB,ARMAMBA 总线的兼容超集)。LPC2106/2105/2104 将ARM7TDMI-S 配置为小端(little-endian)字节顺序。2LPC2106/2105/2104 存储器重新映射和BOOT BLOCK AHB 外设分配了2M 字节的地址范围,它位于4G 字节ARM 存储器空间的最顶端。每个AHB 外设都分配了16k 字节的地址空间。LPC2106/2105/2104 的外设功能(中断控制器除外)都连接到VPB 总线。AHB到VPB 的桥接将VPB 总线与AHB 总线相连。VPB 外设也分配了2M 字节的地址范围,从3.5GB 地址点开始。每个VPB 外设在VPB 地址空间内都分配了16k 字节地址空间。3引脚说明LPC2106/2105/2104封装为TQFP48 (7 7mm2), PROTEUS中的 LPC2106是DIP形式,下面以PROTEUS中DIP形式做管脚说明及使用介绍,其实管脚是完全一致的。(1)电源和地双电源:3.3V(管脚40、17)提供给I/O,1.8V(管脚5)提供给ARM7处理器地:管脚43、31、19、7(2)(管脚6)复位,复位电路设计参见上图。(3)RTC(26)K和DBGSEL(27),用作JTAG下载调试,如没有用到可以不接。(4)XTAL1(11脚)和XTAL2(12脚):外接晶振。(5)32个I/O口。4 管脚配置为GPIO下的几个寄存器设置 寄存器PINSEL0和PINSEL1的设置。LPC2106的I/O口全都是3功能复用端口,也就是说即可用作普通输入输出端口,又用作第2或第3种功能。设计人员可根据需要设置两个32位特殊功能寄存器PINSEL0和PINSEL1。PINSEL0对应引脚P0.0P0.15,PINSEL1对应引脚P0.16P0.31。都是寄存器中用两位来完成1根引脚的功能设置。例如:2 GPIO方向寄存器设置当管脚配置为GPIO 模式时,可使用该寄存器控制管脚的方向。任意管脚的方向位的设置必须与管脚功能一致。 输出置1寄存器IOSET当管脚配置为GPIO 输出模式时,可使用该寄存器从管脚输出高电平。写入1 使对应管脚输出高电平。 写入0 无效。如果一个管脚被配置为输入或第二功能,写IOSET 无效。 输出清零寄存器IOCLR当管脚配置为GPIO 输出模式时,可使用该寄存器从管脚输出低电平。写入1 使对应管脚输出低电平。 写入0 无效。如果一个管脚被配置为输入或第二功能,写IOCLR 无效。如果指定输出管脚在GPIO 输出置位寄存器(IOSET)和GPIO 输出清零寄存器(IOCLR)中的对应位都置位,那么管脚的输出电平取决于后写入的寄存器的值。例如: IOSET = 0x0000 0080 IOCLR = 0x0000 0080 P0.7 输出电平为低,因为写GPIO 清零寄存器在写置位寄存器之后。四、软件调试软件调试步骤如下:1. 启动ADS1.2,选择Codewarrior2. 新建工程项目,项目类型为ARM Executable Image,并在Project name下输入工程名3. 右键单击空白处,添加所需项目文档进工程,见下图,除main.c是用户自己编写的应用程序外,其余的文件都是LPC2106的启动代码,简单应用无需更改。4. 点击图标,进行工程相关设置 选ARM FORELF,用PROTEUS仿真必须选择。 设置代码起始地址(0x00000000)与数据起始地址(0x40000000) 设置程序入口地址 设置输出文件类型及文件名,用PROTEUS仿真必须选择INTEL 32 bit Hex文件类型,文件名可随意输入。全部设置完后点OK退出并保存设置。 联合编译,点图标。如无错误,会得到编译信息,并会生成自己命名的HEX文件。 将HEX文件加载在PROTEUS中的PC2106中运行。双击PROTEUS中的PC2106芯片,出现下面的对话框单击找到生成的HEX文件,然后点确定。HEX文件就加载到了芯片中。观察程序执行结果是否达到预期目标。五、十字路口交通灯控制源程序及仿真效果图#include config.h #define uchar unsigned char char LED=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*0-9数字段码表*/void delay(uint32 n) /*延时子程序*/uint32 i;for(i=0;i=0;i-) /*东西亮绿灯,南北亮红灯延时9秒*/ IOSET=LEDi; /*查段码表送显示*/ delay(500000000); IOCLR= 0x000001ff; /*将IO低九位清零*/ else if(m=1)for(i=6;i=0;i-) /*东西亮黄灯,南北亮黄灯延时6秒*/IOSET=LEDi; /*查段码表送显示*/delay(500000000);IOCLR= 0x000001ff; /*将IO低九位清零*/elsefor(i=8;i=0;i-) /*东西亮红灯,南北亮绿灯延时8秒*/IOSET=LEDi; /*查段码表送显示*/delay(500000000);IOCLR= 0x000001ff; /*将IO低九位清零*/ int main(void) /*主程序*/uint32 j;while(1)PINSEL0=0x00000000; IODIR=0x00007fff;IOCLR=0x00007fff ; IOSET=0x00004200; /*东西方向亮红灯,南北方向亮绿灯*/j=0;light(j);IOCLR=0x00007fff ;IOSET=0x00002400; /*东西方向亮黄灯,南北方向亮黄灯*/j=1;light(j);IOCLR=0x00

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论