历史上的今天
返回首页

历史上的今天

今天是:2025年02月06日(星期四)

正在发生

2020年02月06日 | TM1637四位数码管模块驱动(TM1637.h头文件)51单片机C语言

2020-02-06 来源:51hei

TM1637四位数码管模块是一个带时钟点的4位共阳数码管(0.36英寸)的显示模块,驱动芯片为TM1637,驱动方式为IIC,因此只需2根信号线即可使单片机控制4位8段数码管(数码管8级灰度可调)。


控制接口:共4个引脚(GND、VCC、DIO、CLK),GND为地,VCC为供电电源,DIO为数据输入输出脚,CLK为时钟信号脚。
 

TM1637.h单片机源程序如下:

sbit CLK= P3^4;   //定义模拟IIC总线的时钟线

sbit DIO = P3^5;   //定义模拟IIC总线的数据线

  

code unsigned char tab[] = 

{

        0x3F,/*0*/

        0x06,/*1*/

        0x5B,/*2*/

        0x4F,/*3*/

        0x66,/*4*/

        0x6D,/*5*/

        0x7D,/*6*/

        0x07,/*7*/

        0x7F,/*8*/

        0x6F,/*9*/

        0x77,/*10 A*/

        0x7C,/*11 b*/

        0x58,/*12 c*/

        0x5E,/*13 d*/

        0x79,/*14 E*/

        0x71,/*15 F*/

        0x76,/*16 H*/

        0x38,/*17 L*/

        0x54,/*18 n*/

        0x73,/*19 P*/

        0x3E,/*20 U*/

        0x00,/*21 黑屏*/

}; 


void Delay_us(unsigned  int i)

{

        for(;i>0;i--)

                _nop_();;

}


//IIC开始

void TM1637_start(void)

{

         CLK=1;

         DIO=1;

         Delay_us(2);

         DIO=0;

}



//IIC应答

void TM1637_ack(void)

{

        uchar i;

        CLK=0;

        Delay_us(5);

         //DIO=1;    

        while(DIO==1&&(i<250))i++;

        CLK=1;

        Delay_us(2);

        CLK=0;

}


//IIC停止

void TM1637_stop(void)

{

         CLK=0;

         Delay_us(2);

         DIO=0;

         Delay_us(2);

         CLK=1;

         Delay_us(2);

         DIO=1;

         Delay_us(2);

}


//写数据函数

void TM1637_Write(unsigned char DATA)   

{

        unsigned char i;   

        for(i=0;i<8;i++)        

        {

                CLK=0;     

                if(DATA & 0x01)

                        DIO=1;

                else DIO=0;

                 Delay_us(3);

                DATA=DATA>>1;      

                CLK=1;

                 Delay_us(3);

        }  

        //TM1637_ack();

}




//按顺序显示

void TM1637_display(uchar a,uchar b,uchar c,uchar d,uchar h)

{


        TM1637_start();

        TM1637_Write(0x40);//写数据+自动地址加1+普通模式

        TM1637_ack();

        TM1637_stop(); 

        TM1637_start();

        TM1637_Write(0xc0);//设置显示首地址即第一个LED

        TM1637_ack();


        TM1637_Write(tab[a]);

        TM1637_ack();

        TM1637_Write(tab[b]|h<<7);//h为1时显示时钟中间的两点

        TM1637_ack();

        TM1637_Write(tab[c]);

        TM1637_ack();

        TM1637_Write(tab[d]);

        TM1637_ack();


        TM1637_stop(); 

        TM1637_start();

        TM1637_Write(0x89);//开显示,2/16亮度

        TM1637_ack();

        TM1637_stop();

}


推荐阅读

史海拾趣

Accelink Technologies Co Ltd公司的发展小趣事

进入XXXX年代,ETA-USA开始将重心转向CAE(计算机辅助工程)软件的开发。公司投入大量资源进行研发,成功推出了一系列创新的CAE软件解决方案,如Dynaform,这些软件在覆盖件冲压成形、汽车碰撞模拟等领域取得了显著的应用效果。这一突破不仅巩固了ETA-USA在电子工程领域的地位,也为其后续发展奠定了坚实的基础。

Cofan Usa Inc公司的发展小趣事

在电子行业的早期,Cofan Usa Inc公司以其敏锐的市场洞察力和技术创新能力,成功研发出一款具有革命性的电子产品,这款产品凭借其出色的性能和用户体验,迅速在市场上获得认可。公司不断投入研发资源,持续推出新产品,逐渐在电子行业中树立起了技术领先的形象。

Connection One公司的发展小趣事

