找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1273|回复: 0
收起左侧

实用的数码管静态显示程序分享

[复制链接]
ID:444215 发表于 2021-4-2 14:03 | 显示全部楼层 |阅读模式
#include "reg52.h"

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 t)
{
    while(t--);
    while(t--);
}
            
void InitHC138(unsigned char n)
{
    switch(n)
    {
        case 4:
            P2 = (P2 & 0x1f) | 0x80;
        break;
        case 5:
            P2 = (P2 & 0x1f) | 0xa0;
        break;
        case 6:
            P2 = (P2 & 0x1f) | 0xc0;
        break;
        case 7:
            P2 = (P2 & 0x1f) | 0xe0;
        break;
    }
}

void ShowSMG_Bit(unsigned char dat, unsigned pos)
{
    InitHC138(6);            //数码管的位置
    P0 = 0x01 << pos;
    InitHC138(7);            //数码管的内容
    P0 = dat;
}

void SMG_Static()
{
    unsigned char i,j;
    for(i = 0; i < 8; i++)
    {
        for(j = 0; j < 10; j++)
        {
            ShowSMG_Bit(SMG_duanma[j],i);
            Delay(60000);
        }
    }
    for(j = 0; j < 16; j++)
    {
        InitHC138(6);            //数码管的位置
        P0 = 0xff;
        InitHC138(7);            //数码管的内容
        P0 = SMG_duanma[j];
        Delay(60000);
        Delay(60000);
    }
}

void main()
{
    while(1)
    {
        SMG_Static();
    }
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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