[资料分享] 【蓝桥杯单片机03】数码管的静态显示

[复制链接]
 楼主| ohy3686 发表于 2018-1-27 10:23 | 显示全部楼层 |阅读模式
本帖最后由 ohy3686 于 2018-1-27 10:36 编辑

【蓝桥杯单片机03】数码管的静态显示
广东职业技术学院  欧浩源
    不管是省赛还是国赛,数码管显示是蓝桥杯“单片机设计与开发”赛项必考的内容之一。要掌握数码管显示这个内容需要分为两个步骤:首先弄清楚数码管的静态显示,然后再去掌握数码管的动态显示。至于什么是静态显示,什么是动态显示,不清楚的可以百度一下。

1、关于数码管的基础知识
    要把内容正确的显示在数码管上,首先要明确数码管的类型与段码结构。在CT107D单片机综合实训平台上使用的数码管是F3461BH。为什么要看这个型号呢?因为它能告诉你数码管的类型。倒数第2个字母是“B”,说明这个数码管是共阳类型的,如果该字母为“A”则为共阴类型。不同类型的数据管,其段码数组是截然不同的。
    在明确数码管类型之后,就可以确定段码数组了,也就是显示内容所对应的值,例如,要在F3461BH上显示数值“7”,那么就要输出的数值为“0xf8”。怎么样才能得到这个段码数组呢?你可以从网上或其他参考资料上获取,也可以自己对于电路图或者测试段码得到。
SMG.PNG

2、数码管的电路连接
    F3461BH是一个4位8段的数码管,其中a、b、c、d、e、f、g、dp引脚分别对应8个段码,该8个引脚通过74HC573锁存器与单片机的P0端口相连。另外有com1~com4四个公共控制脚,该应用为高电平则使能对应位的数码管。两个F3461BH一共有8个com控制引脚,也是通过74HC573锁存器与单片机的P0端口相连的。因此,在操控数码管显示的过程中也离不开74HC138译码器和74HC573锁存器,关于这部分的内容可以参考“
【蓝桥杯单片机02】LED的基本控制”。

3、单元实训题目

02-数码管的静态显示.PNG

4、实现源码参考
  1. #include "reg52.h"  

  2. sbit HC138_A = P2^5;        
  3. sbit HC138_B = P2^6;        
  4. sbit HC138_C = P2^7;        

  5. //F3461BH数码管的段码数组
  6. unsigned char code SMG_Duanma[18] =
  7.     {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  8.      0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
  9.      0xbf,0x7f};

  10. void Delay(unsigned int time)
  11. {
  12.         while(time--);
  13.         while(time--);
  14. }

  15. void Init74HC138(unsigned char n)
  16. {
  17.         switch(n)
  18.         {
  19.                 case 4:
  20.                         HC138_A = 0;
  21.                         HC138_B = 0;
  22.                         HC138_C = 1;
  23.                         break;
  24.                 case 5:
  25.                         HC138_A = 1;
  26.                         HC138_B = 0;
  27.                         HC138_C = 1;
  28.                         break;
  29.                 case 6:
  30.                         HC138_A = 0;
  31.                         HC138_B = 1;
  32.                         HC138_C = 1;
  33.                         break;
  34.                 case 7:
  35.                         HC138_A = 1;
  36.                         HC138_B = 1;
  37.                         HC138_C = 1;
  38.                         break;
  39.                 case 8:
  40.                         HC138_A = 0;
  41.                         HC138_B = 0;
  42.                         HC138_C = 0;
  43.                         break;
  44.         }
  45. }

  46. void DispaySMG_Bit(unsigned char value, unsigned char pos)
  47. {
  48.         char i;
  49.         Init74HC138(6);
  50.         P0 = (0x01 << pos);
  51.         Init74HC138(7);
  52.         P0 = value;
  53. }

  54. void DispaySMG_Static()
  55. {
  56.         char i,j;
  57.         for(i = 0; i < 8; i++)
  58.         {
  59.                 for(j = 0; j < 10; j++)
  60.                 {
  61.                         DispaySMG_Bit(SMG_Duanma[j],i);
  62.                         Delay(60000);
  63.                 }
  64.         }
  65.         
  66.         Init74HC138(6);
  67.         P0 = 0xff;
  68.         for(i = 0; i < 16; i++)
  69.         {
  70.                 Init74HC138(7);
  71.                 P0 = SMG_Duanma[i];
  72.                 Delay(60000);
  73.         }
  74. }

  75. main()
  76. {
  77.                 while(1)
  78.                 {
  79.                         DispaySMG_Static();
  80.                 }
  81. }

caijie001 发表于 2018-1-28 14:03 | 显示全部楼层
话说蓝桥杯的单片机的板子做得比嵌入式的板子好,外设多着呢
 楼主| ohy3686 发表于 2018-1-28 14:21 | 显示全部楼层
caijie001 发表于 2018-1-28 14:03
话说蓝桥杯的单片机的板子做得比嵌入式的板子好,外设多着呢 ...

那是,都是比较实际的外设,而且很基础。
caijie001 发表于 2018-1-28 14:27 | 显示全部楼层
ohy3686 发表于 2018-1-28 14:21
那是,都是比较实际的外设,而且很基础。

我报了嵌入式 的
 楼主| ohy3686 发表于 2018-1-28 16:04 | 显示全部楼层

嵌入式都考些什么?
有操作系统吗?
小M学电子 发表于 2024-10-19 17:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:广东职业技术学院 欧浩源(ohy3686@foxmail.com)    [Zigbee技术&物联网应用] 群:168225322    [技术交流微信]:gzyohy (暗号:宝塔镇河妖)

322

主题

899

帖子

3548

粉丝
快速回复 在线客服 返回列表 返回顶部