为了进一步提升国际竞争力,Connection One公司开始实施全球化战略布局。公司在全球范围内设立研发中心和销售网络,以便更好地了解当地市场需求并提供定制化产品。这一举措不仅加速了公司的国际化进程,还为其带来了更多的商业机会。

EF Johnson Technologies Inc公司的发展小趣事

面对日益激烈的国内市场竞争,EF Johnson公司制定了国际化战略,将目光投向了海外市场。公司通过与国外代理商的合作,成功将产品打入国际市场,并获得了良好的口碑。同时,公司还积极参与国际展会和技术交流活动,不断提升品牌影响力。在国际化战略的推动下,EF Johnson的海外市场份额逐步扩大,成为一家具有全球影响力的电子通信企业。

全鹏(CHAMPION)公司的发展小趣事

随着电子商务的快速发展,全鹏公司也积极拥抱这一趋势。自2010年起,全鹏公司成立了电子商务零售部门,并与国内知名电商平台建立了长期战略合作关系。通过线上销售过季产品和折扣商品,全鹏公司的电商业务迅速增长,成为其新的增长点。同时,全鹏公司还不断优化电商平台的运营和管理,提升客户服务质量,为客户提供更加便捷、高效的购物体验。

以上五个故事基于全鹏公司在电子行业的发展历程和成就进行虚构,旨在展示全鹏公司在市场拓展、品牌建设、质量管理、研发创新和电商业务等方面的努力和成果。

Axon' Cable公司的发展小趣事

在快速发展的同时,Axon' Cable公司始终关注环保问题。公司积极采用环保材料和工艺,减少生产过程中的污染排放。此外,Axon' Cable还投入大量资源研发环保型产品,为推动电子行业的可持续发展做出了积极贡献。这些环保举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

菜鸟问个问题??急

我用的单片机是mc9s12dg128,现在在调最小系统,情况是: 1、板子只焊了主芯片、电源部分、复位电路部分。电源部分正常,主芯片是新的,没有向里面下载过程序 2、复位电路的输出信号reset应该在没有按按键时是高电平,但是实际上测是低电平(未按 ...…

查看全部问答>

让你的电脑漂亮起来!为你的磁盘装上一见漂亮的衣裳吧!

http://download.eeworld.net/source/2310249(软件地址)这个软件安装好了以后,不单单是现在表面所看到的!图片地址(http://home.51.com/wutuanfeng/photo/item/100133258.html)在这些文件夹里面还是一样的效果背景图也是变化万千的!文件夹的 ...…

查看全部问答>

应用程序调用 wince5.0的 nandflash驱动 错误

使用 CreateFile 但始终都不成功,应用中代码如下                 hFunction = CreateFile( TEXT(\"DSK1:\"),                 GENERIC_ ...…

查看全部问答>

keil文件不能编译

我现在下载的是keil uv3,安装成功后,能够输入程序,但是编译不起来,在编译的时候会出现提示框:uVision3-Path undefined,\'tOOLS.INI\' does contain a tool path ,you have selecteed a device  where no toolchain has been install ...…

查看全部问答>

各位请看图片..

请问怎么实现按红键便会发出一段30多秒的对话?…

查看全部问答>

关于传真通讯过程问题

各位有玩过传真芯片没 传真通讯过程中发送端要发送TCF,是1.5s的“0”串 是1.5s的0x00么 另外 接收端怎样确定正确接收TCF 是判断接收的是不是1.5s的0x00么 各位指点下 谢谢…

查看全部问答>

单片机初学者问题,高人指点,急,在线等。谢谢了!!!!!!!!!!!

本人初学者,下载了平凡的单片机的电子书。本人初学,望高手指点,不要笑话。谢谢了。 问题如下: #include “reg51.h” sbit P1_0=P1^0; void main() { P1_1=0; } 这个是让接在p1.0脚上的led发光。既然都给p1_1赋了0,就是让p1.0脚发光 ...…

查看全部问答>

STM32中到底有没有内部基准?

见stm32CDE中文版数据手册33页5.3.4。 贴不了图啊。。。。…

查看全部问答>

自动喂狗狗装置

狗狗日常饮水是不能少的,不过很多粗心的主人也许会忘,并且狗狗喜欢新鲜的水,这就意味着需要随时添加。  这套自动狗狗喂水系统有两个传感器,一个靠近顶部,一个是底部,负责控制什么时候加水,什么时候停止加水   …

查看全部问答>

iar ewarm 6.10.1破解版

iar ewarm 6.10.1破解版资源由iar ewarm 6.10.1 官方原版文件加注册机组合而成, 安装原本文件之后运行注册机注册一下…

查看全部问答>