单片机蓝桥杯--数码管显示

2023-11-03

我们先来看一下蓝桥杯板中数码管部分的电路图:

对于动态数码管的控制,是需要有段选和位选的,位选是控制数码管哪一位显示,段选是控制该位显示什么数字,由上图可知,当Y6C有效时,P0控制的是数码管的位;当Y7C有效时,可以给P0写入显示数字的断码。以下依次是数码管0~F以及熄灭的段码:

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xff}
为了方便以后直接调用程序,直接用中断来写

上程序:

#include<STC15F2K60S2.H>
#include<intrins.h>
#define uchar unsigned char
unsigned char code SMG_NoDot[18] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xA1,0x86,0x8e,0xbf,0xff};//段码
unsigned char  SMG_SJ[] = {0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8};//对应每个位显示的数据非静态数组,可以直接改变对应的数值,比如SMG_SJ[0]=3,则第一个数码管显示3
uchar a=0,b=00;
void Timer0Init(void)        //1000微秒@12.000MHz
{
    AUXR |= 0x80;        //定时器时钟1T模式
    TMOD &= 0xF0;        //设置定时器模式
    TL0 = 0x20;        //设置定时初始值
    TH0 = 0xD1;        //设置定时初始值
    EA=1;
    ET0=1;
    TF0 = 0;        //清除TF0标志
    TR0 = 1;        //定时器0开始计时
}
void Init74HC138(unsigned char n)
{
    switch(n)
    {
        case 4:                                            //LED
            P2=(P2 & 0x1f) | 0x80;
        break;
        case 5:                                            //蜂鸣器与继电器
            P2=(P2 & 0x1f) | 0xa0;
            break;
        case 6:                                            //数码管位选
            P2=(P2 & 0x1f) | 0xc0;
            break;
        case 7:                                            //数码管段码
            P2=(P2 & 0x1f) | 0xe0;
            break;
    }
}
void main()
{
    Timer0Init();
    //SMG_SJ[7]=3;
    while(1);
}
void T0() interrupt 1
{
    Init74HC138(6);            //打开位选
    P0 = (0x01 << a);        //控制位选,从第一个到第八个数码管
    b=SMG_SJ[a];                //将对应的数据放到B
    Init74HC138(7);            //打开段码
    P0=SMG_NoDot[b];        //输出段码
    a++;                                //下次进入下一个数码管
    if(a==8)                        //到第八个数码管后从第一个开始
        a=0;
    
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机蓝桥杯--数码管显示 的相关文章

  • 【韧性设计模式】韧性设计模式:重试、回退、超时、断路器

    什么是韧性 软件本身并不是目的 它支持您的业务流程并使客户满意 如果软件没有在生产中运行 它就无法产生价值 然而 生产性软件也必须是正确的 可靠的和可用的 当谈到软件设计中的弹性时 主要目标是构建健壮的组件 这些组件既可以容忍其范围内的故障
  • IOS App 的图标和启动图的烦恼

    前言 好多iOS App的开发者都会面临的一个问题 那就是 App 的图标 icon 和启动图 launch images 一些没有经验 指的是没做过App审计的 的UI设计师 不知道该怎么做 他就会问开发者 这个时候就是你展示的时候 其实
  • git format-patch命令介绍

    git format patch的使用 1 在dev1分支上 打出所有dev1分支在master分支基础上的patch git format patch master 结果为d1c1 patch d1c2 patch 2 在dev1分支上

随机推荐

  • Win10 修改JAVAHOME环境变量无效,默认java -version未改变

    Win10 修改JAVAHOME环境变量无效 默认java version不变问题 1 造成该原因的三个路径 环境变量 2 解决方法 1 造成该原因的三个路径 环境变量 1 C Program Files x86 Common Files
  • 使用R读取并查看数据

    本篇文章介绍如何使用R读取并查看数据 包含一些最基础的函数使用方法和说明 后面还会陆续介绍数据清洗 匹配和提取等相关的操作 查看函数帮助 对于新手来说 在使用R时最重要的是了解不同函数的使用方法 很多时候我们都是边用边学的状态 拿到一个函数
  • CRM部署以流程为核心

    大多数国内企业还不太习惯流程 尤其是精细化管理的流程 如果有流程 也可能是粗放型的流程 因为我们还是更注重结果 不太习惯过程管理 我们还是更注重每个人干什么 而不太习惯整体协同 在这样的基础上 大部分企业在部署CRM的时候 就或左或右的进入
  • GitHub Copilot收费了

    今天一早收到邮件看到提示收费的邮件 才想起来还有个这个插件 废话少说直接链接 https github com features copilot 个人看法 功能 首先功能确实是比一般的代码提示强不少 但要做到 我 hello GitHub
  • vue-cli项目中静态文件过大的问题

    我们最近在做一个项目时 因为static 文件中含有几个视频文件 导致static 文件过大 build 的时候非常慢 在这我大概介绍一下上面问题的解决方法 首先我们先要了解一下 webpack 的一个插件 拷贝插件 copy webpac
  • Linux系统安装VMware Tools和同W7共享文件遇到的问题

    我用的系统为CentOS6 5 minimal版本 minimal版本默认不启动网络 所以要自己配置 vi etc sysconfig network script ifcfg eth0 1 NM CONTROLLED no 修改为no不依
  • C# Task Cancellation总结

    1 调用cancellationTokenSource Cancel 时 只有在task的函数体内使用token ThrowIfCancellationRequested 方法时才会触发ContinueWith Action
  • Java jdk1.5 新特性讲解

    JDK1 5 可以说是java 最经典的一个版本了 在 jdk1 5 发布时 就因他的改动大 而命令为jdl5 0 为后来 java 的壮大立下了汗马之劳 有网友在面试的时候被问到 jdk新特性 我这里索性就从 jdk1 5的特性说到1 8
  • Android产品研发(十四)-->App升级与更新

    转载请标明出处 一片枫叶的专栏 上一篇文章中我们讲解了Android app中的轮询操作 讲解的内容主要包括 我们在App中使用轮询操作的情景 作用以及实现方式等 一般而言我们使用轮询操作都是通过定时任务的形式请求服务器并更新用户界面 轮询
  • 《2020王道》

    绪论 数据结构基本概念 数据 数据是信息的载体 是描述客观事物属性的数 字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合 数据元素 数据元素是数据的基本单位 通常作为一个整体进行考虑和处理 一个数据元素可有若干个数据项组成
  • 项目中的外包团队如何管理

    在复杂的项目工作中 对外采购产品 服务变得越来越普遍 这种基于合同的跨组织合作方式 确实给项目的管理工作带来了更大的挑战 项目经理在管理好自己团队的同时 应该怎样做好针对外包团队的监督与控制工作呢 01 工作外包不等于甩包袱 首先需要明确的
  • QLabel中设置背景图片的4种方法

    1 图片不重复 可设置缩放比例 不可动态缩放 find package Qt QT VERSION MAJOR COMPONENTS Svg REQUIRED Qt QT VERSION MAJOR Svg include
  • 18、计算机图形学——BRDF与渲染方程

    一 BRDF Bidirectional Reflectance Distribution Function 双向反射分布函数 基于https blog csdn net Master Cui article details 1197877
  • 文件上传漏洞攻击与防范方法

    01 文件上传漏洞简介 文件上传漏洞是web安全中经常用到的一种漏洞形式 是对数据与代码分离原则的一种攻击 上传漏洞顾名思义 就是攻击者上传了一个可执行文件如木马 病毒 恶意脚本 WebShell等到服务器执行 并最终获得网站控制权限的高危
  • python接口自动化测试 ( 第一章 )

    python接口自动化测试 第一章 接口自动化测试实战 这是一个从0到1的过程 一步一步搭建的测试接口框架 本教程从开始写框架的思路 和实现过程深入解析 并且深入到了每个相关的的各个细节 不论你是刚入门的菜鸟 还是一个懂编码经验的工程师 相
  • OpenVX嵌入式图像处理(一)硬件平台及软件介绍

    图像处理这几年可谓是大红大紫了一番 尤其是OpenCV的出现让很多之前只有研究者才能使用的算法变成了小白装个库调用个函数就可以解决的问题 但是实时性一直以来都是一个非常头疼的问题 尤其是在嵌入式平台上进行图像处理的门槛一直以来都没有降低 今
  • 关于安装PotPlayer64出现PotPlayer 64 bit need right Try agin的问题

    首先官网下载 官网地址 http www potplayer org 根据自己的操作系统位数随便下载一个 进行安装 出现问题 没用admin权限 这时候你需要进行的操作是把当前窗口关闭 然后选中软件 右键选择以管理员身份运行 切记是以管理员
  • STM32学习笔记(4) 高级定时器-两路互补的PWM输出(带死区和刹车控制)

    目录 1 实验目的 2 实验效果 3 理论部分 3 1时钟源 3 2时基单元 3 3输入捕获 4 程序流程 4 1GPIO初始化结构体 4 2时基初始化结构体 4 3输出比较结构体 4 4刹车和死区结构体的初始化 5 程序源码 1 实验目的
  • roblox虚拟世界怎么做服务器,roblox虚拟世界

    游戏简介 roblox虚拟世界是一款像素风格模拟经营游戏 游戏采用简约的画面风格设定 超大的世界地图可以自由的探索 还可以收集丰富的物品资源进行创造 定制一个专属的秩序 游戏特色 1 游戏采用高清品质的画面 大家开自由的畅玩 2 随时随地一
  • 单片机蓝桥杯--数码管显示

    我们先来看一下蓝桥杯板中数码管部分的电路图 对于动态数码管的控制 是需要有段选和位选的 位选是控制数码管哪一位显示 段选是控制该位显示什么数字 由上图可知 当Y6C有效时 P0控制的是数码管的位 当Y7C有效时 可以给P0写入显示数字的断码