找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 849|回复: 11
打印 上一主题 下一主题
收起左侧

用单片机制作的数码管测试器

[复制链接]
跳转到指定楼层
楼主
前几年制作过一个“直连”方式的数码管测试器,最近突发奇想,想用单片机再次制作一个数码管测试器,这个测试器要充分利用单片机功能,用多种方式对数码管进行测试,比如,先逐段点亮,然后再从0~9分别显示,周而复始。
用“Proteus 8”设计了电路原理图(PNP管驱动共阴数码管)。

考虑到库存有大量的拆机P-MOS管(型号为:A7SHB),所以,又设计了采用P-MOS管驱动的电路。

NPN管驱动共阳LED数码管电路原理图:

经实验,共阳数码管不需要三极管放大,直接通过I/O口驱动即可。由于单片机有多余的I/O口,所以共阴、共阳数码管合并在一起,共阴由P2口驱动,共阳由P3口驱动。

单片机采用“STC15F2K08S2”,该单片机有内部RC振荡器,可以省略外部晶振。
用面包板搭电路,运行正常。



用“立创”的EDA设计了PCB板:

焊接完成后的成品:

局部展示:

第一次焊接0402的电阻,这可能是我能焊接的最小电阻了。
LED数码管测试实例(0.56寸共阴数码管)。

LED数码管测试实例(1寸共阳数码管)。


代码:
  1. #include <STC15.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. void Delay1ms( uint k );
  6. uchar da = 0xFE; //11111110
  7. uchar code table[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳段码
  8. void main()
  9. {
  10.      while(1)
  11.      {
  12.           uchar i = 0;
  13.           for( i=0; i<8; i++ ) //依次显示各段:a~h
  14.           {
  15.                P2 = da; //共阴
  16.                P3 = da; //共阳             Delay1ms(500);
  17.                da = _crol_( da,1 );
  18.           }
  19.   
  20.           for( i=0; i<10; i++ ) //依次显示数字:0~9
  21.           {
  22.                P2 = table[i];
  23.                P3 = table[i];
  24.                Delay1ms(500);
  25.           }
  26.      }
  27. }
  28. void Delay1ms( uint n )  <a>//@12.000MHz</a>
  29. {
  30.      uint k;
  31.      for( k=0; k<n; k++ )
  32.     {
  33.         unsigned char data i, j;
  34.          i = 12;
  35.         j = 169;
  36.        do
  37.       {
  38.            while (--j);
  39.       } while (--i);
  40.     }
  41. }
复制代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1057978 发表于 2023-12-13 12:00 | 只看该作者
学习了,共阳极和共阴极的段码是一样的吗老哥
回复

使用道具 举报

板凳
ID:97023 发表于 2023-12-13 12:26 | 只看该作者
wangxiangtan 发表于 2023-12-13 12:00
学习了,共阳极和共阴极的段码是一样的吗老哥

是一样的,因为共阳是I/O口直接驱动,低电平LED亮;共阴通过PNP管(或P-MOS管)驱动,还是低电平LED亮。
回复

使用道具 举报

地板
ID:16255 发表于 2023-12-13 17:19 | 只看该作者
共阳的数码管虽然可以在单片机上直接点亮,但并不建议这么做。毕竟大量电流流经单片机并不是什么好事,尤其是测试大尺寸数码管的时候。
回复

使用道具 举报

5#
ID:97023 发表于 2023-12-13 19:55 来自手机 | 只看该作者
mengsiu 发表于 2023-12-13 17:19
共阳的数码管虽然可以在单片机上直接点亮,但并不建议这么做。毕竟大量电流流经单片机并不是什么好事,尤其 ...

你说的对,当时就只想到点亮数码管,没有想这么多,今后会注意到这个问题的。
回复

使用道具 举报

6#
ID:71233 发表于 2023-12-14 08:17 | 只看该作者
插座还得分共阳和共阴吗?
回复

使用道具 举报

7#
ID:97023 发表于 2023-12-14 20:29 | 只看该作者
lmn2005 发表于 2023-12-14 08:17
插座还得分共阳和共阴吗?

插座要分的,如果不分,你有什么好的方法?
我能想到的是用一个开关,通过I/O口判断高低电平,从而决定共阳和共阴。
回复

使用道具 举报

8#
ID:97023 发表于 2023-12-14 20:33 | 只看该作者
lmn2005 发表于 2023-12-14 08:17
插座还得分共阳和共阴吗?

想了想,觉得还是要分开,因为驱动的管子极性不同,同一个插座,电路会变得很复杂。
回复

使用道具 举报

9#
ID:648281 发表于 2023-12-15 19:21 | 只看该作者
单片机是用什么工具焊的呢,焊台、热风器吗,什么型号的呢
回复

使用道具 举报

10#
ID:97023 发表于 2023-12-15 22:12 | 只看该作者
51hei**1140 发表于 2023-12-15 19:21
单片机是用什么工具焊的呢,焊台、热风器吗,什么型号的呢

是用“黄花907”调温烙铁,温度大约300℃左右。
烙铁头是这个样子:

回复

使用道具 举报

11#
ID:95809 发表于 2023-12-23 20:31 | 只看该作者
我是用74HC164做的,不需要区分共阳共阴,用IC锁紧座更方便,用锂电池供电,拿着也方便。

Snapshot000000.jpg (61.58 KB, 下载次数: 77)

Snapshot000000.jpg
回复

使用道具 举报

12#
ID:97023 发表于 2023-12-25 23:51 | 只看该作者
bxyyhan 发表于 2023-12-23 20:31
我是用74HC164做的,不需要区分共阳共阴,用IC锁紧座更方便,用锂电池供电,拿着也方便。

其实我也有锁紧插座,没想到利用它来做,这个接触良好。
为什么要用两个插座呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表