zoukankan      html  css  js  c++  java
  • 数码管和灯

    led中所涉及到的几个地址的说明:
    #define CS1BASE (0x11000000)
    #define SEGP ((0x10000000+0x248))
    #define DIGIP ((CS1BASE+0x0800))
    #define LEDP ((CS1BASE+0x0C00))

    上述几个值都是由硬件设计人员给出的。其中,

    DIGIP 为位寄存器地址(总共有8个数码管,用来控制要对哪个数码管进行操作);
    SEGP
    为段寄存器地址(其作用有两个:一是控制某个数码管的具体显示内容;二是设定要控制哪个灯);
    LEDP
    为控制灯的亮与灭(即只存在两个有效的值:0和1)

    例子如下:

    void myledtest()
    {
        //数组的内容分别为:8 7 6
        unsigned 
    long int    tt[3= {0x0000fe,0x0000e0,0x0000be};

        
    int i = 0;

            
    while (i<3)
            {


       
                //所有数码管的显示清空,即不显示
                
    *(unsigned short*)(DIGIP)=0x00;

                //指定数码管显示的内容
                
    *(unsigned short*)(SEGP)=tt[i];           
                //指定用哪个数码管来显示
                
    *(unsigned short*)(DIGIP)=0x0080>>i;

                i
    ++;
            }
    }

    void myLighttest()
    {

        
    int i = 0;

            
    while (i<8)
            {            
                //下行主要目的是清除数码管的显示,与灯并无关系       
                
    *(unsigned short*)(DIGIP)=0x00;           
               
    //下行清空灯的显示,即让所有灯都灭
                *(unsigned short*)(LEDP)=0x00;   

                //设定哪个灯
                
    *(unsigned short*)(SEGP)=0x80 >> i;
                //设定由上句指定的灯为亮状态
                *(unsigned short*)(LEDP)=1;
           
                i
    ++;
            }
    }

    注意:因为 SEGP是控制数码管和灯所公用的,所以容易搞混。




  • 相关阅读:
    angularJS 数组更新时重新排序之解决方案一:这个坑,绕开吧,不跳了……
    移动web开发之rem响应式设计
    IIS wAS机制
    触摸方法
    滑动加载函数
    js有关数组的函数
    用absolute进行页面的自适应布局
    absolute
    清除float的方法
    图片和文字的位置垂直居中和左右摆放
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/747599.html
Copyright © 2011-2022 走看看