您的位置 首页 IC

51单片机系列连载8—独立键盘与矩阵键盘

在前面我们讲的都是向单片机中向外输出数据,今天我们开始介绍一下如何向单片机里面输入数据,也就是键盘。键盘有两种,独立式键盘与行列式

在前面咱们讲的都是向单片机中向外输出数据,今日咱们开端介绍一下怎么向单片机里边输入数据,也便是键盘。

键盘有两种,独立式键盘与行列式矩阵键盘。

独立式键盘是指直接用一根I/O口线构成的单个按键电路,每个I/O口的按键不会影响别的一个,详细电路图如下:

接下来看一个程序,这个程序主要是按键二极管亮,一起按一下数码管显现一下,往下加,加到9,详细程序如下:

#include

#defineuintunsignedint;

#defineucharunsignedchar;

sbitd1=P1^2;

sbitduan=P2^2;

sbitwei=P2^3;

sbitkey1=P3^3;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

ucharnum,t1,y,z;

voiddelay(uintz)

{

uintt1,y;

for(t1=z;t1>0;t1–)

for(y=110;y>0;y–);

}

voidmain()

{wei=1;

P0=0xfe;

wei=0;

key1=1;

while(1)

{

if(key1==0)

{

delay(10);

if(key1==0)

{

d1=0;

num ;

if(num==10)

num=0;

}

while(key1==0);//这个句子加的好奇特

}

else

d1=1;

duan=1;

P0=table[num];

duan=0;

}

}

可是在仿真时就出现问题了,C(15):errorC141:syntaxerrornear;对应的是这句voiddelay(uintz),但直到现在我都不知道它究竟哪里错了,真悲痛,先记下来,今后有时刻回过头再看。

矩阵式键盘跟独立式键盘相反,彼此之间是有联络的,如下图:


矩阵式键盘的原理也很简单,跟独立按键的基本原理是相同的,可是它是一行一行扫描的,因为时刻联系就不做过多剖析,详细看一下下面的编程:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/257469.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部