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是控制数码管和灯所公用的,所以容易搞混。




  • 相关阅读:
    使用watch定时执行命令并显示结果
    LVS配置
    myeclipse通过查询源码查询方法
    导入struts2框架项目无法运行tomcat
    解决eclipse/myeclipse导入项目时出现红色叹号的方法
    my/eclipse中的debug调试
    导入项目后servlet报错
    转到Servlet出现500型错误
    关于快捷键导包失败
    关于jsp找不到servlet
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/747599.html
Copyright © 2011-2022 走看看