1 嵌入式课程 设计实习报告 设计任务一 十字路口交通灯控制 一、设计目的: 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 秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。 三、硬件电路设计。 我选择了以下器件来进行此实验的硬件设计: 7SEG-COM-ANODE 7SEG-COM-CATHODE 班级:自动化 082 学号:06411200114 姓名: 何振凯 指导教师:周汝 成绩: 2 7SEG-MPX2-CA LPC2106 10WATT0R1 AUDI01U LED-GREEN LED-RED LED-YELLOW PCELECT47U25V 附图: 四、源程序。 源程序: #include "config.h" #include "LPC2106.h" uint32 shuzu[9]={0x0000c00c,0x0000f90c,0x0000a40c,0x0000b00c,0x0000990c,0x0000920c,0x0000820c,0x0000f80c,0x0000800c}; uint32 shuzu1[4]={0x0000c012,0x0000f912,0x0000a412,0x0000b012}; uint32 shuzu2[9]={0x0000c021,0x0000f921,0x0000a421,0x0000b021,0x00009921,0x00009221,0x00008221,0x0000f821,0x00008021}; /**********延迟数字显示时间**********/ void delay(uint32 q) { uint32 q; for(;q>0;q--); } int main() { int n,m; 3 /*****设置端口为第一功能*********/ PINSEL0=0x00000000; PINSEL1=0x00000000; /********设置端口为输出**********/ IODIR=0xffffffff; while(1) { for(n=8;n>=0;n--) { IOSET=shuzu[n];//输出所要显示的数据 delay(900000); IOCLR=0xffffffff; } for(m=3;m>=0;m--) { IOSET=shuzu1[m];//输出置1 delay(900000); IOCLR=0xffffffff;//输出清零 } for(n=8;n>=0;n--) { IOSET=shuzu2[n];//输出所要显示的数据 delay(900000); IOCLR=0...