首页 » 科学 » 51单片机中若何实现8位数码管动态轮回显示0-7_数码管_数字

51单片机中若何实现8位数码管动态轮回显示0-7_数码管_数字

神尊大人 2024-12-14 10:35:52 0

扫一扫用手机浏览

文章目录 [+]

利用嵌套式的for循环;

同时增加了一个if 条件判断;

51单片机中若何实现8位数码管动态轮回显示0-7_数码管_数字 科学

利用了switch函数显示选择数码管公共真个开闭;

硬件:普中51双核A7板,STC89C516芯片

接线:P0接J6掌握数字的显示;P2.2,P2.3,P2.4接J9ABC掌握数字开闭。

代码:

#include "reg52.h"

typedef unsigned int u16;

typedef unsigned char u8;

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};

void delay(u16 i)

{while(i--);}

void DigDisplay()

{u8 i,j,num;

for(j=0;j<8;j++)

{

for(i=0;i<8;i++)

{ if(i+j>7)

{num=i+j-8;}

else

{num=j+i;}

switch(i) //位选,选择点亮的数码管

{ case(0):

LSA=0;LSB=0;LSC=0;break;//显示第0位

case(1):

LSA=1;LSB=0;LSC=0;break;

case(2):

LSA=0;LSB=1;LSC=0;break;

case(3):

LSA=1;LSB=1;LSC=0;break;

case(4):

LSA=0;LSB=0;LSC=1;break;

case(5):

LSA=1;LSB=0;LSC=1;break;

case(6):

LSA=0;LSB=1;LSC=1;break;

case(7):

LSA=1;LSB=1;LSC=1;break;

}

P0=smgduan[num]; //发送段码

delay(100); //间隔一段韶光扫描

P0=0x00;

if(num==8)

{num=num-8;}

}

delay(60000);

}

}

void main()

{while(1)

{DigDisplay();}}

视频加载中...

实现的效果:初始态:01234567→12345670→23456701。



,如此循环往来来往,动态显示。

标签:

相关文章

勇者青山,IT行业中的璀璨明星

在当今这个信息爆炸的时代,IT行业已成为推动社会进步的重要力量。在这个领域中,涌现出了无数优秀的从业者,他们以卓越的才华和不懈的努...

科学 2024-12-30 阅读0 评论0

北京IT跑车,速度与激情的完美融合

随着科技的飞速发展,我国汽车产业也迎来了前所未有的繁荣。北京作为我国首都,汽车产业尤为发达。在众多车型中,IT跑车凭借其卓越的性能...

科学 2024-12-30 阅读0 评论0