|
我做了多个LED数码管显示的电子钟和定时器,使用74HC595驱动, 一直通电使用,目前已经有3个74HC595损坏, 亮度又不算高,驱动电流也不大,搞不清哪里出问题了。
最近尝试用TM1640驱动,有8级亮度调节, 无需限流电阻,与单片机连接只需2个端口。网上找不到合适的驱动程序,按立创商城提供的PDF文档列出的数据传输格式,我自己编写了C51单片机的驱动程序,给有需要的人参考下。
一片TM1640可以驱动8段*16位的数码管,比74HC595方便很多。
TM1640_command3的低3位是亮度设置。
- //----------下面是端口和变量定义
- sbit TM16_DIN = P3^5; //TM1640的串口数据输入DI
- sbit TM16_SCK = P3^6; //TM1640的时钟输入SCK
- unsigned char xdata TM1640_DATA[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//显示的数据
- unsigned char xdata TM1640_command1=0x40;//数据设置
- unsigned char xdata TM1640_command2=0xc0;//地址设置
- unsigned char xdata TM1640_command3=0x89;//显示模式与亮度
- //---------------------------下面是驱动程序
- //TM1640--共阴LED驱动
- void TM16_LED() //TM1640共阴LED驱动2
- {
- unsigned char xdata i,j=0,k=0;
- unsigned char xdata tmp1; //临时缓存
- TM16_DIN =1; //数据和时钟端口拉高
- TM16_SCK =1;
-
- TM16_DIN = 0; //开始位
- nop_();
- TM16_SCK =0; //开始位
- nop_();
- tmp1=TM1640_command1; //先发送数设置字节
- for(i=0; i<8; i++)
- {
- tmp1>>=1;//低位移出到CY
- TM16_DIN = CY;
- TM16_SCK =1;
- nop_();
- nop_();
- TM16_SCK =0;
- nop_();
- TM16_DIN =0;
- }
- TM16_SCK =1; //停止位
- nop_();
- TM16_DIN =1; //停止位
- nop_();
- TM16_DIN = 0; //开始位
- nop_();
- TM16_SCK =0; //开始位
- nop_();
- tmp1=TM1640_command2; //再发送地址字节
- for(i=0; i<8; i++)
- {
- tmp1>>=1;//低位移出到CY
- TM16_DIN = CY;
- TM16_SCK =1;
- nop_();
- nop_();
- TM16_SCK =0;
- nop_();
- TM16_DIN =0;
- }
- for(j=0; j<16; j++) //j是LED数码管显示个数
- {
- tmp1=TM1640_DATA[k];
- for(i=0; i<8; i++)
- {
- tmp1>>=1;//低位移出到CY
- TM16_DIN = CY;
- TM16_SCK =1;
- nop_();
- nop_();
- TM16_SCK =0;
- nop_();
- TM16_DIN =0;
- }
- k++;
- }
- TM16_SCK =1; //停止位
- nop_();
- TM16_DIN =1; //停止位
- nop_();
- TM16_DIN = 0; //开始位
- nop_();
- TM16_SCK =0; //开始位
- nop_();
- tmp1=TM1640_command3; //发送亮度控制字节
- for(i=0; i<8; i++)
- {
- tmp1>>=1;//低位移出到CY
- TM16_DIN = CY;
- TM16_SCK =1;
- nop_();
- nop_();
- TM16_SCK =0;
- nop_();
- TM16_DIN =0;
- }
- TM16_SCK =1; //停止位
- nop_();
- TM16_DIN =1; //停止位
- nop_();
- }
复制代码
相关阅读:硬件SPI驱动TM1640:https://www.mydigit.cn/thread-386290-1-1.html
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|