急求4*4矩阵键盘控制数码管显示,AT89C51单片机,共阴极8位数码管(4位的也可以)

给我设计下代码,用C语言。4*4矩阵键盘按键输入,数码管显示对应输入的数字,从最右边开始显示第一输入的数字,从右向左显示输入的数字,第二个输入的数字就显示在最右边一位,第一个输入的数字就向左移动一位,以此类推。初始值全为0,最后保持八位数字3秒。{追加分数}

你的8位数码管,没问题? 别人都是,8个IO口设数、3个IO口选段,算,也不知道你这是干嘛的
温馨提示:内容为网友见解,仅供参考
第2个回答  2014-04-21
第3个回答  2014-04-21
我可以代你写.Q6256Q16751

在PROTEUS中做个AT89C51单片机接4X3矩阵键盘和LED数码管显示,汇编程 ...
……LCALL KEYPRO ---调用子程序 MOV P2,A ; 十六进制数直接送出,4脚LED显示 ……子程序,应该使用RET指令返回,才能把A送到4脚LED显示。但是 KEYPRO 中,没有返回。并且在 KEYPRO 中,还有一个 LCALL KEYPRO 指令!形成了递归,且永远不返回。一会就把堆栈填满了。

利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
本文数字时钟设计原理主要利用AT89S52单片机,由单片机的P0口控制数码管的位显示,P2口控制数码管的段显示,P1口与按键相接用于时间的校正。在设计中引入220V交流电经过整流、滤波后产生+5V电压,用于给单片机及显示电路提供工作电压。整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号...

怎样用单片机控制直流电动机
1、通过设置PWM波的占空比来控制直流电机的转速,占空比越大,转速越快,越小转速越低。2、当然单片机的I\/O口是不能直接驱动电机的,所以你还需要用一个马达驱动芯片。像LG9110、CMO825等。马达驱动IC可以将单片机I\/O输出信号放大,这样电机中流过的电流足够大,电机才能转起来。3、你要是不清除PWM是...

急需智能仪器课程设计·· 加急
HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64个LED点阵)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵。该芯片内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279(A)还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279与单片机仅需4条接口线,其中C...

单片机实训总结范文5篇
▼ 单片机实训总结范文篇一: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实...

单片机开发板的知名品牌有哪些?
三、单片机基本资源扩展设计:包括存储器扩展设计、可编程和不可编程I\/O接口扩展设计、I2C总线的模拟设计等;四、输入输出设备的设计:包括独立式按键和矩阵键盘的各种输入方法、数码管及液晶显示器的接口设计、蜂鸣器的设计;五、输入通道和输出通道的设计:包括一定模拟和数字信号量的输入、频率量的输入方法...

单片机原理、应用与PROTEUS仿真的章节目录
第5章 AT89C51输入\/输出口及其简单应用5.1 I\/O口结构与工作原理5.1.1 P1口5.1.2 P3口5.1.3 P2口5.1.4 P0口5.2 I\/O口的负载能力5.3 I\/O口的简单应用5.3.1 单片机控制的跑马灯5.3.2 单片机控制数码管静态显示实验5.3.3 单片机用开关控制LED显示实验5.3.4 单片机用开关控制数码管显示实验5.4 PROTEUS仿真5.5 ...

什么是单片机的最小系统
单片机把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I\/O设备。概括地讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

万和热水器u3,5v稳压出来只有4.9v什么情况
位选码由89C51的P14~P16口输出并经译码器74LS138送往开关管Y1~Y8的基极,以对数码管LED1~LED8进行位选控制,这样,4个数码管便以100ms的时间间隔轮流显示。由于人眼的残留效应,这4个数码管看上去几乎是同时显示。2.4.2键盘部分 键盘是有无数个按键组成的开关矩阵,它是一种廉价的输入设备。一个键盘通常包括数据...

用单片机设计一个时钟,可显示时和分,可以调时间,也要有闹钟功能,要有设...
P2=tab[h\/10];小时显示 disp();P2=tab[h%10];disp();P2=tab[m\/10];分钟显示 disp();P2=tab[m%10];disp();P2=tab[s\/10];秒显示 disp();P2=tab[s%10];disp();} s++;while(s==60)秒进一位,到60清0 { m++;s=00;} while(m==60)分钟进一位,到60清0 { h++;m=...

相似回答