问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

十字路*通灯控制2 设计任务:利用单片机设计一个十字路*通灯控制器 设计要求: 利用单片机的定

发布网友 发布时间:2022-04-23 00:45

我来回答

2个回答

热心网友 时间:2023-10-09 12:39

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P3^0; //东西向指示灯
sbit YELLOW_A=P3^1;
sbit GREEN_A=P3^2;
sbit RED_B=P3^3; //南北向指示灯
sbit YELLOW_B=P3^4;
sbit GREEN_B=P3^5;
sbit KEY1=P1^0;
sbit KEY2=P1^1;
sbit KEY3=P1^2;
//延时倍数,闪烁次数,操作类型变量
uchar Flash_Count=0,Operation_Type=1,LEDsng,LEDsns,LEDewg,LEDews,discnt;
uint Time_Count=0,time;
uchar ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
void displaysn()
{
 LEDsng=((time-Time_Count)/20)%10;
 LEDsns=((time-Time_Count)/20)/10;
 LEDewg=0x10;
 LEDews=0x10;
}
void displayew()
{
 LEDewg=((time-Time_Count)/20)%10;
 LEDews=((time-Time_Count)/20)/10;
 LEDsng=0x10;
 LEDsns=0x10;
}
//定时器0 中断函数
void T0_INT() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 switch(Operation_Type)
 {
 case 1: //东西向绿灯与南北向红灯亮
  if((Time_Count%20)==0)displayew();
  RED_A=0;YELLOW_A=0;GREEN_A=1;
  RED_B=1;YELLOW_B=0;GREEN_B=0;
  if(++Time_Count!=time) return;
  Time_Count=0;
  Operation_Type=2;
  break;
 case 2: //东西向黄灯开始闪烁,绿灯关闭
 LEDewg=0x0;
 LEDews=0x0;
  if(++Time_Count!=8) return;
  Time_Count=0;
  YELLOW_A=~YELLOW_A;GREEN_A=0;
  if(++Flash_Count!=6) return; //闪烁
  Flash_Count=0;
  Operation_Type=3;
  break;
 case 3: //东西向红灯与南北向绿灯亮
  if((Time_Count%20)==0)displaysn();
  RED_A=1;YELLOW_A=0;GREEN_A=0;
  RED_B=0;YELLOW_B=0;GREEN_B=1;
  if(++Time_Count!=time) return;
  Time_Count=0;
  Operation_Type=4;
  break;
 case 4: //南北向黄灯开始闪烁,绿灯关闭
 LEDsng=0x0;
 LEDsns=0x0;
  if(++Time_Count!=8) return;
  Time_Count=0;
  YELLOW_B=~YELLOW_B;GREEN_A=0;
  if(++Flash_Count!=6) return; //闪烁
  Flash_Count=0;
  Operation_Type=1;
  break;
 }
}
void t1_isr() interrupt 3
{
 TR1=0;
 TH1=(65536-3000)/256;
 TL1=(65536-3000)%256;
 TR1=1;
 switch(discnt)
 {
 case 0:
  P2=0x02;
  P0=ledtab[LEDewg];
  break;
 case 1:
  P2=0x01;
  P0=ledtab[LEDews];
  break;
 case 2:
  P2=0x08;
  P0=ledtab[LEDsng];
  break;
 case 3:
  P2=0x04;
  P0=ledtab[LEDsns];
  break;
 default:discnt=0;break;
 }
 discnt++;
 discnt&=0x03;
}
void delay()
{
 uint i;
 for(i=0;i<1000;i++);
}
//主程序
void main()
{
 TMOD=0x11; //T0 方式1
 EA=1;
 ET0=1;
 TR0=1;
 TH1=(65536-3000)/256;
 TL1=(65536-3000)%256;
 TR1=1;
 ET1=1;
 time=120;
 Time_Count=100;
 Time_Count=0;
 Operation_Type=1;
 while(1)
 {
  if(KEY1==0)    //按一下加1S
  {
   delay();
   if(KEY1==0)
   {
   while(KEY1==0);
   TR0=0;
   time+=20;
   LEDsng=(time/20)%10;
   LEDsns=(time/20)/10;
   LEDewg=0x10;
   LEDews=0x10;
   }
  }
  if(KEY2==0)    //按一下减1S
  {
   delay();
   if(KEY2==0)
   {
   while(KEY2==0);
   TR0=0;
   time-=20;
   if(time==0)time=20;
   LEDewg=(time/20)%10;
   LEDews=(time/20)/10;
   LEDsng=0x10;
   LEDsns=0x10;
   }
  }
  if(KEY3==0)   //启动
  {
   delay();
   if(KEY3==0)
   {
   while(KEY2==0);
   TR0=1;
   Time_Count=0;
   }
  }
 }
}

热心网友 时间:2023-10-09 12:39

这个至少红包。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? VB 控制picturebox内容适应A4纸张大小,横向纵向调整,适合打印输出和图形输出一致! 求问这个孩子的名字 Q333Q (输下关键字好找,,,BJD.SNG) 速求proteus中基于89C51做的交通信号灯或者其它的也行,要proteus和keil两部分文件 天然气分类中,CNG、SNG、LNG中甲烷含量的范围及压力范围是多少? 栩字起名用意好吗?吉祥吗 用vb数组设计打分统计程序 羽和习和栩字的五笔那样打 砂浆中水泥、砂、石灰用量如何计算 &quot;口\非\羽\高&quot;这四个字可以分别加哪个相同的字组成新字? SNJ是什么意思? 我的WIN7记事本文件打开是乱码,怎么办 LOL sng战队是苏宁的么 SNG传输图片的格式是什么? SNG电子竞技标志英文用的什么字体 vivox60pro手机发热严重是原因? vivox60手机发热? vivo x60发热 vivox6sa每次充电手机都发烫?怎么回事?是假的吗 冰柜买哪个牌子好? vivo新手机充电发烫什么原因? 请问这个台语(闽南语)姓名发音可能是哪些字呢? 求做150吨水泥罐的制作图纸 栩五笔怎么打字 如何评价小米9SE? 小米9se到底怎么样? 小米8se和小米9se对比有哪些区别? 小米9se怎么样 小米9se怎么样?值得买吗? 小米9SE怎么样?值不值得买?AMOLED屏到底好不好? 小米9和9se哪个颜值好看? 小米9se能玩刺激战场吗 小米8se与小米9se谁更好? 小米9Se对小米RedMik2O应该选那个? 爱奇艺怎么用支付宝登陆? 用支付宝付宝付了爱奇艺会员怎么登陆? 用支付宝在电脑上爱奇艺上直接扫码付费的会员怎么再次登录? 苹果六怎么用支付宝登陆爱奇艺? 爱奇艺麻将可以用支付宝登录吗? 用支付宝登上的小度爱奇艺VIP怎样取消? 爱奇艺自动绑定支付宝,怎样解除绑定支付宝