历史上的今天
返回首页

历史上的今天

今天是:2025年12月20日(星期六)

2022年12月20日 | 51单片机四位数码管4个LED灯4个按键实现多种功能

2022-12-20 来源:zhihu

任务描述:用89C51单片机实现如下功能:<初始状态为数码管显示2020,四个灯灭。 1、电路有四个控制按键,四个灯,四个数码管; 2、按键1,按下,,第一个数码管开始从0-9递增,同时第一个灯亮; 3、按键2,按下,第二个数码管开始从0-9显示偶数,同时四个灯的偶数灯亮(即2、4个灯亮); 4、按键3,按下,第三个数码管从0-9显示奇数,同时四个灯的奇数灯亮(即1、3个灯亮); 5、按键4,按下,恢复到初始状态


硬件电路图

元件清单

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++);

}

推荐阅读

史海拾趣

上海晶岳(AFSEMI)公司的发展小趣事

随着移动互联网的快速发展,晶岳电子敏锐地捕捉到了移动终端支付芯片市场的潜力。2016年,公司推出了具有自主知识产权的移动终端支付芯片,以及过压保护芯片和充电管理IC系列产品。这一创新举措不仅使晶岳电子成功拓展了新的市场领域,也进一步提升了公司在行业内的知名度和影响力。同时,公司还加强了与移动支付平台的合作,共同推动移动支付技术的发展和应用。

芯茂微电子公司的发展小趣事

芯茂微电子自创立之初,就致力于高性能模拟及数模混合集成电路的研发。经过多年的努力,公司在BICMOS和BCD工艺平台上取得了显著的技术突破,成功开发出多款高性能、低功耗的集成电路产品。这些产品凭借卓越的性能和稳定性,迅速获得了市场的认可,广泛应用于消费类电子、通信、计算机等领域。公司的技术实力和创新能力得到了业界的一致认可,成为国内集成电路设计领域的佼佼者。

Blue Giga公司的发展小趣事

2015年,Silicon Labs(芯科科技有限公司)宣布收购Blue Giga。这一收购对于双方来说都是一个重要的里程碑。Silicon Labs通过收购获得了Blue Giga的先进技术和广泛的产品线,进一步增强了其在物联网和无线连接领域的竞争力。而Blue Giga则借助Silicon Labs的全球资源和市场渠道,实现了更快速的发展。

Enovation Controls LLC公司的发展小趣事

为了扩大市场份额和提升品牌影响力,Blue Giga积极寻求与各行业领导者的合作。它与微软、谷歌、英特尔等知名企业建立了战略合作伙伴关系,共同推动物联网和无线连接技术的发展。这些合作不仅为Blue Giga带来了更多的商业机会,也提升了其在行业中的地位。

Cellergy公司的发展小趣事

在电子行业的快速发展中,Cellergy公司以一项创新技术打破了行业内的常规。该公司成功研发出了一种新型电容器,其性能远超市场上同类产品。这一技术突破不仅为Cellergy公司赢得了大量订单,还使其在电子行业中的地位得到了显著提升。随着技术的不断完善和市场的不断拓展,Cellergy公司逐渐成为了电容器领域的佼佼者。

Chiefdom Electronic Co Ltd公司的发展小趣事

在市场竞争日益激烈的情况下,Chiefdom Electronic Co Ltd注重创新营销策略,以吸引更多消费者的关注。公司推出了一系列具有针对性的广告宣传活动,利用社交媒体、网络直播等新媒体渠道进行广泛传播。同时,公司还积极参与各类电子展会和论坛,展示其最新技术和产品,与潜在客户建立联系。这些创新营销策略使得公司的品牌知名度和美誉度不断提升,进而带动了销售业绩的稳步增长。

问答坊 | AI 解惑

PXA3XX平台(MONAHANS) 内存升级 128M(两片64)升级到256M(两片128)

    http://topic.eeworld.net/u/20081121/16/4ba50dc9-fe31-48b9-acce-0619bb010372.html?27857     和这个帖子的情况基本相同,从里面看到不少东西,但我们的两个平台实现上好像有些差距。config.bib和oemaddrtab都差不多。 ...…

查看全部问答>

GPIO驱动中,IO口发生中断后, 读取数据的问题.

GPIO驱动中,IO口发生中断后, 读取数据的问题. GPIO驱动中,IO口发生中断后,驱动是读IO口寄存器的一位数据,还是将IO口上的数据全部读完? 三星6410 BSP中有这样的参考代码吗? …

查看全部问答>

wince6.0 directshow例子编译问题

我编译DirectX\\Directshow\\ddxclmv项目,已经加入strmiids.lib strmbase.lib ddraw.lib了,但连接时依然报错, 无法解析的外部符号 \"void __cdecl DbgLogInfo(unsigned long,unsigned long,wchar_t const *,...) 无法解析的外部符号 \"public: ...…

查看全部问答>

请问三星的2410和atmel的9200的区别

使用上应该怎样选型谢谢!…

查看全部问答>

ARM7:bootloader

想问大家,在进行在线升级时,是不是必须使用分散加载的方法,如果不采用分散加载,而是在升级后重新分配堆栈,初始化目标板,然后在运行升级程序可不可以啊?我这样做,程序运行没问题,但不知道,这种方法可不可行…

查看全部问答>

Windows CE讨论群~ 群号49889190~欢迎高手们参加讨论给予帮助~也欢迎新手们增添人气

Windows CE讨论群~ 群号49889190~欢迎高手们参加讨论给予帮助~也欢迎新手们增添人气 新年快乐!…

查看全部问答>

基于智能传感的机动车动载荷监测系统软件设计

这是我的毕业设计,需要用到51单片机汇编程序,请问有人有资料吗???由于资料太少了,所以在这向大家求救啊!如果有就太感谢了 …

查看全部问答>

南华大学黄智伟系列--为竞赛准备好一些常用的电路模块

本帖最后由 paulhyde 于 2014-9-15 03:21 编辑 一. 需要准备的一些模块 1. 微控制器电路模块:单片机,FPGA,ARM,DSP 2. 微控制器外围电路模块:键盘及LED数码管显示器模块,LCD显示器模块,触摸屏显示器模块,RS-485总线通信模块,CAN总线通信 ...…

查看全部问答>

高级嵌入式软件测试,单片机开发人员(北京)

单片机开发工程师-1人岗位职责:1、负责数码电子雷管仿真校准平台软件代码编程; 2、负责延时控制电路测试; 3、负责延时控制电路测试平台的搭建与开发;4、负责研发文档的撰写。任职要求:1、电子工程、自动化、机电、计算机相关专业,本科或 ...…

查看全部问答>

关于用MATLAB画波特图时相角设置问题,急求大神指导!

这个图上画出的相频特性范围是360~90,但我希望设置为0~-270,请问程序上该如何改动? 下附程序: clear; s=tf(\'s\'); U1=35;R=2.45;L=38e-6;C=2820e-6;D=0.686; Gvd=-(U1/D)*(s*L/R-D*D)/(D*D+s*L/R+s*s*L*C); margin(Gvd); grid; …

查看全部问答>