综合实验一交通灯实验.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用DSP模拟交通灯实验 一、实训目的 1.熟悉使用ICETEK-VC5416-A控制ICETEK-CTR上交通灯的方法。 2.掌握TMS320VC5416DSP定时器的使用和编程。 3.掌握TMS320VC5416DSP外中断的使用和编程。 4.学习复杂控制程序设计思路。 二、实验所用设备 计算机,ICETEK-VC5416-EDU实验箱。 三、原理及构思 1.交通灯控制要求 利用ICETEK-EDU实验箱提供的设备,设计模拟实际生活中十字路日交通灯控制的程序。 要求如下: 交通灯分红黄绿二色,东、南、西、北各一组,用灯光信号实现对交通的控制:绿灯信号表示通行,黄灯表示警告,红灯禁止通行,灯光闪烁表示信号即将改变。 计时显示:8X8点阵显示两位计数,为倒计时,每秒改变计数显示。正常交通控制信号顺序,正常交通灯信号自动变换。 (1)南北方向绿灯,东西红灯(20秒)。 (2)南北方向绿灯闪烁。 (3)南北方向黄灯。 (4)南北方向红灯,东西方向黄灯。 (5)东西方向绿灯 (20秒)。 (6)东西方向绿灯闪烁。 (7)东西方向黄灯。 (8)返回(1)循环控制。 紧急情况处理:模仿紧急情况(重要车队通过、急救车通过等)发生时,交通警察手动控制 (1)当任意方向通行剩余时间多于10秒,将时间改成10秒。 (2)正常变换到四面红灯(20秒)。 (3)直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)。 2.交通灯模拟 利用ICETEK-CTR上的一组发光二极管(共12只,分为东西南北四组、红黄绿二色)的亮灭实现交通信号的模拟。 3.计时显示 利用ICETEK-CTR上的发光二极管显示阵列模拟显示。 4.计时 使用TMS320VC5416DSP片上定时器,定时产生时钟计数,再利用此计数对应具体时间。定时器控制及中断编程可参考实验七程序。 5.紧急情况 利用ICETEK-CTR上键盘产生外中断,中断i1常信号顺序,模拟突发情况。 6.程序设计 根据设计要求,由于控制是由不同的各种状态按顺序发生的,我们可以采用状态机制控制方法来解决此问题。这种方法是:首先列举所有可能发生的状态;然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制。对于突发情况,可采用正常顺序的控制中插入特殊控制序列的方式完成。时钟计数:采用250ms一次中断进行累加计数。 状态 编号 信号灯状态 状态定义 保持 时间 1 南北绿灯,东西红灯 statusNSGreenEWRed 20秒 2 南北绿灯闪烁,东西红灯 statusNSFlashEWRed 6秒 3 南北黄灯,东西红灯 statusNSYelIowEWRed 4秒 4 南北红灯,东西黄灯 statusNSRedEWYellow 4秒 5 南北红灯,东西绿灯 statusNSRedEWGreen 20秒 6 南北红灯,东西绿灯闪烁 statusNSRedEWFlash 6秒 7 南北红灯,东西黄灯 statusNSRedEWYellow 4秒 8 南北黄灯,东西红灯 statusNSYelIowEWRed 4秒 9 南北红灯,东西红灯 statusHold 20秒 7.程序内容: #include "scancode.h" #define SPSA0 *(unsigned int *)0x38 #define SPSD0 *(unsigned int *)0x39 #define REGISTERCLKMD (*(unsigned int *)0x58) #define TIM *(int *)0x24 #define PRD *(int *)0x25 #define TCR *(int *)0x26 #define IMR *(int *)0x0 #define IFR *(int *)0x1 #define PMST *(int *)0x1d #define nStatusNSGreenEWRed 160 #define nStatusNSFlashEWRed 184 #define nStatusNSYellowEWRed 200 #define nStatusNSRedEWYellow 216 #define nStatusNSRedEWGreen 376 #define nStatusNSRedEWFlash 400 #define nStatusNSRedEWYellow1 416 #define nStatusNSYellowEWRed1 432 #define nTotalTime 448 #define nStatusHold 160 #define statusNSGreenEWRed 0 #define statusNSFlash

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档