找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2945|回复: 1
收起左侧

利用51单片机和8255芯片做的交通灯程序

[复制链接]
ID:192035 发表于 2017-4-21 14:50 | 显示全部楼层 |阅读模式
#include <reg51.h> //定义51寄存器的头文件
#include <absacc.h>   //定义存储器形式的头文件
#define PA XBYTE[0xfcff]   //定义PA地址  P2.1接A1,P2.0接A0
#define PD XBYTE[0xffff] //定义控制字地址
void Delay10ms(unsigned int c);
void main(void)
{
PD = 0x80;//D7标志位为1,A口选择工作方式0,基本输入输出  
while(1)
{
        PA = 0xde; //东西红灯,南北绿灯;
  Delay10ms(500);
  PA = 0xdd; //东西红灯,南北黄灯警告,闪烁第一次;
  Delay10ms(50);
  PA = 0xdf; //东西红灯,南北熄灭;
  Delay10ms(50);
  PA = 0xdd; //东西红灯,南北黄灯警告,闪烁第二次;
  Delay10ms(50);
  PA = 0xdf; //东西红灯,南北熄灭;
  Delay10ms(50);
  PA = 0xdd; //东西红灯,南北黄灯警告,闪烁第三次;
  Delay10ms(50);
  PA = 0xdf; //东西红灯,南北熄灭;
  Delay10ms(50);
  
  PA = 0x7b; //东西绿灯,南北红灯;
  Delay10ms(500);
  PA = 0xbb; //东西黄灯警告,闪烁第一次,南北红灯;
  Delay10ms(50);
  PA = 0xfb; //东西熄灭,南北红灯;
  Delay10ms(50);
  PA = 0xbb; //东西黄灯警告,闪烁第二次,南北红灯;
  Delay10ms(50);
  PA = 0xfb; //东西熄灭,南北红灯;
  Delay10ms(50);
  PA = 0xbb; //东西黄灯警告,闪烁第三次,南北红灯;
  Delay10ms(50);
  PA = 0xfb; //东西熄灭,南北红灯;
  Delay10ms(50);
}
}

void Delay10ms(unsigned int c)   
{
    unsigned char a, b;
    for (;c>0;c--)
{
  for (b=38;b>0;b--)
  {
   for (a=130;a>0;a--);
  }      
}      
}
   
/*D0~7接P0~7;南北向接A5~7(红黄绿);东西向接A2~0( 红黄绿);8255的RD WR与单片机RD WR相连;CS、REST接地*/
回复

使用道具 举报

无效楼层,该帖已经被删除
ID:1 发表于 2017-4-21 22:30 | 显示全部楼层
好资料,楼主能分享一下原理图吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表