zoukankan      html  css  js  c++  java
  • 两个for循环的动态扫描程序

    /********************************************显示字符程序*******************************************/
    void Show_Letter(u16 *Letter) //显示一遍225个LED,放while里 所以可以一直显示
    {

    // int k;
    // for(k=0;k<15;k++) //将字符数组表存入replace[15]数组里,以便后面复位
    // {
    // replace[k]=Letter[k];
    // }
    //
    u8 adcx;
    adcx=Lsens_Get_Val();

    int i,j;
    for(i=0;i<15;i++){
    for(j=0;j<15;j++)
    {
    switch(i) //打开LED正极 DCT1-DCT15
    {
    case 0:GPIO_SetBits(GPIOB, GPIO_Pin_6);break;
    case 1:GPIO_SetBits(GPIOA, GPIO_Pin_9);break;
    case 2:GPIO_SetBits(GPIOA, GPIO_Pin_10);break;
    case 3:GPIO_SetBits(GPIOE, GPIO_Pin_1);break;
    case 4:GPIO_SetBits(GPIOB, GPIO_Pin_7);break;
    case 5:GPIO_SetBits(GPIOC, GPIO_Pin_9);break;
    case 6:GPIO_SetBits(GPIOA, GPIO_Pin_8);break;
    case 7:GPIO_SetBits(GPIOE, GPIO_Pin_4);break;
    case 8:GPIO_SetBits(GPIOE, GPIO_Pin_3);break;
    case 9:GPIO_SetBits(GPIOE, GPIO_Pin_2);break;
    case 10:GPIO_SetBits(GPIOE, GPIO_Pin_0);break;
    case 11:GPIO_SetBits(GPIOB, GPIO_Pin_9);break;
    case 12:GPIO_SetBits(GPIOB, GPIO_Pin_8);break;
    case 13:GPIO_SetBits(GPIOA, GPIO_Pin_11);break;
    case 14:GPIO_SetBits(GPIOA, GPIO_Pin_12);break;
    default:break;

    }
    switch(j) //轮询,将字符取模每位取出,如果为1,则置低LED负极,点亮LED DR1-DR15
    {
    case 0:{
    if((*Letter&0x0001))
    GPIO_ResetBits(GPIOB, GPIO_Pin_5); //置低 DR15
    else
    GPIO_SetBits(GPIOB, GPIO_Pin_5); //置高 DR15

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 1:{
    if ((*Letter&0x0002))
    GPIO_ResetBits(GPIOB, GPIO_Pin_4); //置低 DR14
    else
    GPIO_SetBits(GPIOB, GPIO_Pin_4 );

    // if(adcx>LIGHT) //检测到LED灯亮,返回FLAG2值,以便置换字符数组
    // FLAG2=15*i+j+1;
    };break;

    case 2:{
    if (((*Letter)&0x0004))
    GPIO_ResetBits(GPIOB, GPIO_Pin_3);
    else
    GPIO_SetBits(GPIOB, GPIO_Pin_3 );

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 3:{
    if (((*Letter)&0x0008))
    GPIO_ResetBits(GPIOD, GPIO_Pin_7);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_7 );

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 4:{
    if ((*Letter)&0x0010)
    GPIO_ResetBits(GPIOD, GPIO_Pin_6);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_6);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 5:{
    if ((*Letter)&0x0020)
    GPIO_ResetBits(GPIOD, GPIO_Pin_5);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_5);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 6:{
    if ((*Letter)&0x0040)
    GPIO_ResetBits(GPIOD, GPIO_Pin_4);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_4);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 7:{
    if ((*Letter)&0x0080)
    GPIO_ResetBits(GPIOD, GPIO_Pin_3);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_3);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 8:{
    if ((*Letter)&0x0100)
    GPIO_ResetBits(GPIOD, GPIO_Pin_2);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_2);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 9:{
    if ((*Letter)&0x0200)
    GPIO_ResetBits(GPIOD, GPIO_Pin_1);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_1);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 10:{
    if ((*Letter)&0x0400)
    GPIO_ResetBits(GPIOD, GPIO_Pin_0);
    else
    GPIO_SetBits(GPIOD, GPIO_Pin_0);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 11:{
    if ((*Letter)&0x0800)
    GPIO_ResetBits(GPIOC, GPIO_Pin_12);
    else
    GPIO_SetBits(GPIOC, GPIO_Pin_12);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 12:{
    if ((*Letter)&0x1000)
    GPIO_ResetBits(GPIOC, GPIO_Pin_11); //置低 DR3
    else
    GPIO_SetBits(GPIOC, GPIO_Pin_11);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 13:{
    if ((*Letter)&0x2000)
    GPIO_ResetBits(GPIOC, GPIO_Pin_10); //置低 DR2
    else
    GPIO_SetBits(GPIOC, GPIO_Pin_10);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;

    case 14:{
    if ((*Letter)&0x4000)
    GPIO_ResetBits(GPIOA, GPIO_Pin_15); //置低 DR1
    else
    GPIO_SetBits(GPIOA, GPIO_Pin_15);

    // if(adcx>LIGHT)
    // FLAG2=15*i+j+1;
    };break;
    default:break;
    //
    // if(adcx>LIGHT){
    // count1++;
    // switch(j){ //数组里置0,如果光笔读不到数据,可以考虑放在delay后面
    // case 0:Letter[i]&=0xFFFE ;break;
    // case 1:Letter[i]&=0xFFFD ;break;
    // case 2:Letter[i]&=0xFFFB ;break;
    // case 3:Letter[i]&=0xFFF7 ;break;
    // case 4:Letter[i]&=0xFFEF ;break;
    // case 5:Letter[i]&=0xFFDF ;break;
    // case 6:Letter[i]&=0xFFBF ;break;
    // case 7:Letter[i]&=0xFF7F ;break;
    // case 8:Letter[i]&=0xFEFF ;break;
    // case 9:Letter[i]&=0xFDFF ;break;
    // case 10:Letter[i]&=0xFBFF ;break;
    // case 11:Letter[i]&=0xF7FF ;break;
    // case 12:Letter[i]&=0xEFFF ;break;
    // case 13:Letter[i]&=0xDFFF ;break;
    // case 14:Letter[i]&=0x7FFF ;break;
    // default: ;break;
    // }
    // }
    }



    delay_us(30); //1ms延时保证亮度,长了会闪频,短了太暗,1ms左右刚好
    LED_OFF();//关闭所有LED
    }
    Letter+=1;
    }

    // int l;
    // if(count1>1){ //光笔第二次读到,原位置置1
    // for(l=0;l<15;l++){
    // Letter[k]=replace[k];
    // count1=0;
    // }
    // }


    }
    /**************************************************************************************************/

  • 相关阅读:
    爬虫学习——网页解释器简介
    爬虫学习——urllib2三种方法的实例
    JSLint在idea编译器中报错
    elasticsearch学习之根据发布时间设置衰减函数
    通过Function Score Query优化Elasticsearch搜索结果(综合排序)
    Java中List, Integer[], int[]的相互转换
    CentOS7查看和关闭防火墙
    Elasticsearch 自定义多个分析器
    利用grep-console插件使Intellij idea显示多颜色调试日志
    为ElasticSearch添加HTTP基本认证
  • 原文地址:https://www.cnblogs.com/since1996/p/13408216.html
Copyright © 2011-2022 走看看