资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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相应程序为:vMOV 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红11111111状态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)101111111000状态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,然后再根据不同的定时时间循环定时 不同次数就可以得到需要的定时时间:v10s=50msX20次X10次v0.5s=50msX10次v2s=50msx20次X2次程序清单:v ORG 0000Hv SJMP JOD0v ORG 01B0Hv SJMP INT1 JOD0: 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 DELYvvJOD3: 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延时子程序:vDELAY: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 $v SER: MOV TH1,#3CHv MOV TL1,#0B0H ;定时器重装初值 v DJNZ R1,NO ;循环定时(20H)次v MOV R1,20Hv DJNZ R2,NO ;循环定时(21H)次v MOV R2,21Hv RETvNO: RETIv ENDv 谢谢大家!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号