收藏 分享(赏)

TM1637驱动数码管.doc

上传人:j35w19 文档编号:7805952 上传时间:2019-05-26 格式:DOC 页数:10 大小:520KB
下载 相关 举报
TM1637驱动数码管.doc_第1页
第1页 / 共10页
TM1637驱动数码管.doc_第2页
第2页 / 共10页
TM1637驱动数码管.doc_第3页
第3页 / 共10页
TM1637驱动数码管.doc_第4页
第4页 / 共10页
TM1637驱动数码管.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、TM1637 是一种带键盘扫描接口的 LED(发光二极管显示器 )驱动控制专用电路,内部集成有 MCU 数字接口,数据锁存器,LED 高压驱动,键盘扫描等电路。采用功率 CMOS 工艺,显示模式(8 段6 位),支持共阳数码管输出,键扫描(82bit),增强型抗干扰按键识别电路,辉度调节电路(占空比 8 级可调 ),两线串行接口(CLK,DIO),振荡方式:内置 RC 振荡(450Khz+-5%),内置上电复位电路,内置自动消隐电路。引脚功能:当传输数据时,当 SCL 高电平时,DIO 由高变低则代表开始信号,当 SCL 高电平时,DIO 由低变高则代表停止信号,只有当 SCL 低电平时 DI

2、O 上的数据才可以发生改变,在 SCL高电平时 DIO 上的数据要保持不变,此时数据发送出去,当正确传输 8 位数据后 TM1637会第九个时钟在 DIO 管脚上给出一个 ACK 信号,把 DIO 拉低。传输时序类似于 I2C 通信。传输数据是低位在前高位在后。传输过程:下面仅是数码管驱动程序:(注有待改进)驱动的下面这种数码管,普通也行,只是看不到 1s 的闪烁效果。/* Describe: TM1673 控制芯片,可以设置时间的倒计时(定时不准,可以自己校准),四个数码管 0xc0,0xc1,0xc2,0xc3* Time: 2015.05.14* Author: zys*/#includ

3、e #includesbit CLK = P00; /时钟信号sbit DIO = P01; /数据/ 地址数据/共阴极数码管unsigned char code SEGData=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/1-9unsigned char code SEGDataDp=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /有小数点只用于地址 0xc1unsigned char dpFlag = 0; /控制第二个数码管的 dp 的显示void TM1637_start(

4、 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_dis

5、play( 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;/* 主函数*/void main( void )timer0_init();time_set(5, 0); /设置 5 小时倒计时while(1)time_display(); /显示时间if(

6、countTime loop) /取得最低位CLK = 0;delay_140us();DIO = 1;delay_140us();CLK = 1;delay_140us();while(DIO = 1); /获得应答位 /* 名称 : void TM1637_writeCammand(unsigned char mData)* 功能 : 写指令 1byte* 输入 : unsigned char mData* 输出 : 无*/void TM1637_writeCammand(unsigned char mData)TM1637_start();TM1637_write1Byte(mData)

7、; /数据TM1637_stop();/* 名称 : void TM1637_writeData(unsigned char addr, unsigned char mData)* 功能 : 固定地址写数据 1byte* 输入 : unsigned char addr, unsigned char mData* 输出 : 无*/void TM1637_writeData(unsigned char addr, unsigned char mData)TM1637_start();TM1637_write1Byte(addr); /地址TM1637_write1Byte(mData); /数据T

8、M1637_stop();/* 名称 : void timer0_init()* 功能 : 定时 50ms,实际运行中由于指令运行造成的延时,实际时间肯定大于 50ms* 输入 : 无* 输出 : 无*/void timer0_init( void )TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;ET0=1;EA=1;TR0=1; /* 名称 : * 功能 : 定时 50ms,实际运行中由于指令运行造成的延时,实际时间肯定大于 50ms* 输入 : 无* 输出 : 无*/void timer0_isr() interrupt 1TH

9、0=(65535-50000)/256; /50msTL0=(65535-50000)%256; /countTime+;/* 名称 : Delay_1ms(unsigned int i)* 功能 : 延时子程序,延时时间为 140us* 输入 : * 输出 : 无*/void delay_140us( void )int i;for(i=0; i20; i+)_nop_();/* 名称 : Delay_1ms(unsigned int i)* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x (延时一毫秒的个数)* 输出 : 无*/*void Delay_1ms(unsigned int i)/1ms 延时unsigned char x,j;for(j=0;ji;j+)for(x=0;x=148;x+);*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报