2246|3

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

单片机LED显示问题 [复制链接]

我想实现单片机LED动态显示,有六个数码管,能够任意实现我要显示的数,
如12\1.234\65.87\897.435等等.不知道程序该如何去写,请高手指教.

最新回复

采用编码方式,用C实现不难啊  详情 回复 发表于 2007-2-25 17:26
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
编写一个底层驱动数码管程序,就是动态扫描数码管的程序。显示的字符通过建立一个字符表格进行译码。在单片机程序运行时,开定时中断,定时中断调用数码管驱动程序。定时中断时间一定要符合动态扫描频率
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
正好我手上有这类代码,呵呵




U8 code dis_code[] =
{
        0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,       //0-7
        0xdf,0xd7,0xcf,0xda,0x1b,0xdc,0x9b,0x8b,       //8-F
        0x1a,0xce,0x5e,0x8f,0x80,0x20              //L H U P - .
};

void main(void)
{
        Init();

        while(1)
        {
        }
}

/***************************************************************/
/***   Init()                **************************************/
/***   初始化函数                ****************************************/
/***                   ****************************************/
/***************************************************************/
void Init(void)
{
        /*50ms定时设置*/
        TH0 = -DELAY_CONST/256;
        TL0 = -DELAY_CONST%256;
        /*启动计数器0,关闭计数器1*/
        TR0 = 1;
        ET0 = 1;

}

/***************************************************************/
/***   Timer0_int()                                           *************************/
/***   定时器0 中断响应函数                           *************************/
/***   2007.01.09                                           *************************/
/***************************************************************/
void Timer0_int(void) interrupt 1
{
//重置定时0
        TH0 = -DELAY_CONST/256;
        TL0 = -DELAY_CONST%256;
        Display();//调用显示函数
          led_index++;       
        led_index &= 0x07;
}
/***************************************************************/
/***   Display()                                ********************************/
/***   刷新一位显示                                ********************************/
/***   全局变量  display_index         ********************************/
/***   2007.01.09                                ********************************/
/***************************************************************/
void Display(void)
{
    switch (led_index)
    {
        case 0:
                LED8 = 1;
                LEDD = m_dis[0];
                  LED1 = 0;
                break;
        case 1:
                LED1 = 1;
                LEDD = m_dis[1];
                  LED2 = 0;
                break;
        case 2:
                LED2 = 1;
                LEDD = m_dis[2];
                  LED3 = 0;
                break;
        case 3:
                LED3 = 1;
                LEDD = m_dis[3];
                  LED4 = 0;
                break;
        case 4:
                LED4= 1;
                LEDD = m_dis[4];
                LED5 = 0;
                break;
        case 5:
                LED5 = 1;
                LEDD = m_dis[5];
                LED6 = 0;
                break;
        case 6:
                LED6 = 1;
                LEDD = m_dis[6];
                LED7 = 0;
                break;
        case 7:
                LED7= 1;
                LEDD = m_dis[7];
                LED8 = 0;
                break;
           }
}
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
采用编码方式,用C实现不难啊
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表