当前位置:文档之家› 8255A控制交通灯完整实验

8255A控制交通灯完整实验

LJMP KEY1;转外部中断0中断服务程序
ORG 0013H;外部中断1的中断程序入口地址
LJMP KEY2;转外部中断1中断服务程序
START:
SETB IT0;INTO为边沿触发
SETB IT1
SETB EX0 ;启动T0
SETB EX1
SETB 80H
MOVX @DPTR,A
S1: MOV A,#10111101B
MOV DPTR,#00FFH
MOVX @DPTR,A ;第一种状态:东西红灯亮,南北绿灯亮
CALL DELAY5S;5秒延时
S2:MOV A,#10111011B ;第二种状态:东西红灯亮,南北黄灯亮
MOV DPTR,#00FFH
MOVX @DPTR,A
完整的做完实验后,我觉得实验中应该注意一下几点:
1、延时程序的设计。要想利用软件比较准确的设计延时程序,需要知道时钟周期,状态周期,机器周期的概念以及循环程序设计的基本思路。
2、8255A编程,实验中应该先写控制字后写方式字。这里需要指出的是,硬件连线时一定要严格按照8255A的控制字连线,也就是地址分配问题。AT89S52的P2口在实验中做地址线,充当地址高8位,P0口既做地址线也做数据线,做地址线时充当地址低8位。
二○一 一 ~二○一二学年第 二 学期
信息科学与工程学院
课程设计报告书
课程名称:微机原理课程设计
班级:电子信息工程2009级6班
学号:2
姓名:张强
指导教师:徐守明
二○一二年二月二十日
8255A控制交通灯实验
一、实验流程图如下:
1、主程序流程图
2、中断服务程序(以外部中断0为例)
二、软件仿真图如下:
三、实验总结:
CALL DELAY1S; 0.2秒延时
MOV A,#10111111B ;东西红灯亮,南北黄灯灭,黄灯第一次闪烁
MOV DPTR,#00FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#10111011B ;第二种状态:东西红灯亮,南北黄灯亮
MOV DPTR,#00FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#10111111B ;东西红灯亮,南北黄灯灭,黄灯第二次闪烁
MOV DPTR,#00FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#10111011B ;第二种状态:东西红灯亮,南北黄灯亮
MOV DPTR,#00FFH
MOVX @DPTR,A
3、8255A选择A口时,不能直接把A0,A1接地,而应该用地址赋值语句给A0,A1赋值,使其同时为低电平,选中A口。
四、实验程序如下:
;*********8255PA口的次低三位是南北路口。次高三位是东西路口*********
ORG 0000H
LJMP START
ORG 0003H ;外部中断0的中断程序入口地址
本实验主要实现了基本交通灯工作情况,主要用到并行接口芯片5255A,单片机控制8255A工作,由8255A的PA口驱动LED闪烁,8255PA口的低三位是南北路口。高三位是东西路口,模拟交通灯工作。另外,利用单片机内部中断,加了两个紧急情况处理功能。当需要关闭东西通道,开通南北通道时,按下K1键,东西红灯亮,南北绿灯亮。当需要关闭南北通道,开通东西通道时,按下K2键,东西红灯亮,南北绿灯亮。
CALL DELAY1S
MOV A,#10111111B ;东西红灯亮,南北黄灯灭,黄灯第次闪烁
MOV DPTR,#00FFH
MOVX @DPTR,A
CALL DELAY1S
S3:MOV A,#11100111B ;第三种状态:东西绿灯亮,南北红灯亮
相关主题