十字路口交通信号灯控制系统.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  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文档。上传文档
查看更多
昆明理工大学(微机原理)实验报告 实验名称 十字路口交通信号灯控制系统 实验时间 2009 年12月23日 专 业 07电信 教师评语: 姓 名 吕启蒙 学 号 200711102103 成 绩 教师签名 实验目的: 利用8086、8253、8255及8279实现交通信号灯控制,它能实现: 模拟有南北与东西两个方向,每个方向有红黄绿三个灯; 南北向: 红(20秒),黄(5秒),绿(20秒); 东西向: 红(20秒),黄(5秒),绿(20秒); 灯的变化规律与实际路口规律相同,绿灯在最后5秒钟时,黄灯亮,然后红灯亮,两个方向不会亮绿灯; (3) 灯的时间显示在数码管上进行显示,显示规律是先显示红绿灯的剩余时间,黄灯亮时显示黄灯剩余时间; (4) 可以通过一个开关控制,当开关信号为1时,整个交通灯全灭,并且数码管显示为0,开关撤销后,按照开关按下之前的状态继续运行; (5) 有一个紧急控制开关信号,当紧急开关信号为1时,两个方向的灯全为红灯。紧急开关撤消后,按照开关按下之前的状态继续运行; 实验内容: 首先要实现对6个灯进行控制就要用到intel8255A并行通信接口,可设置在工作方式0(基本的输入/输出方式)下,用B端口进行输入C端口进行输出。 要使红绿灯持续亮20s黄灯亮5s,就必须用到延时程序,这就要用到intel8253了,可以使8253的计数器工作在方式3(方波发生器)提供周期为2秒的时钟信号,在B端口选择一口如PB3口进行2秒时钟信号的输入。延时程序方面可利用这2s时钟信号,可以实现1s的延迟,具体方法是先初始化8253立即检测PB3口的输入信号是否为高电平,如果是则说明还没有通过8253的第一个方波的半个周期即还没到1s,继续检测直到到1s,这样就实现了1s的延迟。要实现延迟N秒如20s,只要延迟20个1s即可,在每次延迟1s前初始化一下8253即可,这样的延迟程序可以延迟任意的时间。 接下来要解决的是交通灯全灭和紧急情况控制两种情况,只要用8255的B端口的两个口即可,当检测到这两个端口为高电平时,用C端口输出相应的电平来实现红绿灯全灭和只有红灯亮。 接下来要在数码管上显示剩余时间,要编一个显示子程序,这里要用到Intel8279芯片了,在EL-MUT-III 型单片机上8279芯片和数码管内部是连好的,给它一个数它会通过用给定的数码管显示码表进行译码从而在数码管上显示这个数,但是只是一片数码管显示即只能显示一位。这次实验要求显示两位数,我用了个div指令,具体为mov cl,10 div cl,这样 就把数除以10,十位放到al中,个位加十位放到ah中,这样就把两位数变成两个一位数可以在两片数码管上显示,达到目的。 至于紧急开关撤消后,按照开关按下之前的状态继续运行,只要在调用紧急控制程序前把这时灯的状态存起来,到用完后再恢复即可。 以上是对如何完成这次实验的基本考虑,实际编程过程中还遇到很多问题,不过已解决。 实验程序: io8255a equ 04a0h io8255b equ 04a2h io8255c equ 04a4h io8255ctrl equ 04a6h io8253a equ 04b0h io8253b equ 04b2h io8253ctrl equ 04b6h con8279 equ 0492h dat8279 equ 0490h assume cs:code code segment public org 100h start: led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;显示段码表 call init8253 ;初始化8253 mov dx,io8255ctrl ;8255控制口 mov al,82h ;工作方式0 A,C口输出,B口输入 out dx,al ;---------------------------------------------------------- repeat:

您可能关注的文档

文档评论(0)

bhyq + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档