利用51单片机实现交通红绿灯_第1页
利用51单片机实现交通红绿灯_第2页
利用51单片机实现交通红绿灯_第3页
利用51单片机实现交通红绿灯_第4页
利用51单片机实现交通红绿灯_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8255控制交通灯 设计者:金勇电子信息工程2007.12.6题目:v 用 8255做输出口,控制十二个发光二极管亮灭,模拟交通灯管理。十字路口东西南北走向。v 初始状态 0: 为东西红灯,南北红灯。v 状态 1( 10s):东西绿灯通车,南北红灯;状态 2( 3s):东西绿灯灭,黄灯闪几次,南北红灯;v 状态 3( 10s):东西红灯,南北绿灯通车;v 状态 4( 3s):东西红灯,南北绿灯灭,黄灯闪几次。依次循环。实验程序流程图电路原理图(一)电路原理图(二)电路原理图(三)完整的实验原理图:8255的初始化:v 根据实验的原理图可以计算出 8255的控制字地址为 FF7FH, A口的地址为 FF7CH,B口的地址为 FF7DH,然后对 8255初始化,使用的语句为:v MOV DPTR,#0FF7FHMOV A,#88HMOVX DPTR,A 这样将方式控制字送到控制寄存器。其中方式控制字为 88H( 10001000),表示8255工作在方式 0, A, B口作为输出口, C口高 4位作为输入口,低 4位作为输出口。 状态 0: 东西红灯,南北红灯 。v 相应程序为 :v MOV DPTR,#0FF7CHv MOV A,#0B6H v MOVX DPTR,A ;从 A口输出数据 0B6H,来控制相应二极管发光v INC DPTRMOV A,#0DHMOVX DPTR,A ;从 B口输出数据 0DH,来控制相应二极管发光 黄 绿 绿 红绿黄 绿 红 红 黄黄东南西北A口( 0B6H)B口低 4位( ODH)0000红11 1 1 1 1 1 1状态 1:东西绿灯亮,南北红灯 亮v 相应程序为:v MOV DPTR,#0FF7CHMOV A,#75HMOVX DPTR,A; 从 A口输出数据 75H来控制相应二极管发光 INC DPTRMOV A,#0DHMOVX DPTR,A; 从 A口输出数据 0DH来控制相应二极管发光 黄 绿 红 黄 绿 红 黄 绿 红 黄 绿 红东南西北B口低 4位 (ODH) A口 (75H)101111111 000状态 2 : 东西绿灯灭,黄灯闪几次,南北红灯 相应程序为: MOV DPTR,#0FF7CHMOV A,#0F3HMOVX DPTR,AINC DPTRMOV A,#0CHMOVX DPTR,A ;东西黄灯亮 ,南北红灯亮MOV 20H,#0AHMOV 21H,#01Hv LCALL DELY ;延时 0.5sMOV DPTR,#0FF7CHMOV A,#0F7HMOVX DPTR,AINC DPTRMOV A,#0DHMOVX DPTR,A ;南北红灯亮MOV 20H,#0AHv MOV 21H,01Hv LCALL DELY ;延时 0.5sDJNZ R7,JOD1 ;闪烁次数未到继续状态 2的实现过程:v 实现过程是先将先从 A,B口输出数据控制二极管使东西绿灯灭,黄灯亮,南北红灯亮 ;然后再调用一个延时子程序,延时 0.5s;延时完成后通过指令从A, B口输出数据使东西绿灯灭,黄灯灭,南北红灯亮,然后又调用一个演示 0.5s的子程序。整个过程中通过 R7计数使黄灯亮灭 3次。v 同理,状态 3和状态 4的实现方法与状态 1和状态 2的实现方法一样,只是在控制发光二极管的时候从 A,B口输出的数据不相同,而程序指令是相同的。延时子程序:v 程序过程中需要延时 10s, 0.5 s, 2s,因为定时时间比较大,所以将定时器的时间定为50ms,然后再根据不同的定时时间循环定时不同次数就可以得到需要的定时时间 :v 10s=50msX20次 X10次v 0.5s=50msX10次v 2s=50msx20次 X2次程序清单:v ORG 0000Hv SJMP JOD0v ORG 01B0Hv SJMP INT1JOD0: MOV SP,#60HMOV DPTR,#0FF7FHMOV A,#88HMOVX DPTR,A ;8255初始化MOV DPTR,#0FF7CHMOV A,#0B6HMOVX DPTR,AINC DPTRMOV A,#0DHMOVX DPTR,A ;点亮 4个红灯MOV 20H,#14Hv MOV 21H,02H ;延时 2sLCALL DELYvv JOD3: MOV DPTR,#0FF7CHMOV A,#75HMOVX DPTR,AINC DPTRMOV A,#0DHMOVX DPTR,A ;东西绿灯亮 ,南北红灯亮MOV 20H,#14Hv MOV 21H,#0AH LCALL DELY ;延时 10sMOV R7,#03H ;闪烁次数JOD1: MOV DPTR,#0FF7CHMOV A,#0F3HMOVX DPTR,AINC DPTRMOV A,#0CHMOVX DPTR,A ;东西黄灯亮 ,南北红灯亮MOV 20H,#0AHv MOV 21H,#01Hv LCALL DELY ;延时 0.5sMOV DPTR,#0FF7CHMOV A,#0F7HMOVX DPTR,AINC DPTRMOV A,#0DH v MOVX DPTR,A ;南北红灯亮MOV 20H,#0AHv MOV 21H,01Hv LCALL DELY ;延时 0.5sDJNZ R7,JOD1 ;闪烁次数未到继续v MOV DPTR,#0FF7CHMOV A,#0AEHMOVX DPTR,AINC DPTRMOV A,#0BHMOVX DPTR,A ;东西红灯亮 ,南北绿灯亮MOV 20H,#14Hv MOV 21H,#0AHLCALL DELY ;延时 10sMOV R7,#03H ;闪烁次数JOD2: MOV DPTR,#0FF7CHMOV A,#9EHMOVX DPTR,AINC DPTRMOV A,#07HMOVX DPTR,A ;东西红灯亮 ,南北黄灯亮MOV 20H,#0AHv MOV 21H,#01HLCALL DELY ;延时 0.5sMOV DPTR,#0FF7CHMOV A,#0BEHMOVX DPTR,AINC DPTRMOV A,#0FHMOVX DPTR,A ;东西红灯亮MOV 20H,#0AHv MOV 21H,#01Hv LCALL DELY ;延时 0.5sDJNZ R7,JOD2 ;闪烁次数未到继续LJMP JOD3 ;循环v 延时子程序:v DELAY: MOV TMOD #10Hv MOV TH1,#3CHv MOV TL1,#0B0H ;定时器装初值 v MOVE R1,20Hv MOVE R2,21Hv SETB EA ;允许全局中断 v SETB ET1 ;允许定时器 1中断 v SEYB TR1 ;打开定时器 1v SJMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论