51单片机怎么用矩阵键盘让数码管加一减一,就是每两个键盘控制一个数

51单片机怎么用矩阵键盘让数码管加一减一,就是每两个键盘控制一个数码管,一个让它加一一个让它减一

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^0;
sbit key2=P1^1;
uchar num=0;
//共阴数码管七段码
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};
void Delay1ms(uint i) //1ms延时程序
{
uint j;
for(;i>0;i--)
{
for(j=0;j<164;j++)
{;}
}
}
void main(void )//主程序
{
while(1)
{
if(key1==0)//判断按键1是否按下
{
Delay1ms(10);//延时消抖
if(key2==0)
{
while(key1==0);
num++;
if(num==10)num=0;//等待按键抬起
}
}
if(key2==0)//判断按键2是否按下
{
Delay1ms(10);//延时消抖
if(key2==0)
{
while(key2==0);
num--;
if(num==00)num=9;//等待按键抬起
}
}
P0=table[num];
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机如何把矩阵键盘控制数码管和独立键盘控制蜂鸣器共同实现_百度...
对于矩阵键盘常用的扫描方法为线反转查询法。具体的思路是:首先使行作为输入,使用单片机内部电阻上拉为高电平,列输出低电平,读行的状态。如果行有一个IO口是低,说明有键按下,进行下一步,否则退出扫描。如果有键按下,置列为输入,行输出低电平,读列的状态。最后根据 行列的状态查表就可以知道...

求助,C51单片机用矩阵键盘按制两位数管显示的方案 内详!
回答:LED = 第1次输入 + 第2次输入 × 10

请教51单片机矩阵键盘扫描数码管显示的问题
51单片机矩阵键盘扫描与数码管显示是最典型的电路,画仿真图更简单,用四位一体的数码管显示按键,可模拟计算器输入数字,按键后,每个按键的数依此向左移位显示。如下图所示的仿真图。

怎样用单片机实验板上的矩阵键盘和显示器编写一个简单的计算器,要求...
{ int k,n;uchar f,g,key,gn1;n=0;f=0;P0=0; \/\/初始时指示灯灭 while(1) \/\/不断查询是否有按键动作 { key=kbscan(); \/\/获取返回键值

帮忙看看这个51单片机的计数器程序哪里出问题了吧,用矩阵键盘控制的
1、数码管显示部分的问题,没有消 0 ,C 语言中变量初值都是 0 ,所以一开始就会显示 0 如果你不想让显示 0 ,那就要写消 0 的程序,就加两句话,很简单的 2、键盘处理部分的问题,如果确认你的键盘检测是对的,那么就是键值处理部分的问题了 3、51都是加法计数器,如果你要想进行减法计数的...

怎样用51单片机实现累加计时和倒计时,并用六个共阴极数码管显示出来。用...
本题给出基于单片机的数字中的设计,设计由单片机作为核心控制器,通过频率计数实现计时功能,将实时时间经由单片机输出到显示设备——数码管上显示出来,并通过键盘来实现启动、停止、复位和调整时间的功能。关键词: 单片机、数字钟、AT89S52、LED 1 引言在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让...

急求4*4矩阵键盘控制数码管显示! 51单片机
0xc6,0xa1,0x86,0x8e,0xff};\/\/共阳极数码管0~F void delay(uint);bit Test_Key();void display();void main(void){ uint x,y,z;TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;EA=1; \/\/开启总中断 ET0=1;TR0=0;while(1){ if(!TR0){ if(Test_Key()){ num...

51单片机,4*4矩阵键盘,八位数码管
51单片机,4*4矩阵键盘,八位数码管,仿真实例可以参考一下。include<reg51.h> define uchar unsigned char uchar temp;int key1,key,disbuf;\/\/ 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x...

c51 矩阵键盘
1、第二处 if(temp!=0xf0); 最后的分号应该是笔误,去掉;。 2、此子函数的末尾,缺}一个。 3、该子程序,影响全局变量key。另外,键值并没有给出5

能不能用mcs-51单片机做一个4x4矩阵键盘及四位显示电路 实现四位数加 ...
四位数加减,要用5位数码管才能正确显示结果,加法的结果可能出现5位。减法的结果,可能出现负数和4位值,这都需要5位数码管才能显示出来。至于实现代码,百度一下,有很多的,下来后稍加修改就可以了。不要期望得到完全符合你要求的代码,那样一方面出现几率较低,另一方面也不利于你的学习。

相似回答