【单片机】8255控制交通灯

代码详解

#include <reg51.h>
#include <intrins.h>
#include <absacc.h>

#define uchar unsigned char
#define PA XBYTE[0xff28]
#define PB XBYTE[0xff29]
#define PC XBYTE[0xff2A]
#define KZ XBYTE[0xff2B]

unsigned char j = 0;
unsigned char i = 0;
unsigned char code mon51[3] _at_ 0x3b; //保留0X3B开始三个程序空间作全速中断用

void delay(unsigned int i)
{
unsigned int j, k;
for (k = 0; k < i; k++)
for (j = 0; j < 1000; j++)
;
}
void main(void)
{
KZ = 0x80;
while (1)
{
PA = 0xB6;
PB = 0x0D;
delay(500);
//1
PA = 0X76;
PB = 0X0b;
delay(500);
//2
for (i = 0; i < 5; i++)
{
PA = 0XF6;
PB = 0XFF;
delay(100);
PA = 0XF6;
PB = 0X06;
delay(100);
}
//3
PB = 0X0D;
PA = 0XAD;
delay(500);
//4
for (i = 0; i < 5; i++)
{
PA = 0XBF;
PB = 0X0D;
delay(100);
PA = 0X9B;
PB = 0X0D;
delay(100);
}
}
}