当前位置: 首页 > news >正文

51单片机 数码管的显示与译码器

共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90}

共阳极数组A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E}

 

共阴极数组0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F}

共阴极数组A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71}

 

共阴、两组四位一体数码管,位选接74LS138译码器,输入(位选)CBA接P20,P21,P22。段选通过74573后接P1口。

若不使用译码器,可直接将位选段接IO口,赋值改变。


/*******************************************************************************
* 实 验 名         : 动态数码管显示
* 实验说明         : 8位数码管依次显示0~7
* 作    者         : L2
* 时    间         : 2016-08-02

*******************************************************************************/
#include<reg51.h>

#define GPIO_DIG P1         //Digitron  数码管
sbit LSA= P2^0;
sbit LSB= P2^1;
sbit LSC= P2^2;

unsigned char code DIG_CODE[10]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0~9的显示码
void DigDisplay();

void main(void)
{
    while(1)
        DigDisplay();                
}


void DigDisplay()
{
    unsigned char i;
    unsigned int j;
    for(i=0;i<8;i++)
    {
        switch(i)     //位选,选择点亮的数码管,
        {
            case(0):
                LSA=0;LSB=0;LSC=0; break;//显示第0位
            case(1):
                LSA=1;LSB=0;LSC=0; break;//显示第1位
            case(2):
                LSA=0;LSB=1;LSC=0; break;//显示第2位
            case(3):
                LSA=1;LSB=1;LSC=0; break;//显示第3位
            case(4):
                LSA=0;LSB=0;LSC=1; break;//显示第4位
            case(5):
                LSA=1;LSB=0;LSC=1; break;//显示第5位
            case(6):
                LSA=0;LSB=1;LSC=1; break;//显示第6位
            case(7):
                LSA=1;LSB=1;LSC=1; break;//显示第7位    
        }
        GPIO_DIG=DIG_CODE[i];//发送段码
        j=10000;                         //扫描间隔时间设定,若减少j,可观察到稳定显示的0~7 (扫描速度太快,人眼识别不了)
        while(j--);    
        GPIO_DIG=0x00;//消隐
    }
}


转载于:https://www.cnblogs.com/l20902/p/10610974.html

相关文章:

  • Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
  • Java编程的逻辑 (31) - 剖析Arrays
  • 183. Customers Who Never Order
  • FreeSWITCH一些需求应对
  • Tomcat的JVM设置和连接数设置查看JVM
  • JAVA Day4
  • 苹果appstore审核 IPV6网络问题被拒原因分析和处理
  • 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究[转]...
  • HDU 5744 - Keep On Movin
  • bzoj1657[Usaco2006 Mar]Mooo 奶牛的歌声*
  • chattr与lsattr管理系统关键文件
  • zabbix系列(五)zabbix3.0.4 探索主机Discovery自动发现主机详细图文教程
  • 1-1-1 裸机工具安装
  • JavaWeb请求-响应学习笔记
  • task mysqld:26208 blocked for more than 120 seconds
  • [ JavaScript ] 数据结构与算法 —— 链表
  • es6
  • JAVA并发编程--1.基础概念
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Python中eval与exec的使用及区别
  • SpingCloudBus整合RabbitMQ
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 分布式任务队列Celery
  • 每天一个设计模式之命令模式
  • 前端相关框架总和
  • 数组的操作
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 用Python写一份独特的元宵节祝福
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 阿里云ACE认证之理解CDN技术
  • ​比特币大跌的 2 个原因
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #Linux(帮助手册)
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (23)Linux的软硬连接
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (c语言)strcpy函数用法
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (算法二)滑动窗口
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net MVC + EF搭建学生管理系统
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET实现之(自动更新)
  • [ solr入门 ] - 利用solrJ进行检索
  • [] 与 [[]], -gt 与 > 的比较
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured