51单片机四位数码管4个LED灯4个按键实现多种功能

发布时间:2022-12-20  

任务描述:用89C51单片机实现如下功能:

硬件电路图

元件清单

C语言程序

#include

unsigned char tube1[]={0x5b,0x3f,0x5b,0x3f};//数码管初始状态2020 字符码

unsigned char tube2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极字符码

sbit key1=P2^0;    

sbit key2=P2^1;

sbit key3=P2^2;

sbit key4=P2^3;

sbit led1=P3^0;

sbit led2=P3^1;

sbit led3=P3^2;

sbit led4=P3^3;

void delay(unsigned int time);

void main()

{

   unsigned char i,W;

   while(1)

  {

    if(key1==1&key2==1&key3==1)   //初始状态

{

W=0x01;

P3=0X00;

    for(i=0;i<4;i++)

{

     P1 =W;

W<<=1;

      P0=tube1[i];

     delay(10);

      P1 =0x00;

  }

  }

  if(key1==0)    //  按键1按下

  {

  delay(10);

  if(key1==0)

  {

  led1=1;

  led2=0;

  led3=0;

  led4=0;

   W=0x08;

  for(i=0;i<10;i++)

  {

  if(key2==0|key3==0|key4==0)

  break;

      P1 =W;

      P0=tube2[i];

      delay(1000);

      P1 =0x00;

  } 

  }

     while(!key1);

       delay(10);

while(!key1);

}

  if(key2==0)    //按键2按下

  {

  delay(10);

  if(key2==0)

  {

   led1=0;

   led3=0;

   led2=1;

   led4=1;

   W=0x04;

  for(i=0;i<10;i=i+2)

  {

   if(key1==0|key3==0|key4==0)

  break;  

      P1 =W;

      P0=tube2[i];

      delay(1000);

      P1 =0x00;

  } 

  }

     while(!key2);

delay(10);

while(!key2);

}

    if(key3==0)    //按键3按下

  {

  delay(10);

  if(key3==0)

  {

   led1=1;

   led3=1;

   led2=0;

   led4=0;

   W=0x02;

  for(i=1;i<10;i=i+2)

  {

   if(key2==0|key1==0|key4==0)

  break; 

      P1 =W;

      P0=tube2[i];

      delay(1000);

      P1 =0x00;

  } 

  }

     while(!key3);

delay(10);

while(!key3);

}

}

}

void delay(unsigned int time)

{

   unsigned int j;

   for(;time> 0;time--)

   for(j=0;j<125;j++);

}

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    和指示灯显示对应楼层和运行方向等基本信息。设计所用的单片机为STC89C52为主要的控制器,自带AD转换,当一边有按键按下时,另一边以数字的形式在数码管上显示出相应的数字信息。 选择合适的芯片进行驱动电路的设计; 运行......
    程序主要包括主程序,读出温度子程序,计算温度子程序、数码管显示程序以及按键控制程序等。 一、温度显示系统总设计原理 系统设计总框架如图1. 1.控制模块:通过应用单片机,对系统进行初始化,主要完成对数码管......
    单片机-4x4个矩阵按键控制数码管显示数字程序;  1 #include "8051.h"   2 typedef unsigned char u8;   3 typedef unsigned......
    基于单片机的直流伺服电机控制系统设计;设计一个直流伺服电机控制系统,控制功能要求实现电机的启动、停止控制、正转、反转、加速、减速共六种功能,为了能实现人机交互,需要用到按键和数码管。 具体......
    小系统电路图 2.2、数码管显示电路设计 本设计采用的数码管是两位一体的共阳型八段数码管,其引脚分别控制数码管的位码和数码管的段码。通过单片机对每位码及段码进行编码,即可完成相应地位上显示数字0~9......
    设计 总体设计框图如图1-1所示,设计主要由单片机模块,按键控制模块和LCD12864显示模块组成,它们的作用分别为: 单片机模块:数据输入输出的处理。 按键模块:通过按键处理,将相关操作指令传送至单片机......
    程序的编写进行系统设计,这里推荐大家看看十天学会单片机。 0 引言 本系统采用AT89C51单片机作为控制器,用来实现实现四位数的“+”,“-”,“*”,“/”运算,运算结果通过数码管显示,并具......
    绍精确到十分位(即0.1s)的制作,并让其拥有启动,暂停,复位三个功能。 用到的单片机部分:定时器部分,独立按键的检测与应用,数码管的显示,并结合一些简单的程序即可实现。 用5位数码管来进行显示,分别......
    设置了一个初始标志位。 初始化时标志位设置为0,默认为循环显示,当它为1时,则单路显示,标志位通过外部按键控制。 3 . 2 数据处理子程序 ADC0809转换之后输出的结果是8位二进制数。由公式(1)可知,当......
    STM32单片机智能电饭煲系统设计方案;一、功能简介 本项目使用Proteus8.12仿真STM32单片机控制器,使用继电器加热/保温模块、数码管模块、按键模块、LED指示灯、蜂鸣器模块等。 主要......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>