嵌入式驱动程序(5-5)点灯大师⑤之TM1668

作为一个嵌入式工程师,“点灯”是必备技能,哈哈哈(手动斜眼笑),除了普通IO口可以控制led灯亮灭之外,还有很多驱动ic,只需要2或3根IO线就可以控制几十盏灯。所以会出一系列“点灯”文章。励志成为一个“点灯”大师。

点灯大师⑤之TM1668

1. 资料

百度

2. 基本知识点

  • 串行接口(CLK,STB,DIO)

3. 函数功能

/
//从TM1668读取一个字节
unsigned char TM1668_ReadOneByte(void)
{unsigned char i,data;//DAT设置成输入TM1668_DAT_INPUT();_Delay_(1);//拉低片选信号TM1668_STB_Clr();_Delay_(1);//拉低时钟信号TM1668_CLK_Clr();_Delay_(1);for(i = 0; i < 8;i++){      data >>= 1;TM1668_CLK_Clr();_Delay_(1);//拉高时钟,上升沿读取信号TM1668_CLK_Set();_Delay_(1);if(TM1668_DAT_STATE()){//高电平data |= 0x80;}else{//低电平data &= 0x7F;}_Delay_(1);}_Delay_(1);_Delay_(1);_Delay_(1);_Delay_(1);return data;
}/
//向TM1668写入一个字节
void TM1668_WriteOneByte(unsigned char dat)
{unsigned char i;//DAT设置成输出TM1668_DAT_OUTPUT();_Delay_(1);//拉低片选信号TM1668_STB_Clr();_Delay_(1);//拉低时钟信号TM1668_CLK_Clr();_Delay_(1);for(i=0; i < 8; i++){if (dat & 0x01)TM1668_DAT_Set();elseTM1668_DAT_Clr();_Delay_(1);TM1668_CLK_Clr();_Delay_(1);TM1668_CLK_Set();_Delay_(1);dat = (dat >> 1);}_Delay_(1);_Delay_(1);
}/
//向TM1668写入命令
void TM1668_WriteCommand(unsigned char comm)
{TM1668_WriteOneByte(comm);
}/
//TM1668读取键值
void TM1668_KeyScan(void)
{unsigned char i;TM1668_WriteCommand(CMD_DATA_SET|B1_SCAN_KEY);_Delay_(100);for(i = 0; i < 5; i++){drv_tm1668_rbuf[i] = TM1668_ReadOneByte();}//拉高片选信号TM1668_STB_Set();
}/
//TM1668写显示缓存
void TM1668_Display(unsigned short *pchar)
{unsigned char i;TM1668_WriteCommand(CMD_DATA_SET|B2_ADDR_UPDATE|B1_DISP_DATA);//数据设置. B2=0:数据写入后,地址加一; B2=1:地址不变TM1668_STB_Set();TM1668_WriteCommand(CMD_ADDR_SET|0x00);//地址从0开始,然后写数据for(i=0;i<7;i++){TM1668_WriteOneByte(pchar[i]&0xFF);TM1668_WriteOneByte((pchar[i]>>8)&0xFF);}TM1668_STB_Set();TM1668_WriteCommand(CMD_DISP_CTRL|B3_DISP_ON|PULSE_12_16);//开显示TM1668_STB_Set();
}/
//TM1668轮询处理
void TM1668_process(void)
{unsigned char i;//全灭for(i=0;i<7;i++)drv_tm1668_wbuf[i] = 0x0000;//全亮for(i=0;i<7;i++)drv_tm1668_wbuf[i] = 0xffff;TM1668_Display(drv_tm1668_wbuf);
}void TM1668_init(void)
{   }

4. 说明

  • 代码仅供参考。

5. 代码下载

TM1668代码提取码:k3ad

我的个人博客网址:一个点的频率 希望大家关注一下,谢谢!!!

