找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机静态数码管显示八位数字源程序

[复制链接]
跳转到指定楼层
楼主
ID:578886 发表于 2019-7-9 09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在P0=smg[]的中括号内填入想要显示的数字,将delay()括号内改动不同的数值,会看到不同的现象。
程序:
#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} ;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

void delay(u16 i)
{
   while(i--);
}

void DigDisplay()
{
   u16 i;
   for(i=0;i<8;i++)
   {
      switch(i)
          {
                     case(0):
                            LSA=0;LSB=0;LSC=0;P0=smg[];break;
                 case(1):
                            LSA=1;LSB=0;LSC=0;P0=smg[]; break;
                 case(2):
                            LSA=0;LSB=1;LSC=0;P0=smg[]; break;
                 case(3):
                            LSA=1;LSB=1;LSC=0;P0=smg[]; break;
                 case(4):
                            LSA=0;LSB=0;LSC=1;P0=smg[]; break;
                 case(5):
                            LSA=1;LSB=0;LSC=1;P0=smg[]; break;
                 case(6):
                            LSA=0;LSB=1;LSC=1;P0=smg[]; break;
                 case(7):
                            LSA=1;LSB=1;LSC=1;P0=smg[];break;
          }
          delay(100);
          P0=0x00;
   }
}

void main()
{
   DigDisplay();
}

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

使用道具 举报

沙发
ID:701307 发表于 2020-3-2 17:55 | 只看该作者
看不太懂,现在要做一个显示8位学号的作业,楼主能指导一下吗
回复

使用道具 举报

板凳
ID:701307 发表于 2020-3-2 18:00 | 只看该作者
行了,感谢
回复

使用道具 举报

地板
ID:701307 发表于 2020-3-2 18:22 | 只看该作者
这个算是静态还是动态呀
回复

使用道具 举报

5#
ID:712063 发表于 2020-3-20 10:23 | 只看该作者
非常感谢
回复

使用道具 举报

6#
ID:878964 发表于 2021-1-24 18:03 | 只看该作者
楼主我有点不明白为什么数码管会一直循环显示,不是程序里i到8就停了吗,能不能帮我解释下谢谢啦
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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