作业帮 > 综合 > 作业

实在不会做这个:用AT89C52的P0口接8个发光二极管,开关K1和K2分别连至单片机引脚P3.2和P3.3.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 20:45:20
实在不会做这个:用AT89C52的P0口接8个发光二极管,开关K1和K2分别连至单片机引脚P3.2和P3.3.
要求按下K1后,如果8只LED为熄灭状态,则点亮,如果8只LED为点亮状态,则保持;按下K2后,不管8只LED是熄灭还是点亮状态,都变为闪烁状态.编制相应程序并且仿真.
其实这个程序很简单的,没有那么长的,更没有那么复杂呀.很简单的事,为什么要搞得那么复杂呢?见下图和程序:#include <reg52.h>
sbit k1=P3^2;
sbit k2=P3^3;
bit  glint;  //闪烁标志位
void delay()
{
 unsigned int i;
 for(i=12000;i>0;i--);
}
main()
{
 while(1)
 {
  if(glint==1)
  {
   P0=~P0;
   delay();
  }
  if(k1==0)
  {
   glint=0; //停止闪烁
   P0=0;    //全亮
   while(k1==0);
  }
  if(k2==0)
  {
   glint=1;  //开始闪烁
   while(k2==0);
  }
 }
}