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

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

 荐  火... [复制链接]
已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 2025-2-14 11:05:59 | 显示全部楼层
第10集学习笔记:花式流水灯的实现,每个等效封装成一个子函数,灯效子函数的内部,通过合理的二进制相加和取反操作以及中间运用delay函数,即可实现不同的灯效的实现。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 2025-2-14 11:18:03 | 显示全部楼层
第11集学习笔记:IO的端口模式选择是通过置位端口内部寄存器实现,对内部上下拉电阻的控制,是控制PxPD和PxPU实现。32G12K128只开放了上拉电阻,在32G8K64上,即开上拉电阻和下拉电阻。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 2025-2-14 15:15:08 | 显示全部楼层
第12集学习笔记:SFR,XFR,EAXFR,CKCON是特殊功能寄存器,当需要访问XFR的时候,需要提前给EAXFR置位为1,才能对XFR进行正常的读写。众多的内部功能牵扯到的寄存器的设置都需要对SFR下面的不同的寄存器设置,XFR是越来越多的功能所对应的寄存器数量已经超过SFR(地址0X80H至0XFFH),故产生了拓展的特殊功能寄存器,其全部归纳到XFR下面(0x7EFE00至0x7EFEFF,0x7EFD00至0x7EFDFF,0x7EFB00至0x7EFBFF,0x7EFA00至0x7EFAFF)。CKCON是外部数据总线时钟控制寄存器,相似于WTST那个程序读取等待时钟控制寄存器的原理,将这个CKCON设置为0,既能设置外部数据总线速度为最快。在STC32G系列单片机的工程中,"EAXFR = 1;CKCON = 1;WTST = 1"这3句,被放在工程开始位置,已实现对单片机系统上电之后的初始化。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 2025-2-14 15:22:18 | 显示全部楼层
第13集学习笔记:数码管种类多,常见是7段数码管(7个笔画+1个点),其本质就是每1个笔画就是1个LED,这个电子元件内部是8个共阳极连接或者共阴极连接的led组。公共端是COM,另外的led不同的亮灭组合即可实现1位数码管显示不同的数字,再将这个不同的置位组合封装成数组,即后期在程序中只需要引用数组的特定元素,即可实现显示不同的“字”。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 2025-2-14 17:14:57 | 显示全部楼层
第14集学习笔记:STC32G12K128的IO口直接驱动2位数码管,因为段码各个笔画的线是通用的,只能通过对公共端COM1和COM2的高低置位实现选择哪一位显示io口传输过来的数据,如此交替显示,即可利用人眼睛的反应延时实现同时多位置数码管显示不一样的“字”,这就是动态显示。即只占用一组IO口外加另外的com电平控制,即可实现动态显示多位数码管。而静态显示,是一个数码管数据线常连接这一位数码管,即不需要通过控制com的高低电平选择哪一位显示,如果需要静态显示多位数码管,是需要使用多个1位数码管组合使用而实现。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

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

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 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配合使用才能实现目的。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

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

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

积分
86
发表于 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口资源和硬件排布方式,成本控制力度,选择不同的数码管驱动方案即可。
回复

使用道具 举报 送花

已绑定手机

0

主题

22

回帖

86

积分

注册会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-9 09:24 , Processed in 0.079738 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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