欢迎来到天天文库
浏览记录
ID:25347164
大小:617.01 KB
页数:10页
时间:2018-11-19
《嵌入式课程设计研究报告(交通灯控制uCOSⅡ移植).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、任务一十字路口交通灯控制一、设计目的:1.了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O控制寄存器的设置方法;2.掌握ARM7应用系统编程开发方法,能用C语言编写应用程序;3.熟练掌握ADS1.2软件的使用以及PROTEUS仿真调试的方法;二、具体任务:1.采用PROTEUS完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;2.用ADS1.2编写C语言应用程序,完成十字路口交通灯控制;3.采用PROTEUS将应用程序装载在LPC210
2、6中,进行仿真验证。要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。三、硬件电路设计。(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)附图:10硬件电路说明:硬件说明:飞利浦公司的LPC2106,双位共阴数码管,交通等模型。管脚说明:P0.0~P0.6接数码管的段选a~g;P0.7、P0.8接数码管的位选1、2;P0.10~P0.12接交通灯,分别对应南北方向的红
3、、黄、绿和东西方向的绿、黄、红四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)源程序:#include"config.h"#include"LPC2106.h"int8j=0;//定义全局变量juint8led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管段选值/********************************************************延迟子函数******************************
4、*************************/voiddelay(intt){inti;for(i=0;i5、示的时间所对应的是红灯、绿灯、还是黄灯elseif(j==16、j==3){m=11;}//elseif(j==2){m=12;}//IOCLR=0xffffffff;//io口清零IOSET=(1<7、1<<8);//显示灯的颜色,并对数码管位选十位IOSET+=led[l];//数码管段选delay(100);IOCLR=0xffffffff;//io清零IOSET=(1<8、1<<7);//显示灯的颜色,并对数码管位选个位IOSET+=led[i];//数码管段选delay(100);}/**********************************9、*********************主函数*******************************************************/intmain(void){PINSEL0=0x00000000;//配置pinsel0寄存器,io低15位作普通输入输出口IODIR=0xffffffff;//配置io口为输出IOCLR=0xffffffff;//io口清零while(1)//死循环{if(j==0)//南北方向红灯,东西方向绿灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;displ10、ay(l);}j++;}if(j==1)//东西南北都为黄灯{inti,l;10for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==2)//南北方向绿灯,东西方向红灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==3)//东西南北都为黄灯{inti,l;for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j=0;}}}五、仿真效果。(用屏幕11、抓图的方式
5、示的时间所对应的是红灯、绿灯、还是黄灯elseif(j==1
6、j==3){m=11;}//elseif(j==2){m=12;}//IOCLR=0xffffffff;//io口清零IOSET=(1<7、1<<8);//显示灯的颜色,并对数码管位选十位IOSET+=led[l];//数码管段选delay(100);IOCLR=0xffffffff;//io清零IOSET=(1<8、1<<7);//显示灯的颜色,并对数码管位选个位IOSET+=led[i];//数码管段选delay(100);}/**********************************9、*********************主函数*******************************************************/intmain(void){PINSEL0=0x00000000;//配置pinsel0寄存器,io低15位作普通输入输出口IODIR=0xffffffff;//配置io口为输出IOCLR=0xffffffff;//io口清零while(1)//死循环{if(j==0)//南北方向红灯,东西方向绿灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;displ10、ay(l);}j++;}if(j==1)//东西南北都为黄灯{inti,l;10for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==2)//南北方向绿灯,东西方向红灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==3)//东西南北都为黄灯{inti,l;for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j=0;}}}五、仿真效果。(用屏幕11、抓图的方式
7、1<<8);//显示灯的颜色,并对数码管位选十位IOSET+=led[l];//数码管段选delay(100);IOCLR=0xffffffff;//io清零IOSET=(1<8、1<<7);//显示灯的颜色,并对数码管位选个位IOSET+=led[i];//数码管段选delay(100);}/**********************************9、*********************主函数*******************************************************/intmain(void){PINSEL0=0x00000000;//配置pinsel0寄存器,io低15位作普通输入输出口IODIR=0xffffffff;//配置io口为输出IOCLR=0xffffffff;//io口清零while(1)//死循环{if(j==0)//南北方向红灯,东西方向绿灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;displ10、ay(l);}j++;}if(j==1)//东西南北都为黄灯{inti,l;10for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==2)//南北方向绿灯,东西方向红灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==3)//东西南北都为黄灯{inti,l;for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j=0;}}}五、仿真效果。(用屏幕11、抓图的方式
8、1<<7);//显示灯的颜色,并对数码管位选个位IOSET+=led[i];//数码管段选delay(100);}/**********************************
9、*********************主函数*******************************************************/intmain(void){PINSEL0=0x00000000;//配置pinsel0寄存器,io低15位作普通输入输出口IODIR=0xffffffff;//配置io口为输出IOCLR=0xffffffff;//io口清零while(1)//死循环{if(j==0)//南北方向红灯,东西方向绿灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;displ
10、ay(l);}j++;}if(j==1)//东西南北都为黄灯{inti,l;10for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==2)//南北方向绿灯,东西方向红灯{inti,l;for(i=300000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j++;}if(j==3)//东西南北都为黄灯{inti,l;for(i=60000;i>0;i=i-2)//持续时间设置{l=i/10000;display(l);}j=0;}}}五、仿真效果。(用屏幕
11、抓图的方式
此文档下载收益归作者所有