




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。项目设计实现功能 。交通灯控制要求 。液晶显示器控制 。项目实现方案 。项目设计整体思路 。设计原理 。CPU时器原理 。DSP外设中断扩展模块 。发光二极原理 。TMS320F28xDSP的I/O. 。液晶显示器控制原理 。程序设计 。程序总体设计 。程序编写(见附页) 。心得体会 。附页 。DSPDSPDSPDSPdspTMS320F2812DSPDSTMS320F2812Abstract:Abstract:DSPdigitalsignalprocessing,isamultidisciplinaryandwidelyappliedinmanyfieldsoftheemergingdiscipline.Alongwiththecomputerandtherapiddevelopmentofinformationtechnology,digitalsignalprocessingtechnologytoemergeasthetimesrequireanddeveloprapidly.amethod.ThedesignisbasedontheprincipleofDSPdesignoftrafficandtoeliminatesimulatedtrafficsignalcountdowntime,digitaltube,theuseofTMS320F2812DSPon-chiptimergeneratesaclockcounting,designedtosimulatetheactuallifeofthecrossroadstrafficlights.Keyword:DSP;TMS320F2812;lightemittingdiode;trafficlights;、社会础性业社会、动人流、物流、资金流流主流动社会社会动人动来越被拥堵剧。断汽化进程快拥挤剧事故频就在发达国家也是一个令人困扰的严重问题。众所周知,缓解交通拥挤的最直接和最有效办法是提高路网的通信能力。但无论哪个国家的大城市,不可能无限制无限制地修建道路难满足日益增长的交通需求。与此同时,通过限制车辆增加削减交通需求也受到客观因素的制约而无法取得满意的结果。事实上,由于交通系统是一个相的大系统,无论车辆还是道路,都难上解问题。道路交通系统是一个地一个城市的个系统的,直接了一个地一个城市的。在一系统中,道路不仅仅是化的,而大的可有一系统的成及理客观的,能制有效的理和制,而系统的有效。目交通制求交通,一,用信实交通的信通,,通,信。时上8×80-9数。正常交通制信顺序正常交通信自动换:向,(20。向。向。向,向。向(20。向。向。⑴循环控制。⑴当任意方向通行剩余时间多于10秒,将时间改成10秒。⑵正常变换到四面红灯(20秒)。正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)本次设计使ICETEK-F2812-A板,ICETEK-F2812-A是一块以TMS320F2812DSP为核心的DSP/控制模块连接,可以控制其各种外围设备。液晶显示模块的访问、控制是由2812DSP对扩展扩展接口的操作完成。控制扩展口的寻址:命控制扩展接口的址为0x108001,控制扩展接口的址为0x1080030x108004,控制扩展接口的址为0x108002。可以察到液晶显示0到9的计。使控制,可以实多变的显示。当使显示时要DSP当新显示可动。实生察显示的灯、交通示报站牌等领会这种控制的具体。项目实方案项目设计整体思路DSP的硬件、I/OI/O口控制红绿黄灯的开关,硬件模紧急情况发生(:急救车,消防车)。有紧急情况发生,向红,以便让紧急车通过。紧急车通过,交通的断前的状态。DSPDSP中断服务程CPUF2810/F2812332CPUTIMER0/1/21和2DSPBIOS,CP0F281CPUTINT0、TINT1TINT2)连接方式为保证正常需要进行一首先将数值写入32数寄存器TIMH:TIM该数值放周期寄存PRDPRSYSCLOCKOUTDSPDSP。当器到0时,定时器会产生一个中断脉冲输出。DSP2812CPU为了能够时有效处好各个外设了一个专门处外设中断扩展模块(thePeripheralInterruptExpansionblock,叫做外设中断控制器PIE,它能够各种中断请求源(例如来自于外设或者其他外部引脚请求)做出判断以相PIE96个不同中断,这些中断分成了12个组,每个组有8个中断,而且每个组都被反馈到CPU内核12条中断线中某一条上(INT1-INT12。PIE目前只使了96个终端中45个,其他等待将来功能扩展。2812中断是3级中断机制,分别是外设级,PIE级以CPU级,于某一个具体外设中断请求,任意一级不许可,CPU最终都不会执该外设中断。发光二极/控制模块上发光二极管是由连接在F2812DSP寄存器EWR和SNR控制。这两个寄存器均为6F2812DSP108007HDSP‘0入108007H数据(8位高‘00’时数据低6将入EWR;高值‘01’时入SNR。TMS320F28xDSPI/OTMS320F28xDSPI/O大部分被保留于外部。在时一般将带有控制能或分离访问储单元I/O访问这部分单元又称I/O端口访问。例如:可将控制指示灯组或锁一I/O端口D/A等专芯片控制端和也常I/O在I/O中设备一般重点于控制而使大片连续存储储单元一般数据ICETEK-F2812-ADIP开A/DD/A控制端等在I/OI/O语句较简单。0x3f0x3e0x0c0+06;0x0b8+0-;0x40+0-63;(、)之后的入模块的缓存。将发送到相扩展接口即可。与DSP:8MHzDSPDSP5V①根求是不同各种状态按顺发生,我们可采状态机方法来解决此有可能发生然后将这些状态编间对正常顺中插入特殊列方式完成。定器VC5509A器是4定PSC16的法器TIM成中首先是PSC1,0后TIM1,0后,器CPU发中求。突发中有110可突发状况按入中来先突发状况来后先急车辆通。。由于运算度快具有可特性和接口灵活特点使许多产品研开与中挥重要作。采DSP实现系统更是当前趋势。过做基于DSP交灯设计进步熟悉DSP其开环境CCS功。当前交现有进。实的P有更前。交更更多便利。#include""#define*(unsignedint*)0x38#defineSPSD0
*(unsignedint*)0x39#defineREGISTERCLKMD(*(unsignedint*)0x58)
#define TIM*(int#define PRD*(int*)0x25#define TCR*(int#define IMR*(int#define IFR*(int#define PMST*(int*)0x1d#definenStatusNSGreenEWRed160#definenStatusNSFlashEWRed184#definenStatusNSYellowEWRed200#definenStatusNSRedEWYellow216#definenStatusNSRedEWGreen376#definenStatusNSRedEWFlash400#definenStatusNSRedEWYellow1416#definenStatusNSYellowEWRed1432#definenTotalTime#definenStatusHold160#definestatusNSGreenEWRed0#definestatusNSFlashEWRed1#define
statusNSYellowEWRed2#definestatusNSRedEWYellow3#definestatusNSRedEWGreen4#definestatusNSRedEWFlash5#definestatusHold6#defineLCDDELAY1#defineLCDCMDTURNON0x3f#defineLCDCMDTURNOFF0x3e#defineLCDCMDSTARTLINE0xc0#defineLCDCMDPAGE0xb8#defineLCDCMDVERADDRESS0x40ioportunsignedintport3004;// CTRioportunsignedintport8000;ioportunsignedintport8001;ioportunsignedintport8002;ioportunsignedintport8003;ioportunsignedintport8004;ioportunsignedintport8005;ioportunsignedintport8007;#defineport8000#defineCTRLCDCMDRport8001
#defineCTRKEYport8001#defineCTRCLKEYport8002#defineCTRLCDCRport8002#defineCTRLCDLCRport8003#defineCTRLCDRCRport8004#defineport8005#defineport8007voidInitDSP();voidInitTimer();voidInitICETEKCTR();voidinterrupttime(void);voidinterruptxint2(void);//XINT2中断服务程序voidSetLEDArray(intnNumber);//修改显示内容voidRefreshLEDArray();//刷新显示voidEndICETEKCTR();voidTurnOnLCD();voidLCDCLS();voidDelay(unsignedintnDelay);unsignedintuWork,nTimeCount;unsignedintuLightStatusEW,uLightStatusSN;unsignedintbHold;unsignedcharledbuf[8],ledx[8];unsignedcharled[40]=x92,0x92,0x92,0x64,0x00},//计数和交通灯状态{{0x00,0x00,0x02,0while(1)0x7E,0x81,0x81,0xxC2,0x32,0x0A,0x06,0x7E,0x00,0x02,0xFF,0x00,0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76,0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71,0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E};unsignedcharledkey[10][8]={{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},{0x00,0x00,0x30,0
00},{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}};main(){intnWork1,nWork2,nWork3,nWork4,tKey;intnNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus;unsignedintnScanCode;nTimeCount=0;bHold=0;uLightStatusEW=uLightStatusSN=0;nNowStatus=0;nOldStatus=1;nOldTimeCount=0;InitDSP();//DSInitICETEKCTR();
{if(bHold&&nNowStatus==statusHold){if(nTimeCount>=nStatusHold){nNowStatus=nSaveStatus;nTimeCount=nSaveTimeCount;bHold=0;}}elseif(nTimeCount<nStatusNSGreenEWRed)nNowStatus=statusNSGreenEWRed;elseif(nTimeCount<nStatusNSFlashEWRed)nNowStatus=statusNSFlashEWRed;elseif(nTimeCount<nStatusNSYellowEWRed)nNowStatus=statusx28,0x24,0xFE,0x20,0x
///NSYellowEWRed;00},{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},{0x00,0x00,0x7C,0
InitTimer();////切换状态
elseif(nTimeCount<nStatusNSRedEWYellow)nNowStatus=statusNSRedEWYellow;elseif(nTimeCount<nStatusNSRedEWGreen)nNowStatus=statusNSRedEWGreen;elseif(nTimeCount<nStatusNSRedEWFlash)nNowStatus=statusNSRedEWFlash;elseif(nTimeCount<nStatusNSRedEWYellow1)nNowStatus=statusNSRedEWYellow;elseif(nTimeCount<nStatusNSYellowEWRed1)nNowStatus=statusNSYellowEWRed;if(nNowStatus==nOldStatus){switch(nNowStatus){
(nWork1>=0&&nWork2>0&&nWork3>0&&nWork4>0)uLightStatusSN=((nWork1%nWork3)<=nWork4)(0x49):(0x40);break;casestatusNSRedEWFlash:nWork1=nTimeCount-nStatusNSRedEWGreen;nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFlash;nWork3=nWork2/3;nWork4=nWork3/2;if(nWork1>=0&&nWork2>0&&nWork3>0&&nWork4>0)
nWork2=20-nTimeCount/nWork1;if(bHold){if(nWork2>10){nTimeCount=nWork1*10;nWork2=10;}}if(nOldTimeCount!=nWork2){nOldTimeCount=nWork2;casestatusNSFlashEWRed:nWork1=nTimeCount-nStatusNSGreenEWRed;
uLightStatusEW=((nWork1%nWork3)<=nWork4)(0x09):(0x00);break;
2);
SetLEDArray(nWork}}nWork2=nStatusNSY
casestatusNSGreenEWRed:
break;
caseellowEWRed-nStatusNSFlashEWRed;nWork3=nWork2/3;nWork4=nWork3/2;if
nWork1=nStatusNSGreenEWRed/20;if(nWork1>0){
statusNSRedEWGreen:nWork1=(nStatusNSRedEWGreen-nStatusNSRedEWYellow)/20;if(nWork1>0){nWork2=20-(nTimeCount-nStatusNSRedEWYellow)/nWork1;if(bHold){if(nWork2>10){nTimeCount=nStatusNSRedEWYellow+nWork1*10;nWork2=10;}
nWork1=nStatusHold/20;if(nWork1>0){nWork2=20-nTimeCount/nWork1;if(nOldTimeCount!=nWork2){nOldTimeCount=nWork2;SetLEDArray(nWork2);}}
if(nSaveStatus==statusNSFlashEWRed||nSaveStatus==statusNSYellowEWRed){nSaveStatus=statusNSRedEWGreen;nSaveTimeCount=nStatusNSRedEWYellow;}elseif(nSaveStatus==statusNSRedEWFlash||nSaveStatus==statusNSRedEWYellow){nSaveStatus=statusNSGreenEWRed;} break;}if }
nSaveTimeCount=0;}}(nOldTimeCount!=nWork2){nOldTimeCount=nWork2;SetLEDArray(nWork2);}}break;casestatusHold:
else{({nSaveStatus=nNowStatus;nSaveTimeCount=nTimeCount;nNowStatus=statusHold;nTimeCount=0;
nOldStatus=nNowStatus;switch(nNowStatus){casestatusNSGreenEWRed:uLightStatusEW=0x24;uLightStatusSN=0x49;SetLEDArray(20);break;
case
break;
case
_9) break;}statusNSFlashEWRed:uLightStatusEW=0x24;uLightStatusSN=0x49;SetLEDArray(0);break;casestatusNSYellowEWRed:uLightStatusEW=0x24;uLightStatusSN=0x52;SetLEDArray(20);break;casestatusNSRedEWYellow:uLightStatusEW=0x12;uLightStatusSN=0x64;SetLEDArray(20);break;casestatusNSRedEWGreen:uLightStatusEW=0x09;uLightStatusSN=0x64;SetLEDArray(20);
statusNSRedEWFlash:uLightStatusEW=0x09;uLightStatusSN=0x64;SetLEDArray(0);break;casestatusHold:uLightStatusEW=0x24;uLightStatusSN=0x64;SetLEDArray(20);break;}}CTRLR=uLightStatusEW;CTRLR=uLightStatusSN;//RefreshLEDArray();//nScanCode=port8001;//nScanCode&=0x0ff;tKey=CTRCLKEY;if(nScanCode==SCANCODE
EndICETEKCTR();exit(0);}//序,进行钟计数voidinterrupttime(void){nTimeCount++;nTimeCount%=nTotalTime;}//内容voidSetLEDArray(intnNumber){inti,ShowNumber;ShowNumber=nNumber/2;if(ShowNumber>9)ShowNumber=0;CTRLCDCMDR=LCDCMDPAGE; //页=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; //列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for(i=0;i<8;i++){CTRLCDLCR=ledkey[ShowNumber][i];Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);
打扰//通k=PMST;//PMST寄PMST=k&0xff;
CTRLR=0x0c1;//开启列CTRLR=0xc8; //使能外部中} //断向量表起断}//voidRefreshLEDArray(){inti;for(i=0;i<8;i++{CTRGR=ledx[i];CTRLA=ledbuf[i];}}//DS=8MHzvoidInitDSP()
地址=80HIMR=0x0c;//使能TINTTCR=0x41f;//预分频系为16TIM=0; //钟计清0PRD=0x0f423;//0ffHTCR0x42f、启动IFR=0x0c;//断标志port3004=0;//asm("rsbx
for(k=0;k<8;k++){ledbuf[k]=0x0ff;//为空白ledx[k]=(k<<4);//列控制字}k=CTRCLKEY; //清除键盘冲区//打开LCDCLS();//清除内CTRLCDCMDR=LCDCMDSTARTLINE; //起{REGISTERCLKMD=0;
INTM"); //断 }}
CTRLCDCR=0;//PLLREGISTERCLKMD=0x1007; //=16MHz}//许断voidInitTimer(){unsignedintk;asm("ssbxINTM");
//ICETEK-CTR板上备voidI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度广东省珠海市四校联考高二下学期5月月考历史试题(含答案)
- DB23-T2895-2021-平榛叶瘿蚊防治技术规程-黑龙江省
- 纸箱采购招标方案(3篇)
- 化工物流公司管理制度
- 物业园林招标方案(3篇)
- 煤矿噪声检测方案(3篇)
- 国外医院绩效管理制度
- 外包单位作业管理制度
- 俱乐部物料采购方案(3篇)
- 工程库房安全管理制度
- 2025年成都市中考历史试题卷(含答案)
- 建设工程法规考试题真题及答案
- 中国盐业集团有限公司所属企业招聘笔试题库2025
- 2024年江苏省泰兴市事业单位公开招聘教师岗考试题带答案分析
- Q-GDW 10393.1-2024 变电站设计规范-第1部分:35kV变电站
- (人教2024版)英语七下期末全册分单元总复习课件(新教材)
- 2025年二年级语文期末复习计划
- 2025年市场营销专业人才考核试题及答案
- 防范恶劣天气安全教育
- 第七章邮轮游客投诉心理及处理技巧46课件
- 2025-2030年全球及中国槐糖脂行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论