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

嵌入式入门学习——6Protues点亮数码管,认识位码和段码,分辨共阴还是共阳(数字时钟第一步)

0 系列文章入口

嵌入式入门学习——0快速入门,Let‘s Do It!
首先新建基于Arduino UNO的protues工程,见本系列第3篇文章
1 点“P”按钮找器件
2 输入“seg”或“digit”查找数码管器件
3 找到我们想要的6位7段数码管
在这里插入图片描述
4如图A、B…DP都是段码,1、2…6是位码,段码位码我不再这里解释了,网上教程很多,让我们试试他是共阴还是共阳,共阴还是共阳网上解释也很多,我这图上的接法少串连了一个限流电阻,实际这么接可能电流过大烧毁发光二极管,然后我们开始仿真发现没动静,那就把电源和地换个方向。
在这里插入图片描述
换了方向可见二极管都点亮了,顺便也可以知道具体引脚对应的位置。实际工作中如果遇到不确定型号的数码管也可以使用这种方法上电测试。
对了连接完成电路后要点击左下角的仿真按钮才能让电路开始工作哦。
在这里插入图片描述
知道这些了我们就可以用Arduino UNO控制LED显示了,下图展示了流水灯程序,可以直观的看出每位数字的每个段码被依次点亮,当段码为高电平(红色)位码为低电平(蓝色)LED就被点亮啦。
请添加图片描述
程序如下:

void clearall()
{for(int seg=0;seg<8;seg++){digitalWrite(seg, LOW);   // 段码清零}for(int num=8;num<14;num++){digitalWrite(num, HIGH);   // 位码清零}}
void setup() {for(int seg=0;seg<8;seg++){pinMode(seg, OUTPUT); // 设置为输出模式digitalWrite(seg, LOW);   // 段码清零}for(int num=8;num<14;num++){pinMode(num, OUTPUT); // 设置为输出模式digitalWrite(num, HIGH);   // 位码清零}
}
void loop() {for(int j=8;j<14;j++){digitalWrite(j, LOW);   // 依次将位选设置成低电平for(int i=0;i<8;i++){digitalWrite(i, HIGH);   // 依次把段选设置为高电平delay(100);} clearall();}
}

不过这样控制可不优雅,这样要显示数字也太难了吧,还要去算那个数字由哪些段码组成,比如8就是0xFE(不显示小数点)7就是0xE0(只显示A、B、C对应的LED),而且Arduino还不支持C51或者STM32那样按组给GPIO赋值只能用循环的方式挨个比特赋值。下期教程引入第三方库SevSeg,让我们优雅的显示数字吧。顺便看看这个库底层是怎么设计的。

http://www.lryc.cn/news/464732.html

相关文章:

  • poisson过程——随机模拟(Python和R实现)
  • 100 种下划线 / 覆盖层动画 | 终极 CSS(层叠样式表)集合
  • 华为ICT大赛2024-2025网络赛道考试分析
  • linux 效率化 - 输入法 - fcitx5
  • YOLOv11改进策略【卷积层】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
  • 一天认识一个硬件之路由器
  • 【scene_manager】与 MoveIt 机器人的规划场景进行交互
  • 数据结构单向链表的插入和删除(一)
  • 鸿蒙网络编程系列30-断点续传下载文件示例
  • 深入拆解TomcatJetty(二)
  • 单元化架构,分布式系统的新王!
  • 【力扣打卡系列】滑动窗口与双指针(乘积小于K的子数组)
  • 浅谈微前端【qiankun】的应用
  • 【JavaEE】——四次挥手,TCP状态转换,滑动窗口,流量控制
  • D42【python 接口自动化学习】- python基础之函数
  • GitLab 老旧版本如何升级?
  • 现今 CSS3 最强二维布局系统 Grid 网格布局
  • 【图解版】力扣第146题:LRU缓存
  • 数据库知识点整理
  • 【JVM】内存模型
  • 代码随想录:二叉树的四种遍历
  • 【Linux】从多线程同步到生产者消费者模型:多线程编程实践
  • 如何在word里面给文字加拼音?
  • Detr论文精读
  • 找寻孤独伤感视频素材的热门资源网站推荐
  • 大模型~合集13
  • 【Next.js 项目实战系列】04-修改 Issue
  • 【Linux】并行与并发(含时间片)
  • 【Flutter】页面布局:弹性布局(Flex)
  • 深入解析 Go 语言接口:多接口实现与接口组合的实际应用