嵌入式驱动程序(5-5)点灯大师⑤之TM1668相关推荐

  1. 嵌入式驱动程序(5-3)点灯大师③之TM1650

    嵌入式驱动程序(5-3)点灯大师③之TM1650 作为一个嵌入式工程师,"点灯"是必备技能,哈哈哈(手动斜眼笑),除了普通IO口可以控制led灯亮灭之外,还有很多驱动ic,只需要2 ...

  2. 如何快速成为点灯大师?

    大家好,我是良许. 随着疫情的平稳,最近全国各地都陆续放开了.但很不幸,我的几个号主朋友不小心中招了,成了「阳过」. 良许在此提醒各位朋友,放开不等于躺平,该做的防护一个都不能少.虽然现在病毒没有刚爆 ...

  3. 吃白菜一样用micropython玩esp32(二)—— 点灯大师

    基础点灯 按上一节一般新建好文件夹选好串口后,输入下面的代码 import time #引入时间模块,才可以用延时函数 from machine import Pin #引入引脚模块,才可以控制esp ...

  4. 嵌入式驱动程序之信号量

    如果要实现驱动程序,在同一时间只能被一个应用程序打开.也可以用信号量. 信号量 信号量(semaphore)是用于保护临界区的一种常用方法,只有得到信号量的进程才能执行临界区代码. 当获取不到信号量时 ...

  5. 炫酷 RGB 之.NET nanoFramework 点灯大师

    前面介绍了 .NET nanoFramework 入门,本文继续以微雪的 ESP32-S2-Pico 为例介绍 .NET nanoFramework 的开发:控制 ESP32 板载 RGB 灯 和 外 ...

  6. 驱动开发(四)——点灯大师

    文章目录 前言 项目需求 问题 如何根据实际需要查看手册 查看原理图 查看参考手册 时钟信息 GPIO信息 查看数据手册 终于可以开始Coding了 头文件 单板相关代码 驱动源码 测试代码 Make ...

  7. 51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

    点亮LED 一.LED基本概念 二.LED工作参数 三.LED原理图分析 四.实践编程 一.LED基本概念 什么是LED LED(light-emitting diode): 发光二极管 是一种常用的 ...

  8. 一个学机械的中年人半年时间入门物联网嵌入式的历程

    2021年因为工作的缘故涉及到物联网,但是刚开始跟我没有什么关系,我是做结构的,也就是外壳,被称为非核心的部分.当我的外壳冷冰冰的躺在那里等着"核心"入住的过程中.那帮操控核心的同 ...

  9. 嵌入式系统开发-学习路线

    嵌入式系统开发 课程链接 随着嵌入式设备的普及,嵌入式应用的需求量也随之增大,本课程将重点培养基于linux系统下的嵌入式应用开发,包括5个阶段,其中课程涵盖了linux系统下的多进程.多线程嵌入式开 ...

最新文章

  1. bzoj 2375: 疯狂的涂色
  2. 系统通知、 聊天服务的实现
  3. 用VC和MinGW导出dll的def和lib(a)文件
  4. arcgis插值不覆盖区划图_ArcGIS绘图—空气质量站点数据插值绘制等值线图
  5. 五笔字型键盘字根图_手机输入法的派别之争:九宫格和全键盘,哪个更科学?...
  6. 如何腾出计算机内存,电脑C盘又飘红?教你这样清理内存,可以轻松腾出大量空间...
  7. html创建表单用设么,如何使用HTML创建表单的发送
  8. 中兴有救了!百度又要 All in 视频?联想回应“反对预装国产系统” | CSDN极客头条...
  9. 图片标注工具Labelme的安装及使用方法
  10. 整流四 -三相PWM整流器的工作原理分析
  11. 手机输入法,谁能笑到最后?
  12. 高中信息技术教资-笔记-存储容量之间的换算关系
  13. 【眼底图像数据集】视杯 视盘分割
  14. iis7.5如何将应用程序池的启动模式(startMode)从onDemand(需要时)更改为AlwaysRunning(一直运行)?
  15. 苹果免密支付怎么关闭_有人苹果手机被盗刷了!那是设置有问题...
  16. 浙大 | PTA 习题9-5 通讯录排序 (20分)
  17. 长坡难滚“雪球”,零跑汽车上市只是一个 “开端”
  18. 我的世界电脑版服务器区块怎么显示,我的世界区块显示指令 | 手游网游页游攻略大全...
  19. 5个方法将不带www的根域名301重定向到www主域名
  20. JavaScript怎么识别360浏览器?JS识别360急速模式方案,360流氓浏览器

热门文章

  1. App三种启动场景:冷启动、热启动、温启动
  2. Laya 实操二:原始宽高+反转+九宫格+Handler
  3. 手眼标定eye-in-hand(一)AX=XB方程推导
  4. Android调试高德SDK,如何获取SHA1?
  5. 关于linux下的xinetd服务
  6. 自我保健很重要:先付钱
  7. element-ui 阻止冒泡事件
  8. Johnson_Trotter 生成排列算法
  9. Cjson 库的使用
  10. 2022最新超简洁小米步数网页源码