文档章节

自制数码管显示模块(串口通信)

e哥
 e哥
发布于 2017/03/04 21:42
字数 1123
阅读 349
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

        对于喜欢电子DIY的人来说,焊板子是常有的事,其中数码管是被经常用到的元器件之一。焊接数码管是一件非常烦人的活,管脚多容易焊错,块头又大占地方。我就在想能不能做个数码管显示模块,用它的时候直接插上去就可以了,只留下几个外部通信接口就可以了。

        既然有了想法那就开始干呗,感觉也挺有趣的。首先我得想好用什么通信方式,SPI、IIC、单总线、串口还是自己定义一种新得通信协议呢?怎么选呢?选的通信方式最好大家熟悉的,操作简便的,最后我选择了串口。串口通信有几个好处:1、通信方式大部分人都了解,2、国际规范,3、大部分单片机有串口,4、可异步中断。

        选择了通信方式后,接下来就要定好控制指令了。串口通信一个重要前提是要在同一波特率上,所以模块必须可以用指令修改波特率,指令设为:B。

        这次DIY数码管使用的是四位共阳的,数码管中间有两个点,当数码管作为时间显示时这两个点是要显示的,所以得用指令控制这两个点,指令设为:T。

        要四位数码管显示指定内容,则需要定义操控指令,该指令设为:W。

        当外部想获取模块信息,也得使用特定指令,设为:R。

        模块使用的控制单片机是stc12c2052ad,该单片机IO口有强推功能,当某个IO设置为强推时,它可以输出更大的电流,这样就可以使数码管高亮。什么时候需要高亮,什么时候不需要,我们最好也用个指令控制,设为:H。

        下面就是各个指令对应的发送形式,只要外面设备向模块发送这些指令,模块就会显示相应的内容或修改相应参数。

**串口波特率设置(设置后会保存在EEPROM中):发送字符B0   //B表示串口波特率设置指令,后面的0是波特率类型,0--9600、1--19200、2--57600、3--115200
**时间标志位设置:T0    //0表示不显示、1表示显示、2表示闪烁
**高亮显示设置:H0    //0表示普通亮度、1表示高亮
**写四位显示数:W0123    //如果某位不显示要用空格符表示,如不显示第二位:W1 23
**读数据指令:R    //可以获取格式(B:0 T:0 H:0 W: 123)数据

        指令已经定好,那就把电路图画好,开始焊板子了。

        电路图挺简单的,一个四位数码管,一个stc单片机,一个外部接口。外部接口有五根线,从上到下依次为电源正极V、串口Rx、串口Tx、使能EN、电源地G。stc单片机烧录程序是通过串口,所以这个接口也可以向模块stc控制单片机烧录程序。使能EN端口是高电平有效,默认为高电平,如果不想操作模块要把EN置为低电平。有了这个使能端口,我们就可以操作多个数码管显示模块了,比如你想显示8位数字,就可以串联两个数码管显示模块。

        电路图好了,接下来就是写驱动程序了,程序代码也比较简单。具体思路是:模块串口读取外面操作指令,根据指令做相应操作。因为串口可以异步中断传输,所以模块也不需要实时读取串口,只当有串口中断才读取串口数据,其他时间模块只负责控制数码管显示。

详细程序:https://git.oschina.net/ginnywzj/led-segment-displays-module

        有了这个模块以后需要数码管显示的时候就不需要再焊额外的电路了,只要把它和串口接上,打开外部芯片串口就OK了。

        制作好的实物图:

背面用了透明亚克力板盖住了,防止使用时飞线容易断开、接触点短路问题。

程序文件:下载

e哥
粉丝 7
博文 4
码字总数 7777
作品 0
深圳
私信 提问
加载中
请先登录后再评论。
TM1650/AIP650数码管驱动显示STM32驱动程序HAL库

参考例程讲解 一、 Display显示DEMO: 1、 硬件: 图1.1 数码管模块原理图 由图1.1可知MCU通过DAT&CLK(I2C)两个引脚去控制数码管驱动IC,从而达到控制数码管的显示;打开TM1650/AIP650规格...

osc_nfjwhlc1
06/07
17
0
单片机毕业设计程序实训100例汇总

单片机毕业设计程序实训100例汇总 本书基于Keil μVision程序设计平台和Proteus硬件仿真平台,精心编写了100余个8051单片机C语言程序设计案例。完整的资料已经上传到闯客网技术论坛了,关于这...

年少有成
2018/12/19
3
0
单片机

04_点亮实验板上的LED灯 1 #include <reg52.h> 2 sbit LED1 = P1^0; 3 sbit LED2 = P1^1; 4 sbit LED3 = P1^2; 5 sbit LED8 = P1^7; 6 void main() 7 { 8 LED1 = 0; 9 LED2 = 0;10 LED3 = 0;......

osc_jd85vegy
2018/03/22
8
0
AVR开发板 ATmega16 AVR仿真器 AVR编程器 三合一 特价

EasyAVRATmega16开发板仿真器 编程器 三合一 特价,相对于价格,我们更关注品质和服务。 一板在手,就可以开始学习强大的AVR单片机,不用再买编程器,不用再买仿真器。 ATmega16开发板简介 ...

古欣
2010/05/15
667
0
proteus初学者从入门到精通 带项目实战教程

proteus初学者从入门到精通 带项目实战教程 今天来给大家共享资料来了,想学Proteus的小伙伴有福了,不用找得焦头烂额的了,这里有proteus的大部分实例,而且附带源代码呢,想要更多proteus...

小童年
2018/09/27
5
0

没有更多内容

加载失败,请刷新页面

加载更多

18行Python代码抢京东神券

点击上方『早起Python』关注 回复送书参与赠书活动! 一、背景介绍 我们经常能看到京东上有满200减100之类的大额神券,但是当自己激动的等在电脑旁,手拿鼠标、眼盯屏幕,等着倒计时慢慢临近...

早起Python
05/31
0
0
关于SMP

欢迎关注公众号 VxWorks567。如转载,请标出处! 多核在嵌入式实时系统里应用的越来越多,而VxWorks从6.6开始支持多核,到6.8就算支持的不错了。风河提供了两种多核技术:Symmetric multipr...

taishan3721
2019/10/27
0
0
Unity安卓共享纹理

前置知识:安卓集成Unity开发示例 本文的目的是实现以下的流程: Android/iOS native app 操作摄像头 -> 获取视频流数据 -> 人脸检测或美颜 -> 传输给 Unity 渲染 -> Unity做出更多的效果(滤...

osc_4b2ephd0
20分钟前
7
0
计算机网络中这些高频考题,你还在死记硬背吗?(一)

原文链接:原文来自个人公众号—C you again 对于IT从业者来说,计算机网络是一门必修课,也是一块硬骨头,不论是你是在工作中还是面试时,都需要掌握一些网络技术。从本期开始,小编对计算机...

osc_sb30h1xb
21分钟前
4
0
30岁+程序员职场攻略:找到自己的“职业锚”乘风破浪

摘要:何时都不算晚,只要你愿意开始!年龄,不应该是限制你未来可能性的理由。不要给自己贴标签,像姐姐们一样在事业场、生活场上乘风破浪! 都说三个女人一台戏,那30个年龄30+的女明星,聚...

华为云开发者社区
22分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部