打印
[资料分享]

【蓝桥杯单片机03】数码管的静态显示

[复制链接]
5209|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ohy3686|  楼主 | 2018-1-27 10:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ohy3686 于 2018-1-27 10:36 编辑

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

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


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、单元实训题目



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

sbit HC138_A = P2^5;        
sbit HC138_B = P2^6;        
sbit HC138_C = P2^7;        

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

void Delay(unsigned int time)
{
        while(time--);
        while(time--);
}

void Init74HC138(unsigned char n)
{
        switch(n)
        {
                case 4:
                        HC138_A = 0;
                        HC138_B = 0;
                        HC138_C = 1;
                        break;
                case 5:
                        HC138_A = 1;
                        HC138_B = 0;
                        HC138_C = 1;
                        break;
                case 6:
                        HC138_A = 0;
                        HC138_B = 1;
                        HC138_C = 1;
                        break;
                case 7:
                        HC138_A = 1;
                        HC138_B = 1;
                        HC138_C = 1;
                        break;
                case 8:
                        HC138_A = 0;
                        HC138_B = 0;
                        HC138_C = 0;
                        break;
        }
}

void DispaySMG_Bit(unsigned char value, unsigned char pos)
{
        char i;
        Init74HC138(6);
        P0 = (0x01 << pos);
        Init74HC138(7);
        P0 = value;
}

void DispaySMG_Static()
{
        char i,j;
        for(i = 0; i < 8; i++)
        {
                for(j = 0; j < 10; j++)
                {
                        DispaySMG_Bit(SMG_Duanma[j],i);
                        Delay(60000);
                }
        }
        
        Init74HC138(6);
        P0 = 0xff;
        for(i = 0; i < 16; i++)
        {
                Init74HC138(7);
                P0 = SMG_Duanma[i];
                Delay(60000);
        }
}

main()
{
                while(1)
                {
                        DispaySMG_Static();
                }
}

相关帖子

沙发
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
那是,都是比较实际的外设,而且很基础。

我报了嵌入式 的

使用特权

评论回复
5
ohy3686|  楼主 | 2018-1-28 16:04 | 只看该作者

嵌入式都考些什么?
有操作系统吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

322

主题

899

帖子

2767

粉丝