一、 概述 二、 51单片机 ,TM1638芯片+DS1302驱动共阴数码管时钟,最后包括按键检测程序(是分开的。) TM1638是带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集 成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。主要应用于冰箱、 空调 、家庭影院等产品的高段位显示屏驱动。 二、 特性说明 • 采用功率CMOS 工艺 • 显示模式 10 段×8 位 • 键扫描(8×3bit) • 辉度调节电路(占空比8 级可调) • 串行接口(CLK,STB,DIO) • 振荡方式:RC 振荡(450KHz+5%) • 内置上电复位电路 • 采用SOP28封装 三、、 管脚定义: 电路图数码管: 程序代码: /*************** TM1638.H 头文件 *******************/ #ifndef _TM1638_H #define _TM1638_H //引脚定义 sbit DIO=P1^0; sbit CLK=P1^1; sbit STB=P1^2; void TM1638_Write(unsigned char DATA) //写数据函数 { unsigned char i; for(i=0;i<8;i++) { CLK=0; if(DATA&0X01) DIO=1; else DIO=0; DATA>>=1; CLK=1; } } /*unsigned char TM1638_Read(void) //读数据函数 { unsigned char i; unsigned char temp=0; DIO=1; //设置为输入 for(i=0;i<8;i++) { temp>>=1; CLK=0; if(DIO) temp|=0x80; CLK=1; } return temp; } */ void Write_COM(unsigned char cmd) //发送命令字 { STB=0; TM1638_Write(cmd); STB=1; } void Write_DATA(unsigned char add,unsigned char DATA) //指定地址写入数据 { Write_COM(0x44); STB=0; TM1638_Write(0xc0|add); TM1638_Write(DATA); STB=1; } void init_TM1638(void) { unsigned char i; Write_COM(0x8a);//亮度 Write_COM(0x40); //写 数据命令 STB=0; TM1638_Write(0xc0); //写地址命令 for(i=0;i<16;i++) TM1638_Write(0x00); STB=1; } #endif /***************************DS1302.H 头文件***************************/ #ifndef DS1302_H #define DS1302_H #define uchar unsigned char #define uint unsigned int #include"DELAY.h" sbit acc0=ACC^0; //移位时的第 0 位 sbit acc7=ACC^7; //移位时用的第 7 位 uchar second,minute,hour,day,month,year,week,count=0; uchar ReadValue,num,time; sbit SCLK=P2^0; sbit DATA=P2^1; s...