基于STC系列单片机实现PNP型三极管S8550驱动共阳数码管或NPN型三极管S8050驱动共阴数码管功能

在这里插入图片描述在这里插入图片描述
Digitron.c

#include "Digitron.h"
//#include "Key.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
//uchar code DigitronBitCodeArray[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//定义八位共阴数码管位码数组变量 为什么不是{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} 这才是定义八位共阴数码管位码数组变量 不对吗? 在不使用NPN三极管驱动 用单片机端口直接连接驱动 位码数组是对的 但数码管亮度不够 因此使用了NPN型三极管(比如S8050)来驱动共阴数码管位选 NPN型三极管(比如S8550)基极输入高电平才能导通 解释:共阴数码管 阴极是公共端 对应位选 低电平选通 阳极是显示端 对应段选 高电平选通 由于共阴数码管阴极公共端接单片机来驱动共阴数码管阳极显示端 共阴数码管的亮度会比较低 需要借助NPN型三极管的集电极连接共阴数码管阴极公共端 而NPN型三极管的基电极串个限流电阻连接单片机端口 通过单片机端口输出高电平到NPN型三极管的基电极 从而导通NPN型三极管 放大流过共阴数码管的电流 这样共阴数码管的亮度才会比较亮    
//uchar code DigitronSegmentCodeArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};//定义共阴数码管显示0到F数据及符号“—”及熄灭数组变量
//uchar code DigitronSegmentCodeOfPointArray[] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1,0x40,0x00};//定义带小数点共阴数码管显示0.到F.数据及符号“—”及熄灭数组变量
uchar code DigitronBitCodeArray[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义八位共阳数码管位码数组变量 为什么不是{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80} 这才是定义八位共阳数码管位码数组变量 不对吗? 在不使用PNP三极管驱动 用单片机端口直接连接驱动 位码数组是对的 但数码管亮度不够 因此使用了PNP型三极管(比如S8550)来驱动共阳数码管位选 PNP型三极管(比如S8550)基极输入低电平才能导通 解释:共阳数码管 阳极是公共端 对应位选 高电平选通 阴极是显示端 对应段选 低电平选通 由于共阳数码管阳极公共端接单片机来驱动共阳数码管阴极显示端 共阳数码管的亮度会比较低 需要借助PNP型三极管的集电极连接共阳数码管阳极公共端 而PNP型三极管的基电极串个限流电阻连接单片机端口 通过单片机端口输出低电平到PNP型三极管的基电极 从而导通PNP型三极管 由外接电源来驱动共阳数码管 这样共阳数码管的亮度才会比较亮    
uchar code DigitronSegmentCodeArray[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff};//定义共阳数码管显示0到F数据及符号“—”及熄灭数组变量
//uchar code DigitronSegmentCodeOfPointArray[] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e,0xbf,0xff};//定义带小数点共阳数码管显示0.到F.数据及符号“—”及熄灭数组变量
uchar DigitronCacheDataArray[] = {0,0,0,0};//定义共阳数码管缓存数据数组变量
uchar DigitronBootTimerFlag = 1;//定义共阳数码管开机时间标志位变量 
uint  DigitronBootTimer = 0;//定义数码管开机时间变量
//extern uint KeyPressNumber;//如果在Key.c文件下已经定义按键按下数值变量KeyPressNumber 则以此语句来引用Key.c文件下的按键按下数值变量KeyPressNumber 否则先在Key.c文件下定义按键按下数值变量KeyPressNumber 接着在Key.h文件下的用extern关键字声明按键按下数值变量KeyPressNumber 最后通过在其他.c文件下#include "Key.h" 就可以引用在Key.c文件下已经定义的按键按

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/519537.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL

Open Graphics Library 用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API) 它将计算机的资源抽象称为“OpenG的对象”,将资源的操作抽象为“OpenGL指令”。 OpenGL上下文(Context) 在应用程序调用任何O…

搜维尔科技:3D Systems Geomagic Design X 逆向工程软件

产品概述 3D Systems Geomagic Design X 是全面的逆向工程软件 GeomagicoDesign XTM是全面的逆向工程软件,它结合了基于特征的CAD数模与三维扫描数据处理,使您能创建出可编辑、基于特征的CAD数模,并与您现有的CAD软件兼容。 拓展您的设计能…

砝码称重 蓝桥杯

在C中,fabs()和abs()都用于计算数字的绝对值,但它们之间有一些区别。 fabs(double x):计算浮点数x的绝对值,返回一个double类型的结果。 abs(int x):计算整数x的绝对值,返回一个int类型的结果。 数组的默…

每日OJ题_链表②_力扣24. 两两交换链表中的节点

目录 力扣24. 两两交换链表中的节点 解析代码 力扣24. 两两交换链表中的节点 24. 两两交换链表中的节点 难度 中等 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即&…

【java】后序遍历二叉树

采用递归方式实现 节点类 public class Node {private int value;//父节点private Node fNode;//左节点private Node left;//右节点private Node right;//是否已经打印过private boolean sign false;public Node() {}public boolean isSign() {return sign;}public void setS…

O2O:Offline Meta-Reinforcement Learning with Online Self-Supervision

ICML 2022 paper Introduction 元强化学习(Meta RL)结合O2O。元RL需要学习一个探索策略收集数据,同时还需学习一个策略快速适应新任务。由于策略是在固定的离线数据集上进行元训练的,因此在适应探索策略收集的数据时,它可能表现得不可预测&…

通义灵码-智能编码辅助工具

1.介绍 通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优&a…

腾讯云学生服务器申请入口、续费优惠价格和常见问题解答

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

网络——DHCP服务器、DNS服务器实验

网络——DHCP服务器、DNS服务器实验 一、DHCP服务器实验 DHCP——动态主机配置协议,用来管理ip地址的分配。网络中的每台计算机都有至少一个ip地址。在Windows网络连接对话框中可以设置成自动获取ip地址,这样主机作为DHCP client就可以自动从DHCP server获取ip地址了。 DHC…

支小蜜校园防欺凌系统如何有效应对学生霸凌?

学生霸凌不仅直接伤害到被霸凌者的身心健康,也对整个校园的和谐氛围构成了威胁。为了应对这一问题,校园防欺凌系统应运而生,成为维护校园安全、保护学生权益的重要工具。那么当校园防欺凌系统面对学生霸凌时,该如何有效应对呢&…

重新排序。

问题描述 给定一个数组A和一些查询 L,R求数组中第L至第 R个元素之和。 小蓝觉得这个问题很无聊,于是他想重新排列一下数组使得最终每个查 询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可 以增加多少? 输入格式 输入第一行包含一个整数n。 第二行包含n个…

PTA L2-015 互评成绩

学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。 输入格式&#xf…