【E896】51单片机利用寄存器实现数码管循环移位显示

2021-09-09 08:30:58      索炜达电子      779     

项目编号:E896

文件大小:272K

源码说明:带中文注释

开发环境:C编译器

简要概述:

【E896】51单片机利用寄存器实现数码管循环移位显示

一个52单片机和两个573锁存器实现数码管循环移位显示数字“0~9”

573锁存器的控制引脚配置

【E896】51单片机利用寄存器实现数码管循环移位显示

仿真电路图仅供参考,实际上拉电阻、下拉电阻需自行选择。有错误请指出。

代码如下:


#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char


sbit wei = P2^0;

sbit duan = P2^1;

void delay_ms(uint n)

{

          uint i,j;

          for(i = n;i > 0;i --)

          for(j = 300;j > i;j--);

}

void main()

{

        char num[]={0x3f,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

        char add[]={0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

        uint i;

        uint j;

        while(1)

        {                                

                for(i=0,j=0;i<10;i++,j++)

                {

                        wei = 1;

                        P0 = add[j];

                        wei = 0;

                        if(j==7)

                        {

                                j=-1;//在j=-1和PO=add[j]之间会执行一步j++

                        }

                        duan = 1;

                        P0 = num[ i];

                        duan = 0;

                        if(i==9)

                        {

                                i=-1;//在i=-1和PO=num[ i]之间会执行一步i++

                        }

                        delay_ms(300);

                }        

        }

}

目录│文件列表:

 └ 数码管循环显示

    │ TEST1.pdsprj

    └ test

       │ STARTUP.LST

       │ STARTUP.OBJ

       │ test1

       │ test1.c

       │ test1.hex

       │ test1.lnp

       │ test1.LST

       │ test1.M51

       │ test1.OBJ

       │ test1.plg

       │ test1.uvopt

       └ test1.uvproj

TAG寄存器
  • 1 次
  • 1 分