文档章节

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

e哥
 e哥
发布于 2017/03/04 21:42
字数 1123
阅读 125
收藏 0
点赞 0
评论 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
深圳
[Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

3D相关开发 [direct-X] 1、direct-X最小框架 [OpenGL] 1、环境搭建及最小系统 [OpenGL] 2、企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [51单片机] 1602液晶显示控制代码 [51单片机] 1...

史迪奇2号
2017/08/01
0
0
PIC16F883单片机EUSART串口通信

在两个单片机之间建立串口通信。 说明:我们使用数码管显示接收到的数据,数据是对方的按键编号。 硬件连接图: 有一点至关重要,就是两个单片机要共地。发送和接收引脚在两个单片机上交叉相...

0101
2012/07/07
0
1
【目录】电子发烧友, 持续更新

目录内容: 1)Geek 2)C51单片机学习平台搭建 3)入门 4)提高 5)红外发射 6)树莓派 7)物联网 8)模电基础 【Geek】 C51单片机 SIM900A 手机给门禁解锁 智能家居 【C程序代码已开源,更新...

990487026
2015/09/26
0
0
小插曲:我和Nios II的故事

想必学习Altera家FPGA的小码农们都会有一个共同的困扰吧,那就是Nios II该不该学的问题。这个问题说白了,就是学Nios II到底有没有用。观点1、无用论,常常会听FPGA群里的某位前辈说道,目前...

qq_39210023
2017/07/16
0
0
TPYBoard超全DIY案例一览:轻松玩转MicroPython开发!

TPYBoardv102是一款比较成熟和经典的MicroPython开发板,不仅适用于学习实验还能应用于大型的工业级开发,是MicroPython入门和研发的不二之选。下面我们就扒开v102的“层层外衣”来一次知识大...

bodasisiter
07/05
0
0
hznupeter/maker17

17Maker arduino库-mixly版 17Maker libary for mixly. Author :hznupeter E-mail:qiujiongtao@163.com website: http://wiki.17maker.org 使用方法 1.打开mixly 软件,点击导入库。 2.选中1......

hznupeter
2017/01/16
0
0
STM32小白入门(第八天)-------低功耗蓝牙模块

蓝牙是现在智能生态下运用的最多的,比如智能手环,智能手表,智能家居也离不开它的身影。 我用的是,CC2541低功率蓝牙模块4.0 BLE 串口 带底板直排针 无线蓝牙模块 蓝牙是无线短距离传输的一...

licent9420
03/21
0
0
MSP430常见问题之LCD 显示驱动类

Q1:晶体一般都是接32768,然后使用液晶很正常。我打算将晶体接6M的替换32768,那么液晶还能正常显示吗 A1:看你所用的LCM 模块时序极限是多少HZ,然后看6M情况下,MSP430去驱动LCM 时,程序...

graylee
2013/09/19
0
0
(五).单片机输出电路的实践——数码管显示电路的设计

一.数码管显示电路设计 数码管分为共阴和共阳两种,一种是将LED内部所有的阳极连 到一起,并通过com端引出。共阴则反之。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输...

hu_9716
03/16
0
0
手机控制的浇花神器

版权声明:本文由蒋鹏原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/118 来源:腾云阁 https://www.qcloud.com/community 不知道其他人有没有这样的顾...

偶素浅小浅
2016/11/01
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
3分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
5分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
8分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
10分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
24分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
31分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
35分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
39分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
41分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
54分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部