历史上的今天
返回首页

历史上的今天

今天是:2025年12月19日(星期五)

正在发生

2022年12月19日 | 51单片机矩形键盘控制数码管显示0-F,以及LED灯的亮灭

2022-12-19 来源:zhihu

电路图

总图

部分图1

部分图2

部分图3


元件清单

C语言程序

#include

#define uint unsigned int 

#define uchar unsigned char


//共阳数码管编码表&LED灯

uchar code table[] =

{0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};


//函数声明

void delay(uint time);   //延时函数

void display(uchar k);  //数码管显示0-F以及LED灯的亮灭

uchar getKey(); //读取键盘的数值


//主程序

void main(){

  uchar keyValue;

  while(1){

keyValue = getKey();  //读取键盘值

display(keyValue);    //数码管显示&LED亮灭

  }

}


void delay(uint time)

{

  uint i,j;

  for(i = 0; i    for(j = 0; j<110; ++j);

}


void display(uchar k)

{

  P0 = table[k];

  P1 = table[k];

}


uchar getKey()

{

  uchar x , y ;

  uchar result;

  // 计算行数X的值

  P2 = 0x0f; // 从P2口输出,写P2口

  if (P2 != 0x0f)// 从P2口输入,P2口

  {

  // 读出的不是0x0f说明有按键被按下

  delay(20);

  // 判断在哪一行

  switch (P2)

  {

    case 0x0e: x = 0; break;

    case 0x0d: x = 1; break;

    case 0x0b: x = 2; break;

    case 0x07: x = 3; break;

    default: break;

  }

  delay(10);

  // 计算列数y的值

  P2 = 0xf0; 

  if (P2 != 0xf0)

  {

  delay(20);

    switch (P2)

    {

      case 0xe0:y = 0; break;

      case 0xd0: y = 1; break;

      case 0xb0: y = 2; break;

      case 0x70: y = 3; break;

      default: break;

    }

    // 计算出结果,确定数码管显示的数字以及字母与LED的亮灭

    }

  }

  result = x * 4 + y;

  return result;

}


推荐阅读

史海拾趣

Armel Electronics Inc公司的发展小趣事

在电子行业中,技术更新迅速,创新是企业持续发展的动力。Armel Electronics Inc公司始终将研发创新作为公司的核心竞争力。公司不断投入资金,引进先进设备和技术,加强研发团队的建设。通过不断创新,Armel成功推出了一系列具有行业领先水平的新产品,为公司的持续发展提供了有力保障。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

Armel Electronics Inc公司的创立,源于几位电子工程领域的先驱者对于技术创新和市场前景的敏锐洞察。在创立初期,公司面临资金紧张、市场竞争激烈等多重挑战。然而,凭借对技术的热爱和对市场趋势的准确把握,Armel团队成功研发出了一系列具有竞争力的电子产品,奠定了公司的市场地位。

台湾岱恩(DAIN)公司的发展小趣事

林仁政跳出已有的框架,不断思考机箱的设计。他敏锐地觉察到人们对于免工具安装的主板散热片的偏好,并深知散热效果不仅仅取决于散热片和风扇,更需要考虑空气的流动情况。结合日本高水准的立体设计灵感,林仁政带领工程师挑战困难,成功设计出了一台铝制机箱。这一机箱不仅具有高度的创新性,更因其纯手工制作的特性而显得弥足珍贵,对Cooler Master的发展具有重要意义。

Arco Electronics公司的发展小趣事

Arco Electronics公司在早期就专注于研发新型半导体技术。在一次偶然的实验中,公司的研发团队发现了一种新型材料,这种材料在导电性能和稳定性上远超当时市场上的同类产品。公司迅速将这一发现转化为实际产品,并推向市场。这一技术突破使得Arco的产品在性能上有了显著优势,迅速获得了市场的认可,公司也因此迅速崛起。

CWIND公司的发展小趣事

在激烈的市场竞争中,CWIND公司始终坚持以客户为中心的服务理念。公司建立了完善的客户服务体系,为客户提供从产品咨询、购买到售后服务的全方位支持。同时,公司还注重品牌建设和宣传推广工作。通过加大广告投放力度、举办品牌活动等方式,CWIND逐渐提升了品牌知名度和美誉度。在消费者心中树立起了良好的品牌形象和口碑效应。

Flexxon Pte Ltd公司的发展小趣事

2020年新冠疫情的爆发对全球供应链造成了巨大冲击。然而,Flextronics(Flexxon Pte Ltd)凭借其强大的供应链管理和风险管理能力,迅速调整生产计划、优化资源配置、加强员工健康防护,确保了生产线的稳定运行和订单的及时交付。在疫情期间,Flextronics还积极为客户提供远程技术支持和解决方案,助力客户应对市场挑战。这一系列举措不仅展现了公司的韧性和实力,也进一步巩固了其在电子制造服务领域的领先地位。

问答坊 | AI 解惑

请教微电流信号的提取和放大

图为光学探测器的信号输出等效图,输出信号(Data)为电流信号,范围从0~1ma之间的幅度,频率为15MHz。要求转换成电压信号,精度达到0.1%,输出信号的幅度要求控制在0~1v以内,同时需要考虑温漂和保护等问题。本人刚刚介入模电不久,请高手给 ...…

查看全部问答>

手机测试方法欣赏

手机SAR测试简介 由于无线电设备(如手机)在世界范围内的广泛普及,越来越多的政府部门、电信法规机构等要求将电磁波辐射降低至一个合适的水平。 1、SAR是什么意思? SAR的英文全称为Specific Absorption Rate,中文一般称为电磁波吸收比值 ...…

查看全部问答>

一个奇怪的机床电路设计

最近厂里的一台宫野车床MIYANO老是烧一块IO板的保险,在检查电路的时候发现一个现象:开关电源的24V竟然和机床接地端子之间是通的。让小弟一阵激动以为找到的故障的原因,但是查了老半天没有找到到底是哪里出了问题。和其他同一型号的机床对比一下 ...…

查看全部问答>

有人想做driver打印机驱动程序吗??

现诚聘driver打印机驱动程序人才,有意者请联系…

查看全部问答>

wince6下使用pm控制电源,但是不知道为什么系统不会自动休眠下去?请高手解决!

请教一下,为什么在wince6下,我使用wince pm(sysgen_pm)来控制电源管理,设置如下:[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Power]     \"DisableGwesPowerOff\"=dword:1 [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentCon ...…

查看全部问答>

嵌入设备下如何实现的快速检索

前提:嵌入设备,CPU400,每条记录内容为tagData,共有100万甚至更多的记录, 要求:根据关键字检索szText字段,如何做到1s内能完成检索,并返回符合要求的记录. 不涉及数据库,数据自己存在文件里。 typedef struct tagData{     int iTextL ...…

查看全部问答>

wince 超级终端为什么配置调制解调器出错?

把超级终端加近wince5.0 image中,想和pc的超级终端上一样使用,但是配置时需要指定调制解调器。配完了,老是说调制解调器不能使用? 有没有人使用过wince的超级终端啊?请指教。谢谢!…

查看全部问答>

无线技术交流

无线技术交流qq:392061642  …

查看全部问答>

工作重要固然重要但还要学会调整自己的状态

工作固然重要,但是工作是很辛苦的,不管是心理上还是身体上,都是件苦差事。如何在工作之余愉悦自己的心情,发表下本人的工作调整方法! 首先不要总看着同事的短处,用积极的心态看待每件事情,时不常的出去散散心,就像我到了C系,每月系长组织 ...…

查看全部问答>

请教:荧光粉与芯片的匹配问题!

各位前辈,小弟近期实验的显色指数一直保持在50左右(很稳定!!!) 怎么做都提高不上去,不知有没有可能是荧光粉与芯片不匹配的原因? 恳请各位前辈帮我分析分析其中缘由。(我们做的是SMD-LED) 谢谢!…

查看全部问答>