zoukankan      html  css  js  c++  java
  • 4*4行列式矩阵键盘

    /*
    时间:2014/11/15 22:27
    地点:信息楼 501
    4*4行列式键盘
    基本原理 :单片机的两个输出IO口短接,
    一个输出高电平,一个输出低电平,低电
    平相当于接地,短接后将另一个IO口也变
    成了低电平,这里使用的是行扫描。
    */

    #include<AT89X51.H>
    unsigned int led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
    unsigned int temp;
    unsigned int key;
    unsigned int i,j;

    void main(void)
    {
    while(1)
    {
    P3=0xff;
    P3_4=0;
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    for(i=0;i<50;i++)
    for(j=0;j<200;j++);
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    switch(temp)
    {
    case 0x0e: key=0; break;
    case 0x0d: key=1; break;
    case 0x0b: key=2; break;
    case 0x07: key=3; break;
    }
    P1=led[key];
    temp=P3;
    temp=temp&0x0f;
    while(temp!=0x0f)
    {
    temp=P3;
    temp=temp&0x0f;
    }
    }
    }
    P3=0xff;
    P3_5=0;
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    for(i=0;i<50;i++)
    for(j=0;j<200;j++);
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    switch(temp)
    {
    case 0x0e: key=4; break;
    case 0x0d: key=5; break;
    case 0x0b: key=6; break;
    case 0x07: key=7; break;
    }
    P1=led[key];
    temp=P3;
    temp=temp&0x0f;
    while(temp!=0x0f)
    {
    temp=P3;
    temp=temp&0x0f;
    }
    }
    }
    P3=0xff;
    P3_6=0;
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    for(i=0;i<50;i++)
    for(j=0;j<200;j++);
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    switch(temp)
    {
    case 0x0e: key=8; break;
    case 0x0d: key=9; break;
    case 0x0b: key=10; break;
    case 0x07: key=11; break;
    }
    P1=led[key];
    temp=P3;
    temp=temp&0x0f;
    while(temp!=0x0f)
    {
    temp=P3;
    temp=temp&0x0f;
    }
    }
    }
    P3=0xff;
    P3_7=0;
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    for(i=0;i<50;i++)
    for(j=0;j<200;j++);
    temp=P3;
    temp=temp&0x0f;
    if(temp!=0x0f)
    {
    switch(temp)
    {
    case 0x0e: key=12; break;
    case 0x0d: key=13; break;
    case 0x0b: key=14; break;
    case 0x07: key=15; break;
    }
    P1=led[key];
    temp=P3;
    temp=temp&0x0f;
    while(temp!=0x0f)
    {
    temp=P3;
    temp=temp&0x0f;
    }
    }
    }
    }
    }

  • 相关阅读:
    11.4 final类
    11.3 final方法
    【GIS】GIS坐标系
    【其他】短信轰炸
    【js】js传递对象
    【注解】Autowired
    【js】vue.js v-model
    【问题】ajax两种传递id值方式的区别
    【随笔】6.高筑墙 广积粮 缓称王
    【随笔】5.多恩亲王 Red Viper 奥伯伦之死。
  • 原文地址:https://www.cnblogs.com/liudehao/p/4100786.html
Copyright © 2011-2022 走看看