单片机
返回首页

单片机之动态数码管的显示数字1-8

2020-07-17 来源:eefocus

C51单片机中的三种方法解决数码管的动态显示,使数码管显示1-8数字。三种方法的代码如下,此时读者需要十分注意你代码中引脚的先后顺序,否则可能达不到预期的效果. 


#include

#define uchar unsigned char

#define uint unsigned int

uchar code seg1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};   //使用的是共阳极数码管

void delayms(uint i)

{

  uchar j;

  while(i--)

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

 

}

void main()

{

 

  while(1)

  {

   uchar i,j;

   P2=0x80;

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

{

  P2=_crol_(P2,1);

  P0=seg1[i];

  delayms(1);

 

}

}

 

}

 


#include

#define uchar unsigned char

#define uint unsigned int

uchar code seg1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};   //使用的是共阳极数码管

uchar code seg2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void delayms(uint i)

{

 

 uchar j;

 while(i--)

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

 

}

 

void main()

{

   while(1)

   {

 

    uchar i;

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

     {

        P2=seg2[i];

        P0=seg1[i];

        delayms(1);

 

      }

 

 

}

#include

#define uchar unsigned char

#define uint unsigned int

//uchar code seg1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};   //使用的是共阳极数码管

//uchar code seg2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void delayms(uint i)

{

 

 uchar j;

 while(i--)

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

 

}

 

void main()

{

   while(1)

   {

    P2=0x01;

    P0=0xf9;

    delayms(1);

     P2=0x02;

    P0=0xa4;

    delayms(1);

 P2=0x04;

    P0=0xb0;

    delayms(1);

 P2=0x08;

    P0=0x99;

    delayms(1);

 P2=0x10;

    P0=0x92;

    delayms(1);

 P2=0x20;

    P0=0x82;

    delayms(1);

 P2=0x40;

    P0=0xf8;

    delayms(1);

 P2=0x80;

    P0=0x80;

    delayms(1);

   }

}

 


仿真图如下:

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章