关键词不能为空

当前您在: 主页 > 英语 >

TM1637驱动数码管

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 23:45
tags:

-

2021年2月1日发(作者:复制)


TM1637


是一种带键盘扫描接口的


LED(


发光二极管显示器


)


驱动控制专用电路 ,


内部集成



MCU

< br>数字接口,数据锁存器,


LED


高压驱动,键盘扫描等电 路。



采用功率


CMOS


工艺,显示模式


(8


段×


6



)


,支持共阳数码管输出,键扫描< /p>


(8


×


2bit)



增强型抗干扰按键识别电路,辉度调节电路


(


占空比


8


级可调


)


,两线串行接口


(CLK,DIO)


,振


荡方式:内置


RC


振荡


(450Khz+-5%)


,内置上电复位电路,内置自动消隐电路。



引脚功能:





当传输数据时,


< br>SCL


高电平时,


DIO


由高变 低则代表开始信号,



SCL


高电平时 ,


DIO


由低变高则代表停止信号,


只 有当


SCL


低电平时


DIO

< p>
上的数据才可以发生改变,



SCL


高电


平时


DIO


上的数据要 保持不变,


此时数据发送出去,


当正确传输

8


位数据后


TM1637


会第九< /p>


个时钟在


DIO


管脚上给出一个


ACK


信号,



DIO


拉低。


传输时序类似于


I2C


通信。


传输数据


是低位在前高位在后。



传输过程:









下面仅是数码管驱动程序:


(


注有待改进


)


驱动的下面这种数码管,普通 也行,只是看不到


1s


的闪烁效果。




/*******************************



**** Describe: TM1673


控制芯片,可以设置时间的倒计时


(


定时不准,可以 自己校准


)


,四个数码管


0xc0,0 xc1,0xc2,0xc3



****






Time: 2015.05.14



****




Author: zys



********************************/


#include


#include



sbit CLK = P0^0;



//


时钟信号



sbit DIO = P0^1;



//


数据


/


地址数据
























//


共阴极数码管



unsigned char code SEGData[]={0x3f,0x06 ,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//1-9


unsigned char code SEGDataDp[]={0xbf,0x 86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //


有小数点只用于地址


0xc1



unsigned char dpFlag = 0; //


控制第二个数码管的


dp


的显示




void TM1637_start( void );


void TM1637_stop( void );


void TM1637_write1Bit(unsigned char mBit);


void TM1637_write1Byte(unsigned char mByte);


void TM1637_writeCammand(unsigned char mData);


void TM1637_writeData(unsigned char addr, unsigned char mData);


void time_set(char hour, char min);


void time_judge( void );


void time_display( void );


void timer0_init( void );



void delay_140us( void );


void delay_1ms(unsigned int i);



unsigned int countTime = 0;


unsigned char time, sec;


struct {



char shi;



char ge;


}Hour;



struct {



char shi;



char ge;


}Min;


< /p>


/*************************************** ********************


*****


*****


主函数



*****


********************** *************************************/


void main( void )


{



timer0_init();



time_set(5, 0);



//


设置


5


小时倒计时




while(1)



{

































}


}



/ ************************************************** ******************


*


名称



: void time_set(char hour, char min)


*


功能



:


设置时间



*


输入



: char hour, char min


*


输出



:




** ************************************************** **********/


void time_set(char hour, char min)


{



if((hour < 0) || (min<0))



{







}



= hour/10;



= hour%10;



= min/10;



= min%10;



}



/************* ************************************************


*


名称



: time_judge( void )



hour = 0;


min = 0;


time_display();


if(countTime <= 10)


{



}


else


if(countTime <= 20)


{



}


else


{




}


countTime = 0;


time_judge();



dpFlag = 1;



dpFlag = 0;






//


显示时间



*


功能



:


判断时间变化



*


输入



: void


*


输出



:




*************** ***********************************************/


void time_judge( void )


{



if(++sec == 60)



{



































































}


}



/************************** ******************************************



sec = 0;


if(( || || || ) && (-- <= -1))


{

























}


else


if(((!) && (!) && (!) ) && ( <= -1))


{



}



= 0;


= 9;


if(() ||() && (-- <= -1))


{
















}


else


if((!) && (!) && (-- <= -1))


{



}


= 0;


= 5;


if( && (-- <= -1))


{







}


else


if((!) && (-- <= -1))


{



}


= 0;


= 9;


if(-- <= -1)


{



}


= 0;






//


60



-


-


-


-


-


-


-


-



本文更新与2021-02-01 23:45,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595894.html

TM1637驱动数码管的相关文章