找回密码
 立即注册
楼主: admin

视频教学:《32位8051单片机原理及应用》,一等奖2万, 送实验箱; 冲哥版

   火... [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-23 20:34:03 | 显示全部楼层
第十集打卡:
这第十集还是教学到了我说的动态刷新的,但动态刷新也涉及到一个问题,就是每次刷新到下一个数码管的时候,一定要先清屏再显示,不然可能会存在叠加显示的情况
到了数码管这一块,数组才是真正的被实现最大利用率,包括我们的段码和位码,目前运用的还是一维数组,数组的方式方法还很多,虽然我有过一定的基础,都不能保证灵活运用
关于课后作业,如果就从现在学习到的内容来说,延时一秒只能通过延时函数去实现,然后数码管也是动态刷新,在第三个数值里输入初始值0,0,-,0,0,-,0,0,关于杠号怎么写,其实就是G点亮而已,我们把他输入到段码的最后一位去就好,然后我们只需要不断的去修改第三个数组的[0],[1],[3],[4],[6],[7]就可以,也就是变量自加,然后设置一个判断,如果第三个数组[6]==3且[7]==0的时候,暂停自加,并蜂鸣器响,但其实使用延时函数还是存在很大偏差的,我们可以采用定时器
回复 支持 反对

使用道具 举报 送花

0

主题

4

回帖

28

积分

新手上路

积分
28
发表于 2023-5-23 21:49:37 | 显示全部楼层
2023.5.21继续打卡的
上午打卡

打卡:第21到第22集:继续深度讲解了在串口上的应用,这一节中可以感受到老师讲的十分的清楚易懂,同时自己的收货颇多以为后面的
下午打卡
我又回头看了前面的视频,有几个知识点还是理解不是很深刻
2023.5.22
继续打卡
单片机的比较器的结构图介绍
以及通过FLASH模拟EEPROM
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-23 22:14:31 | 显示全部楼层
第十一集打卡:
这集主要讲述的就是一个定时器的使用,和我前面几集描述的一样,定时器是一个对于时间拿捏的比较准的一个操作,最主要的是不占用cpu资源
主要例程其实就是把delay换成了定时器去操作,其实就是为了让我们了解,定时器也是一样的能做成一个延时使用,或者说,作为一个定时1ms变量自加进行替换
定时器就涉及到一个中断的问题,中断通俗点来说就是,你在学习,然后突然接了个电话,你就先把学习视频暂停在那,等你讲完电话,又继续播放,再换句话说,你在接电话期间,不影响视频的缓存,这就可以提高学习的效率
中断就是单片机的精髓,中断运用的多花,就代表着你对单片机的理解程度有多高
然后对于stc32g单片机来说,已经学习到中断这一块了,就要去多了解了解特殊功能寄存器的设置了,很多如定时器,i2c等等都涉及到这个,很多时候就是因为这个没有设置,而导致程序不执行或者达不到预想的效果
还要一个比较理想的就是,新51单片机有自动转载,不如反复赋值,这又节省了代码数量
然后相对于传统51单片机而言,新stc51单片机就多了一个不分频,也就是1T模式,传统51单片机都是12分频的,也就是12T模式,且只有这个,但stc新51单片机就要可选择性
再换句话来说,对于传统51单片机的搬运来说,修改的东西很少,主要就是分频和特殊功能寄存器,甚至某些情况下,可以直接搬运使用
定时器的操作就是寄存器的赋值
还要一个重点就是对定时器寄存器的声明
还要一个重点就是,定时器被执行函数不能大于需要定时的时间,不然可能会出错
关于课后练习二的话,其实就是增加一个按键检测,放在定时器的声明里,如果检测到按下,消抖之后确定是按下,第一步就是关闭EA,然后再把现行数值保存,等等下一次操作
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-23 23:00:43 | 显示全部楼层
第十二集打卡:
计数器其实也就是定时器,只不过是细微的变化,其实性质还是一样的
在使用计数模式的时候,需要把外部计数端口那个io口内部上拉电阻打开,也可以外部加上拉电阻
关于电机计数的,其实我们可以写一个空数组,每2秒进入之后记录计数是多少,然后储存在数组里,然后就可以多个数据取平均值,就能看到平均速度了
要显示多少次每秒,其实就是把获得的数进行除二,不就可以了
然后如果计数器溢出之后,在声明里面就变量自加,然后结束的时候,65536乘变量再加上没有溢出的值就可以计算出速度啦
回复 支持 反对

使用道具 举报 送花

6

主题

16

回帖

821

积分

高级会员

积分
821
发表于 2023-5-24 08:45:38 | 显示全部楼层
跟着冲哥学习强大的STC,并且免费申请实验箱,冲冲冲
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-24 13:40:13 | 显示全部楼层
第十三集打卡:
这集,主要就是对历往学习的知识温故而知新
也教会了我们在templates设置一下比较固化的输入内容或者函数,便于我们直接取用,这个和声明void delay()还是有所区别的,不过都是换汤不换药
然后就是一个bdata位寻址的使用,其实使用起来和sbit 名称=0x00;是类似的
bit就是单个字节的定义
然后也再详细的重学了一半模块化编程
static:静态变量,也就是程序第一次路过的时候,告诉他,变量等于啥,循环完再路过的时候,就不告诉了,static i = 0;
这集的教学核心就是怎么去规范化的书写函数,怎么灵活调用各函数
这一集也是终于学到for函数了,其实到这,我们常用函数就已学的差不多了,包括各种声明和定义
return就是返回的意思,这个需要再带返回值的函数里才使用,void开头的用不上
讲真的,这13集是我看的最入神的一集,涉及面比较广,很多定义声明及赋值和常用函数的运用都有涉及,就像网络上说的一样,C语言的创造者都不敢说自己精通C语言,更何况是我们,这无形之间给我们提供了很多思路及逻辑
关于课后作业,其实我们可以先涉及几个全局变量,然后在定时器了十毫秒后自加,达到200毫秒后进行驱动程序,400ms,800ms同理,实现的办法有很多种,这个还是比较简单粗暴的
至于课后作业二的话,我们可以在设置定时的时候,暂停数码管的原有显示,然后显示00.00,然后通过按键去加、减设置分钟,当确定键按下的时候,存储到数组了,然后变量自加,达到后输出程序
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-24 14:35:16 | 显示全部楼层
第十四集打卡:
矩阵按键其实就是动态扫描,通过不断扫描然后不断判断,当两个条件成立的时候,就能确定我们按下的是哪个键,这里
矩阵按键虽然程序是复杂了,但都还是简单的函数操作,但能节省很多的io口的资源,虽然stc32g io口很多,但我们退一步说,如果是stc8g1k08么,那如果说都还够,那如果我们不是这八个,而是64个按键呢
可能有人会觉得,这扫描不是很麻烦呢,万一我按下了,没扫描到呢,这个假设是成立的,但是建立在你每按一个键都在几毫秒的情况下,才有可能
Switch函数其实就是约等于很多个if函数,不过这个函数有点瑕疵的就是,结束break未输入的话,程序也不会报错,这可能就会导致程序出错
课后作业1:其实就是LED0点了的情况下,赋值一个变量进行减减,到零九熄灭
课后作业2:其实就是跳过判断,或者说用个定时器,按下这个键,定时器启动,然后进入中断函数,函数内容就是打开门锁
课后作业3:就是检测按钮是否处于空闲状态,如果是,用计数器也好,delay延时也好,延时10秒后赋值0xff,如果中途有按键按下,就重新计时10秒,10秒后赋值0xff且清空密码,有按键按下在赋值就行啦
课后作业4:for(i=0,i<8,i++),然后他通过i的变量去判断数码管位码上的数值
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-24 20:06:47 | 显示全部楼层
第十五集打卡:
这集其实还是学习中断系统,只不过不是定时器中断,而是外部中断了,其实来说,外部中断更容易上手,也是一样操作寄存器的玩法
其实不论外部中断,还是定时器的中断,都有中断优先级,然后其实我们还要注意一个点,如果存在多个定时器中断的话,一定需要设置优先级,不然可能存在中断跳过的情况,这样会让程序运行出现错误,而且要调整为穿插着触发中断
冲哥每集都在传授新知识,又在用老例程反复扩展,真的是位良师
课后作业2:其实中断的设置都是一样的,不过有区别的就是,外部中断2,3,4只支持下降沿,所以说,如果项目中的某个中断不需要优先级太高的话,然后刚好只需要下降沿触发,我们可以优先使用2,3,4的外部中断
课后作业3:有个很实用的,就是弄一个数码管的24小时时钟,然后到不论调整时分秒,我们都采用不同的中断系统去绑定一个按钮,然后就能在不中止计时的情况下进行调整时分秒
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-24 21:05:56 | 显示全部楼层
第十六集打卡:
这集的很有意思,io口的中断模式真的很香,说实话,我接触过stc89c51,也接触过stc8g,但都没有这个功能和寄存器,这也就是stc的强大之处
其实和常规的外部中断口操作没什么两样,就是中断号需要绕个圈圈,这个有两种做法,第一就是下载stc的官方软件直接安装,第二就是通过汇编语言去跳转,但其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
其实不论是传统中断还是io口中断,都不建议在中断里加延时,特别是延时时间大于中断节奏的那种,那就约等于无限中断,特别是定时器的情况下。
请原谅我这么粗鲁的方式:
其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
其实我有一个疑问,如果多个超过31中断号的中断同时触发的话,也是都跳转13号中断么
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-06 08:23:11

28

主题

162

回帖

1909

积分

金牌会员

积分
1909
发表于 2023-5-24 22:40:05 | 显示全部楼层
第十七集打卡:
学到了第一个内部外设:adc
也就是把数字信号转的模拟信号的一个硬件,就好比我们的音响,就是一个adc的表现吧
然后adc中最关键的就是基准电压,如果要追求极致准确的话,建议采用外部基准电压
STC的新51单片机基本具备了adc功能,但有些芯片是没有外部参考电压的,这还好,如果有外部参考电压的话,在采取内部参考电压,也就是1.19v的时候,外部参考电压引脚务必不能悬空,可以接vcc
还有一个点,不论采用vcc作基准电压,还是另外设置基准电压,甚至直接使用内部的1.91v,我们的模拟信号的电压都不能大于我们拟定的基准电压,虽然我没试过高于会怎么个情况,但起码出来的数据是不正确的
adc的结果获取又分为两种:查询法和中断法,其实中断法就是比查询法多了一行代码,EADC=1;
_nop_()的意思就是消耗一个指令周期,用这个之前,需要引用intrins.h这个头文件
中途冲哥还不忘了指点一下硬件工程师必备的吃饭家伙“万用表”,哈哈哈
我们可以看到,冲哥基本上给我们录视频都是在较晚的时候,今天还咳嗽了,务必注意身体啊
然后预编译这一块确实还是有点迷糊,还是得再理解理解,现在是能理解大体轮廓,还得再实操实操
回复 支持 反对

使用道具 举报 送花

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

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

GMT+8, 2025-5-6 22:24 , Processed in 0.136690 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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