1、 嵌入式系统 课程设计报告 班级: 学号: 姓名: 指导老师: 设计任务一 十字路口交通灯控制 一、设计目的: 1 了解基于 ARM7 核的 LPC2106 的管脚功能和特点, 掌握 I/O 控制寄存器的设置方法; 2掌握 ARM7 应用系统编程开发方法,能用 C 语言编写应用程序; 3熟练掌握 ADS1.2 软件的使用以及 PROTEUS 仿真调试的方法; 二、具体任务: 1采用 PROTEUS 完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公 司的 LPC2106,东西南北方向分别设置红黄绿 3 个指示灯,东西方向和南北方向各用 1 个 数码管显示通行时间; 2用 ADS1.
2、2 编写 C 语言应用程序,完成十字路口交通灯控制; 3采用 PROTEUS 将应用程序装载在 LPC2106 中,进行仿真验证。要求东西方向和南北方 向的数码管显示通行时间并倒计时,可以设置成一样,例如都是 9 秒倒计时;每当倒计时时 间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。 三、硬件电路设计。 (参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的 PROTEUS 电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明) 东西红灯,南北绿灯 东西黄灯,南北红灯 四、源程序。 (只将 C 语言应用程序附在后面,其它项目文档不要提供,C 语言应用程序 要有一
3、定的注释说明) 源程序: #include “config.h“ int main(void) int32 i; int32 a10=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /*数码管显 0-9*/ PINSEL0=0x00000000; /* 定义 P0.0-P0.15 为普通输入输出端口 */ IODIR=0x0000ffff; IOCLR=0x0000ffff; while(1) for(i=8;i2;i-) /* 东西红灯、南北绿灯延时 8 秒 */ IOSET=0x4200+ai; /* 东西红灯并显示时间*/ delay(); I
4、OCLR=0x0000ffff; /* 引脚输出清零*/ for(i=2;i-1;i-) /* 东西红灯、南北黄灯延时 3 秒*/ IOSET=0x2200+ai; delay(); IOCLR=0x0000ffff; for(i=8;i2;i-) /* 东西红灯、南北绿灯延时 8 秒 */ IOSET=0x1800+ai; delay(); IOCLR=0x0000ffff; for(i=2;i-1;i-) /* 东西黄灯、南北红灯延时 3 秒*/ IOSET=0x1400+ai; delay(); IOCLR=0x0000ffff; delay( ) int32 j=0x00090000;
5、 for(;j0;j-); 设计任务二 uC/OS-的移植与应用 一、设计目的: 1了解嵌入式实时操作系统uC/OS-可移植、可裁剪等性能特点,正确理解实时操作 系统中任务、信号、消息、中断等基本概念以及uC/OS-多任务管理的调度算法; 2掌握uC/OS-在 ARM7 上移植的方法; 3能将uC/OS-移植在 LPC2106 中,并根据具体要求创建用户任务,解决实际问题; 二、具体任务: 1uC/OS-移植在 LPC2106 中。 2编写用户任务程序,完成实时温度的采集控制。硬件电路见参考硬件电路图,图中 用滑动变阻器代替温度传感器转换后的电压,用 ADC0809 完成 A/D 转换,并用数码管显示 出来。 三、参考硬件电路。 (用文字对所设计的电路功能、原理做详细说明) 附图: 四、源程序。 (只将 C 语言应用程序附在后面,其它项目文档不要提供,C 语言应用程序要 有一定的注释说明) 源程序: #include “config.h“ #define TASK_STK_SIZE 64 /定义堆栈大小 #define KEY 0X00001000 /启动开关 P0.12 #define ADCS 0X00002000 /ADC 地址锁存 P0.13 #define ADCEND 0X00004000 /AD 转换结束标志 P0.14 uint3