• 大小: 15.94M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-06
  • 语言: 其他
  • 标签: 其他  

资源简介

jt.zip

资源截图

代码片段和文件信息

#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0xc00xf90xa40xb0
0x990x920x820xf8
0x800x900x880x83
0xc60xa10x860x8e};
uchar num=0num1=30num2=5num3=0;
uchar flag=0i=0j;
uchar shige;
uchar sign=0;      //交通灯开启关闭闪灭标志
sbit Bee=P1^5;   //蜂鸣器开关位
void Init();   //初始化函数,设置初始定义
void SMG();       //交通灯读秒
void display(uchar);   //交通灯显示函数
void delay(uint);   //延时函数

void main()
{
   Init();
   while(1)
   {
   if(num==20)
   {
      num=0;
          SMG();
}
   }
}

void Init()
{
TMOD=0x01;  //设置定时器工作在工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;  //设置计时时间为1ms
EA=1;      //打开总中断
ET0=1;  //开定时器1中断
TR0=1;      //启动定时器1
}

void SMG()
{
  if(flag==0)   //东西亮红灯,南北显绿灯
   {
P2=0xde;
display(num1);
num1--;
i++;
if(num1==5)  //红绿灯还有五秒时,红绿灯交替亮灭,并且蜂鸣器发出响声,提醒行人
{
sign=1;
Bee=0;  //开启蜂鸣器
}
  if(i==31)
{
    i=0;
num1=30;
sign=0;
Bee=1;
flag=1;
    }
}

if(flag==1)     //东西南北灯均显示黄灯
{
P2=0xed;
display(num2);
num2--;
    i++;
if(num2==2) //黄灯还有三秒时,红绿灯交替亮灭,并且蜂鸣器发出响声,提醒行人
{
sign=1;
Bee=0;  //开启蜂鸣器
}
if(i==6)
{
i=0;
num2=5;
sign=0;
Bee=1;
flag=2;
}
}

if(flag==2)  //东西显绿灯,南北显红灯
{
P2=0xf3;
display(num1);
num1--;
i++;
if(num1==5)  //红绿灯还有五秒时,红绿灯交替亮灭,并且蜂鸣器发出响声,提醒行人
{
   sign=1;
   Bee=0;   //开启蜂鸣器
}
if(i==31)
{
    i=0;
num1=30;
sign=0;
Bee=1;
flag=3;
    }
}

if(flag==3)  //东西南北均显示黄灯
{
P2=0xed;
display(num2);
num2--;
i++;
  if(num2==2)    //黄灯还有三秒时,红绿灯交替亮灭,并且蜂鸣器发出响声,提醒行人
{
sign=1;
Bee=0;   //开启蜂鸣器
}
if(i==6)
{
    i=0;
num2=5;
sign=0;
Bee=1;
flag=0;
}
            }
}

void delay(uint z)  //延时函数,延时Z毫秒
{
  uint xy;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}

void display(uchar a)  //数码管动态显示函数
{
shi=a/10;
ge=a%10;

for(j=0;j<200;j++)
{         
P1=0xfa;
P0=table[shi];
delay(1);
    P1=0xff;

P1=0xf5;
P0=table[ge];
delay(1);
P1=0Xff;
}
}

void time_1() interrupt 1    //定时器工作在方式1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(sign==1)
{
num3++;
if(num3==10)
{
P2=0xff;     //使交通灯全灭
Bee=~Bee;     //取反,使蜂鸣器响静交替变化
num3=0;
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     361018  2006-10-05 07:56  芯片PDF文档\L2A板子芯片文档\at89s52.pdf

----------- ---------  ---------- -----  ----

               361018                    1


评论

共有 条评论