TM1638是带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。主要应用于冰箱、空调 、家庭影院等产品的高段位显示屏驱动。
因为步进电机实验需要用到按键,但家有婴儿,没用松香铬铁之类的(技术早就还给老师了,也没有条件),只好在网上找,找到一个由TM1638做成的成品,感觉做工还不错,就买了一个,但其带的程序一时没看懂,花了些时间进行学习,觉得好精妙,就想分享一下。
绝不是给别人打广告,这程序确实我理解了很久。
附件是它完整的程序。
调用实现程序主要是显示与按键值获取。
1.显示:
为什么是0xc0|add呢?
因为芯片说明有:高位都是11, 就是C了。
void Write_DATA(unsigned char add,unsigned char DATA) //指定地址写入数据
{
Write_COM(0x44);
STB=0;
TM1638_Write(0xc0|add);
TM1638_Write(DATA);
STB=1;
}
2.按键获取:
注意这儿是从低位开始读的, 理解 的时候把B0~B7反过来理解就更好理解下面这个按键程序。在这儿花了很多时间来想这个。得到的 i 值就是按的第几个键。这儿真的这个程序写得太妙了,这个大神绝对的高手。
单片机程序
unsigned char Read_key(void)
{
unsigned char c[4],i,key_value=0;
STB=0;
TM1638_Write(0x42); //读键扫数据 命令
for(i=0;i<4;i++)
c[i][i]=TM1638_Read();
STB=1; //4个字节数据合成一个字节
for(i=0;i<4;i++)
key_value|=c[i][i]< for(i=0;i<8;i++)
if((0x01< break;
return i;
}
上一篇:42步进电机控制单片机程序
下一篇:基于51单片机的排队叫号系统仿真与程序源码设计
推荐阅读最新更新时间:2024-11-11 13:40
设计资源 培训 开发板 精华推荐
- 使用 ON Semiconductor 的 STK402-250 的参考设计
- AM2M-1505SH30-NZ 5 Vout、2W 单路输出 DC-DC 转换器的典型应用
- OP297FSZ-REEL平方根放大器典型应用
- 运行MEMS和环境传感器STM32 Nucleo扩展板
- LTC1515 的典型应用 - 具有 RESET 的升压/降压开关电容器 DC/DC 转换器
- MIC2044-1YTS 单通道、大电流、低电压、受保护配电开关的典型应用
- DN05103/D,具有高压线性稳压器的电源参考设计
- MCP1317 电压监控器的典型应用
- REF195 低压差电压基准的典型应用电路,用于低功率应变计电路
- 使用 Richtek Technology Corporation 的 RT8056 的参考设计