找回密码
 立即注册
楼主: 布丁橘长

视频教程-32位8051-屠龙刀-第0-100期合集-布丁橘长

   火... [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-14 17:36:39 | 显示全部楼层
第15集学习笔记:IO口直驱多位数码管,基本逻辑一样,都是以数码管动态显示的办法,根据硬件情况选择1组或者多组IO口作为数码管的数据控制线,通过其他IO口对每个不同位置COM位的电平控制,即可实现控制某一位来显示此时数据总线上的数据(即实现选位+显示),以此类推的话,多位数码管即使用多个io口直连COM口即可解决,如果数码管超过8位或者是超过4位,6硬件设计时选用38译码器可实现节约io口资源(大多单片机ic的io口功能上基本都是复用的,只是选用最简单的电平输出功能,浪费资源)。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-14 18:08:12 | 显示全部楼层
第16集学习笔记:74HC595是串行转并行的芯片, 通过SH-CP输入时钟上升沿来控制DS数据线上的数据输入到74595芯片。即流程是:拉低SH-CP,输入数据到DS,再拉高SH-CP,这次SH-CP的上升沿让DS上的数据进入到74595的数据寄存器中,并将数据左移,如此往复,即可将1Byte(8bit)的数据输入到74595,再通过拉低输出输出存储器锁存时钟线ST-CP再拉高ST-CP,这个ST-CP拉高时产生的上升沿即让74595并行输出刚才ds线串行输入到595的1Byte(8bit)数据,74595的Q0至Q7连接数码管,即可在数码管上实现显示对应数据。以上就实现了只使用3个io口,即实现了驱动一位数码管的显示数据。(代码实现中,DS取数据的最高位还是最低位是根据硬件的链接关系)

上一期的学习笔记补充:38译码器是可以实现三个io转化成8选1输出,但是,38译码器输出的是高电平,如果数码管硬件是采用共阳极数码管,38译码器可行。如果采用的是共阴极数码管,选用38译码器的同时还需要选择反向器ic配合使用才能实现目的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:108
  • 最近打卡:2025-05-01 08:20:47
已绑定手机

1

主题

63

回帖

521

积分

高级会员

积分
521
发表于 2025-2-15 10:20:23 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:104
  • 最近打卡:2025-05-01 12:15:50
已绑定手机

0

主题

36

回帖

500

积分

高级会员

积分
500
发表于 2025-2-15 13:42:19 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-17 10:01:31 | 显示全部楼层
第17集学习笔记:74HC595驱动多位数码管,通过单片机的io口来控制多位数码管的COM1......COMn,所有数码管的A-DP都连接到74595的Q0-Q7,还是通过人眼睛的反应延迟,通过置位连接COM口的io口,实现选择哪一位显示现在对595输出的数据,个人理解:这个方案能节约单片机的io口资源,通过更少的io口占用实现链接控制多位数码管的动态显示。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-17 10:13:45 | 显示全部楼层
第18集学习笔记:74HC595级联驱动多位数码管,上一块595的Q7'接入到下一块595的DS,多片595集连共用595的输入时钟SH-CP和ST-CP,在硬件上多位数码管的公共端接入到第一片或者是第二片595的Q0-Q7,即是输出数据时,则需要根据硬件连接方式,确定输出数据的先后顺序,决定是先发送位码还是段码。在这种方案下,即可实现3个io口即可驱动多位数码管,能在之前的数码管驱动方案上继续节约io口资源,在实际应用过程中如果遇到io口不够用的情况下,这个方案能解决这个麻烦。实际设计中,考虑io口资源和硬件排布方式,成本控制力度,选择不同的数码管驱动方案即可。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-17 10:23:56 | 显示全部楼层
第19集学习笔记:独立按键的使用,是先设置io口的模式为准双向口,实现单片机对变量事件的读入,在处理案件操作的过程中 ,需要加入去抖操作,硬件去抖是在硬件设计中加入电容,以去除按下时的电平波动。软件去抖是在扫描函数或者是中断函数中加入延时函数,在延时一定时间后,再读取io的状态,这种操作能实现基本的去抖操作,以准确的读取外部状态。软件去抖的延时时间,之前的经验石:一般控制在50ms内。例程所使用的是延时10ms,后期相关设计及使用过程中,视情况调节延时时间,并在硬件设计上,同步加入按键电容,在硬件去抖的前提下,查看效果。再加上软件去抖操作,降低去抖的延时时间,以保证读取io口状态的准确性和及时性。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-17 11:04:11 | 显示全部楼层
第20集学习笔记:将键值获取过程封装,后期使用过程中直接调用这个功能,以返回的键值,继续做判断,再进行相关的处理操作。对按键的间隔时间做判断,检测到案件按下,即开始累计计时,中间是通过去抖延时实现的计时,通过对去抖延时间隔次数的技术,再与原设定的双击、长按时间做比较,得出最后按键事件标记。整体封装功能输出最后得出的按键时间到主函数的处理函数。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-02 19:40:32
已绑定手机

0

主题

22

回帖

84

积分

注册会员

积分
84
发表于 2025-2-17 11:11:49 | 显示全部楼层
第21集学习笔记:4*4矩阵按键有8个输出口(4行4列),翻转法(线反转法)的实现,先对4列全部置位1,再读取行里面的哪一行被按下,即可得出被按下的具体键号。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-2-20 15:27:52 | 显示全部楼层

qiang

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:57 , Processed in 0.136821 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表