打印

另种思路写的矩阵键盘的程序,12键

[复制链接]
2208|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
627949841|  楼主 | 2011-8-9 13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//矩阵键盘,2011.4.24
#include<reg51.h>
unsigned char k,m,w,n,q,p,l,lie=0,hang;//char占一个字节,int占两个字节
void delay(int t)
;
void saomiao();
sbit buzz=P3^7;
sbit yuyin=P3^5;
sbit zaiyuyin=P3^6;
main()
{
SCON=0x50;//模式yi,jieshou.01代表方式1,01代表允许串行接收。串口控制寄存器?
//pcon特殊功能寄存器控制波特率是否加倍,第一位smod=1波特率加倍。
TCON= 0X00;//关闭所有中断。定时计数器的控制寄存器
TMOD=0X20;//定时计数器设定t1工作方式2
TH1=0Xe8;//波特率1200,,11.0592m
TL1=0Xe8;
ES=1;//开串口中断
EA=1;//开总中断
TR1=1;//开始计时
TR0=1;


/*      yuyin=0;
       zaiyuyin=1;

   while(1)

   {

   

  yuyin=~yuyin;

  zaiyuyin=~zaiyuyin;


  delay(5000);



   }
*/

  
while(1)
{
P1=0Xf8;

k=P1;

if(k!=0xf8)

      {

  buzz=0;

       delay(70);

       m=P1;

   

      

       if(m!=0xf8)//延时后再次确认,目的消斗

            {





      

   

   switch(m)       //判断列            

   {

   case 0xf0:lie=0;break;//3jian
                   case 0xe8:lie=1;break;//6jian
                   case 0xd8:lie=2;break;//9jian
                   case 0xb8:lie=3;break;//0dquerenjian


   }

  

      P1=0X07;

   w=P1;

   

   switch(w)

   {



    case 0x06:hang=1;break;//2jian
                    case 0x05:hang=2;break;//5jian
                    case 0x03:hang=3;break;//8jian


   }

   while(w!=0x07)//撒手程序放在前面说幕由于已经撒手,P1值不对。

      {

   

                    w=P1;

  }

q=lie*4+hang;

switch(q)

{

case 1:SBUF=0X0d;break;

case 2:SBUF=0X30;break;

case 3:SBUF=0X08;break;



case 5:SBUF=0X39;break;

case 6:SBUF=0X38;break;

case 7:SBUF=0X37;break;



case 9:SBUF=0X36;break;

case 10:SBUF=0X35;break;

case 11:SBUF=0X34;break;


                case 13:SBUF=0X33;break;

case 14:SBUF=0X32;break;

case 15:SBUF=0X31;break;



}

  




      

             }

buzz=1;   



}






  }

}

void delay(int t)
{
int i;
while(t--)

for(i=0;i<125;i++);

}

相关帖子

沙发
sedatefire| | 2012-9-28 22:52 | 只看该作者
看到你这个delay硬延时,我就感觉难受
sbuf这样搞上去,不会重叠吗?

使用特权

评论回复
板凳
sedatefire| | 2012-9-28 22:53 | 只看该作者
另种思路,指的是哪一个

使用特权

评论回复
地板
sedatefire| | 2012-9-28 22:53 | 只看该作者
另种思路,指的是哪一个

使用特权

评论回复
5
engineertky| | 2012-10-5 09:09 | 只看该作者
走走学学

使用特权

评论回复
6
nelsonfung| | 2013-10-13 21:03 | 只看该作者
什么另类?

使用特权

评论回复
7
youluo235| | 2013-10-14 15:24 | 只看该作者

使用特权

评论回复
8
jjjkkk00| | 2013-10-18 15:17 | 只看该作者
中文注释晕了oh,my teacher...

使用特权

评论回复
9
diy1997| | 2013-10-19 13:29 | 只看该作者
这个,不是矩阵键盘吗?

使用特权

评论回复
10
hyh19890917| | 2013-10-20 16:17 | 只看该作者
程序写的太那个了,,,现在看到CPU空转就急得慌啊。。。。

使用特权

评论回复
11
dong00520| | 2013-10-21 09:44 | 只看该作者
有创意啊,支持楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

粉丝