实验四交通灯控制设计.doc
文本预览下载声明
实验四 交通灯控制设计(设计型)
一、实验目的与要求
1.了解单片机外围芯片8255的工作原理、初始化编程以及输入、输出程序设计方法;
2、熟悉 8255 内部结构和与单片机的接口逻辑,掌握8255 芯片的 3 种工作方式以及控制字格式;
3.学会使用 8255并行接口芯片实现各种控制功能。
二、实验仪器
1、DJ-598KC单片机开发系统 1台
2、仿真器(EASYPROBE) 1只
3、PC机 1台
三、实验内容 (2学时)
用8255做输出口,控制十二个发光二极管燃灭,模拟十字路口交通灯管理。
(1)实验电路及接线图:
(2)实验程序框图:
(3)实验步骤:
8255 PA7~PA0接发光二极管L5~L12,PB3~PB0接发光二极管L1~L4。
执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
(4)实验参考程序
① 汇编代码程序:(E:\DJ51\598K5ASM\HWO7.ASM)
② C代码程序:
#includereg51.h
#includeabsacc.h
#define uchar unsigned char
#define com8255 XBYTE[0xff2b]
#define pa8255 XBYTE[0xff28]
#define pb8255 XBYTE[0xff29]
void delay(unsigned int i)
{ unsigned int j,k;
for(k=0;ki;k++)
for(j=0;j1000;j++);
}
void main(void)
{ com8255=0x88;
pa8255=0xb6;
pb8255=0x0d;
delay(400); //all red lamp light
while(1)
{ uchar d1=5,d2=5;
pa8255=0x75; //west and east green lamp light
pb8255=0x0d; //south and north red lamp light
delay(400);
while(d1--)
{ pa8255=0xf3; //yellow lamp flare
pb8255=0x0c;
delay(20);
pa8255=0xf7;
pb8255=0x0d;
delay(20);
}
pa8255=0xae;
pb8255=0x0b;
delay(400);
while(d2--)
{ pa8255=0x9e;
pb8255=0x07;
delay(20);
pa8255=0xbe;
pb8255=0x0f;
delay(20);
}
}
}
四.实验报告要求
1.画出实验的硬件电路图及设计程序流程图;
2.整理实验程序清单,并给程序加详细注释;
3.总结实验中出现的问题并进行解决的方法;
4.给出实验结果及对实验的改进意见。
显示全部