本帖最后由 xxkj2010 于 2024-4-6 07:41 编辑
看到网上有八位的数码管模块,自己就很想做一个。
了解TM系列的数码管驱动芯片,觉得TM1638很合适。
因为根据手册说明,它能驱动共阴数码管,又能驱动共阳数码管,可谓是“双管齐下”。
况且,驱动时序又与TM1637差不多。
于是确定选择TM1638打板制作八位显示模块。因为手头共阳数码管偏多,所以选择了共阳驱动模式设计图纸。
可是,板子制作好了,真正驱动起来,却不是想像的那样简单!这是用1637驱动思路驱动的结果:
这是不是很丑陋?
还是回归TM1638手册,仔细分析共阳数码管的驱动方式。
觉得这方式很是独特,主要思路就是把段码与位码进行互换!
关键代码:
- void show(u8 wei,u8 num)
- {
- u8 i=0,dat=tm_dat[num];
- for(i=0; i<8; i++)
- {
- Write_Dat(i*2,(dat&0x01)<<wei);
- dat >>=1;
- }
- }
复制代码
但是,总是觉得太难了,有时间还是把TM1638模块改为共阴。
|