嵌入式课程设计(交通灯与uCOS-的移植与应用)

2019-08-30 23:23

班级:自动化1004 学号:10401701305 嵌入式系统 课程设计报告

姓名:甘显豪 指导教师: 成绩:

设计任务一 十字路口交通灯控制

一、设计目的:

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秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。

1

三、硬件电路设计。(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)

附图:

2

硬件电路说明:

复位电路,

时钟电路(仿真可略), ARM7微处理器LPC2106,

南北、东西道路交通灯,东西南北左转弯灯 交通计时共阴显示数码管。

交通规则:(1)首先是东西方向绿灯亮10s(从15s减到5s),然后东西黄灯闪烁5次,接着是东西左转弯绿灯亮10s,然后是东西左转弯绿灯闪烁5s;(2)南北方向方向绿灯亮10s,然后南北黄灯闪烁5次,接着是南北左转弯绿灯亮10s,然后是南北左转弯绿灯闪烁5s(没提到的方向都是红灯亮)。

四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明) 源程序:

#include \#include\

void delay(unsigned int x) //延迟0.xMS {

while(x--) {

unsigned char j; for(j=0;j<125;j++) { ; } } }

uint8 led[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管段选值 void display() //数码管显示 { uint8 i=15; while(i-5) { IOSET = (led[ i / 10 ] << 13) | (led[ i % 10 ] << 6); delay(5000); IOCLR = (led[ i / 10 ] << 13) | (led[ i % 10 ] << 6); i--; } }

int main(void) {

3

uint8 k; int8 type=1; PINSEL0=0x00000000; //将管脚设置为通用IO端口GPIO PINSEL1=0x00000000; IODIR=0xFFFFFFFF; //将方向寄存器IODIR全设为输出=1 while(1) { switch(type) { case 1: //东西绿灯亮,南北红灯亮 IOSET=0x00600021; display(); k=5; //东西黄灯闪烁 while(k) { IOSET=0x00000010; IOSET = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); IOCLR=0x00000010; IOCLR = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); k--; } /*东西左转弯绿灯亮*/ IOCLR=0x00600021; IOSET=0X00500009; display(); type=2; break; case 2: //东西左转弯绿灯闪烁 k=5; while(k) { IOSET=0x00100000; IOSET = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); IOCLR=0x00100000; IOCLR = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); k--; }

4

type=3; break; case 3: //南北绿灯亮,东西红灯亮 IOCLR=0x00000001; IOSET=0x0060000C; display(); k=5;//南北黄灯闪烁 while(k) { IOSET=0x00000002; IOSET = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); IOCLR=0x00000002; IOCLR = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); k--; } /*南北左转弯绿灯亮*/ IOCLR=0X0060000C; IOSET=0x00A00009; display(); type=4; break; case 4: //南北左转弯绿灯闪烁 k=5; while(k) { IOSET=0x00800000; IOSET = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); IOCLR=0x00800000; IOCLR = (led[ k / 10 ] << 13) | (led[ k % 10 ] << 6); delay(3000); k--; } type=1; IOCLR=0xFFFFFFFF; //全部清零 } } }

5


嵌入式课程设计(交通灯与uCOS-的移植与应用).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年乡镇党政领导班子履行党风廉政建设主体责任情况汇报

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: