#include <reg51.h>

#define DataPort P1    //宏定义,如果换接口,只需要修改这里

sbit Seg_Latch = P2^2; //锁存器 段锁存
sbit Bit_Latch = P2^3; //位锁存

unsigned char code Seg_Code[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code Bit_Code[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char temp[8];

void delay(unsigned char t);
void dataproc(unsigned char n);
void display(unsigned char firstbit, unsigned char num);

void main()
{
    unsigned char i;
    while(1)
    {
        for(i = 0; i < 100; i++)
        {
            dataproc(i);
            display(0, 3);
        }
    }
}

void delay(unsigned char t)
{
    while(--t);
}

void display(unsigned char firstbit, unsigned char num)
{
    unsigned char i;
    unsigned int j;
    for(j = 0; j < 2000; j++)
    {
        for(i = 0; i < num; i++)
        {
            DataPort = Bit_Code[firstbit + i];//送位码
            Bit_Latch = 1;         //开门
            Bit_Latch = 0;         //关门
        
            DataPort = Seg_Code[temp[i]];    //送段码
            Seg_Latch = 1;         //开门
            Seg_Latch = 0;         //关门
            
            DataPort = 0x00;    //送段码
            Seg_Latch = 1;         //开门
            Seg_Latch = 0; 
            
            delay(10);
            //DataPort = 0x00;
        }
    }
}

void dataproc(unsigned char n)
{
    unsigned char i;
    for(i = 0; i < 3; i++)
    {
        temp[2 - i] = n % 10;
        n /= 10;
    }
}

/*
void DelayUs(unsigned char n)
{
    while(--n);
}

void DelayMs(unsigned char n)
{
    while(n--)
    {
      DelayUs(245);
      DelayUs(245);
    }
}    
    unsigned char i;    
    while(1)
  {        
      for(i = 0;i < 10;i++)
      {
            DataPort = 0;          //先清除数据
        Seg_Latch = 1;         //开门
        Seg_Latch = 0;         //关门
            
                            
            DataPort = 0xbf;       //送位码
            Bit_Latch = 1;         //开门
            Bit_Latch = 0;         //关门
        
            
            DataPort = Seg_Code[i];//送段码
            Seg_Latch = 1;         //开门
            Seg_Latch = 0;         //关门
            
            for(j = 0;j < 10;j++)
            {
                P1 = ~Seg_Code[j];
                DelayMs(200);
            }    
            DelayMs(200);          //选择合适的数据,使现象稳定
      }
  }    
    */

单片机8位共阴极数码管0~99自增相关推荐

  1. [STM32F1]基于STM32F103实现TM1640点亮16位共阴极数码管,显示“0~F”数字

    本节我们目标是实现TM1640点亮16位共阴极数码管,显示"0~F"数字: 1. 硬件设计 GPIO初始化配置 SCL(PB6)  SDA(PB7):开漏输出,通过IO模拟驱动TM ...

  2. C语言数码管是共阴共阳程序,成功C DIY 单片机(2)51单片机直接驱动共阴极数码管...

    C DIY :completely Do It Yourself, 完全地自己动手做 (原创:守口如平) 单片机驱动Led数码管(或n个Led)应该算是单片机经典试验之一了. 数码管种类: 少量的数码 ...

  3. 四位数码管秒表 c语言编程,4位共阴极数码管秒表设计仿真与程序

    #include "reg51.h" #include "intrins.h" #define GPIO_DIG   P2                    ...

  4. 按键自加自减的c语言数码管编程,8位共阴数码管动态扫描自增自减

    //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit duan=P2^2;//定义P2.2为段操作,爱设置哪个都行 sbit wei=P2^3;//定义P2.3为位操作 /*- ...

  5. c语言六个数码管显示123456,用51单片机C语言编写程序实现6位共阴极数码管循环显示0123456789ABCDEF,六个数码管是连续不同的六个数?...

    # include # define uint unsigned int # define uchar unsigned char code uchar shu[] = {0x3f,0x06,0x5b ...

  6. 4位共阴极数码管驱动

    这个是考核时候做的,期间做了消隐,感受良多,现在分享给大家看看. #include <STC15F2K60S2.H> #include <Digital595.h> #incl ...

  7. 入门必做的51单片机实验2----》利用外部中断的方法来控制发光二极管和共阴极数码管显示十六进制的0到F

    嘿!各位中午好! 我是肖肖的猪会飞 欢迎收看肖小猪频道 刚刚做了个单片机实验->ヽ( ̄ω ̄( ̄ω ̄")ゝ 分享一下 文章目录 前言 一,实验题目 二,程序 三,仿真效果 前言 此实验为 ...

  8. C51单片机-共阳极数码管循环显示数字0至9,共阴极数码管循环显示5201314(动态)

    keil uVision4界面: #include<reg51.h> //包含8051单片机寄存器定义的头文件 //共阳极数码管0到9 unsigned char seg1[]={0xc0 ...

  9. 共阳数码管段码表_简单共阴极数码管电路图大全

    共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个L ...

  10. 利用全加器实现7段数码管_简单共阴极数码管电路图大全(CD4511/段译码/驱动器)...

    共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个L ...

最新文章

  1. Aspose.Cells设置单元格格式
  2. Libevent学习环境搭建
  3. Qt 实现数据协议控制--组帧、组包、解析帧、解析包
  4. C++不同文件中相同变量的共享
  5. python虚拟机直接加载字节码运行程序_第二章 python如何运行程序
  6. 容器编排技术 -- Kubernetes kubectl create serviceaccount 命令详解
  7. 【lucene】lucene自定义 filter
  8. 强化学习:2 马尔科夫决策过程
  9. 生成对抗网络 GAN 基本原理与发展历程
  10. 【图像几何】基于matlab GUI傅立叶+DCT图像变换【含Matlab源码 844期】
  11. 公告:软件测试就业课涨价调整暨教学服务升级通知
  12. python手写汉字识别_python实现简单的文字识别
  13. 自制力差的元凶及习惯的养成过程
  14. 硬件测试的思考和改进:有道词典笔的高效测试探索
  15. windows Redis设置密码和取消密码
  16. 【个人作品】推荐一个SIP客户端-软电话,基于SIP协议,语言C++,界面QT4 开源,asterisk,tribox测试成功
  17. 个人声明 —— 转战知乎
  18. Unity2016 Unity3D开发VR游戏的经验
  19. 看了也学不会的模拟集成电路大白话系列(一)
  20. 6. JDK内置命令行工具

热门文章

  1. Python,海龟作图,闪避球小游戏
  2. Machine Learning读书会,面试算法讲座,创业活动,算法班(历届汇总)
  3. 3月16日----3月20日一年级课程表
  4. Android Q 上的Biometric生物识别
  5. XP计算机管理员不见了,winxp系统中超级管理员账户消失了如何解决
  6. Python中randn()函数的作用
  7. PR剪辑-电子相册学习笔记
  8. 多元微积分_旋度2.旋度公式推导
  9. 2014年世界互联网大会最值得分享的PPT:互联网思维
  10. 世界上最小的操作系统MenuetOS,仅有1.4M,安装运行全教程