yuyy1989
发表于 2023-5-23 16:10:29
24集打卡,https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=2110&pid=15968
发现手册的比较器例程上升沿下降沿注释标反了
18344371880
发表于 2023-5-23 16:59:07
第九集打卡:
第九集开始学习数码管的操作了,其实点了数码管和点亮LED是一样的操作,只不过还是采用常规的P6=0xff可能有些被动了,所以采用了数组的形式,我们可以按照数码管的0-9的显示,在数组了0-9的位输入对于的十六进制数,这样便于我们变量++,而且在这一块,com口采用了三极管控制,极大程度上增加了io口的带载能力
如果要点亮多个数码管,显示不同的内容,我们就要用到动态刷新,其实就是利用了人眼的暂留效应实现的,如果采用高速相加拍摄的话,我们会发现,其实是一个个点亮的,只不过太快了,让我们看起来就像一起点亮一样,如果只是点亮4个数码管的话,其实可以不用采用动态刷新,因为我们的io口足够的多,完全可以一组带一个,但这样就太浪费io口的资源了,毕竟这只是在做试验,如果是做项目的话,这样就会增加很多的成本,不过也可以采用595芯片,减少io口的资源浪费
课后作业一:H:0x89,J:0xf1,L:0xc7,n:0xc8,o:0xe3,P:0x8c,U:0xc1
课后作业二:其实就是数值循环而已,到九了就置零,然后蜂鸣器响其实就是按键里的程序,按下的同时,暂停循环,然后判断数值里的变量值是多少,然后赋值给蜂鸣器的io口
火大第一IKUN
发表于 2023-5-23 20:26:29
跟着冲哥学stc 冲冲冲
18344371880
发表于 2023-5-23 20:34:03
第十集打卡:
这第十集还是教学到了我说的动态刷新的,但动态刷新也涉及到一个问题,就是每次刷新到下一个数码管的时候,一定要先清屏再显示,不然可能会存在叠加显示的情况
到了数码管这一块,数组才是真正的被实现最大利用率,包括我们的段码和位码,目前运用的还是一维数组,数组的方式方法还很多,虽然我有过一定的基础,都不能保证灵活运用
关于课后作业,如果就从现在学习到的内容来说,延时一秒只能通过延时函数去实现,然后数码管也是动态刷新,在第三个数值里输入初始值0,0,-,0,0,-,0,0,关于杠号怎么写,其实就是G点亮而已,我们把他输入到段码的最后一位去就好,然后我们只需要不断的去修改第三个数组的,,,,,就可以,也就是变量自加,然后设置一个判断,如果第三个数组==3且==0的时候,暂停自加,并蜂鸣器响,但其实使用延时函数还是存在很大偏差的,我们可以采用定时器
lining1314
发表于 2023-5-23 21:49:37
2023.5.21继续打卡的
上午打卡
打卡:第21到第22集:继续深度讲解了在串口上的应用,这一节中可以感受到老师讲的十分的清楚易懂,同时自己的收货颇多以为后面的
下午打卡
我又回头看了前面的视频,有几个知识点还是理解不是很深刻
2023.5.22
继续打卡
单片机的比较器的结构图介绍
以及通过FLASH模拟EEPROM
18344371880
发表于 2023-5-23 22:14:31
第十一集打卡:
这集主要讲述的就是一个定时器的使用,和我前面几集描述的一样,定时器是一个对于时间拿捏的比较准的一个操作,最主要的是不占用cpu资源
主要例程其实就是把delay换成了定时器去操作,其实就是为了让我们了解,定时器也是一样的能做成一个延时使用,或者说,作为一个定时1ms变量自加进行替换
定时器就涉及到一个中断的问题,中断通俗点来说就是,你在学习,然后突然接了个电话,你就先把学习视频暂停在那,等你讲完电话,又继续播放,再换句话说,你在接电话期间,不影响视频的缓存,这就可以提高学习的效率
中断就是单片机的精髓,中断运用的多花,就代表着你对单片机的理解程度有多高
然后对于stc32g单片机来说,已经学习到中断这一块了,就要去多了解了解特殊功能寄存器的设置了,很多如定时器,i2c等等都涉及到这个,很多时候就是因为这个没有设置,而导致程序不执行或者达不到预想的效果
还要一个比较理想的就是,新51单片机有自动转载,不如反复赋值,这又节省了代码数量
然后相对于传统51单片机而言,新stc51单片机就多了一个不分频,也就是1T模式,传统51单片机都是12分频的,也就是12T模式,且只有这个,但stc新51单片机就要可选择性
再换句话来说,对于传统51单片机的搬运来说,修改的东西很少,主要就是分频和特殊功能寄存器,甚至某些情况下,可以直接搬运使用
定时器的操作就是寄存器的赋值
还要一个重点就是对定时器寄存器的声明
还要一个重点就是,定时器被执行函数不能大于需要定时的时间,不然可能会出错
关于课后练习二的话,其实就是增加一个按键检测,放在定时器的声明里,如果检测到按下,消抖之后确定是按下,第一步就是关闭EA,然后再把现行数值保存,等等下一次操作
18344371880
发表于 2023-5-23 23:00:43
第十二集打卡:
计数器其实也就是定时器,只不过是细微的变化,其实性质还是一样的
在使用计数模式的时候,需要把外部计数端口那个io口内部上拉电阻打开,也可以外部加上拉电阻
关于电机计数的,其实我们可以写一个空数组,每2秒进入之后记录计数是多少,然后储存在数组里,然后就可以多个数据取平均值,就能看到平均速度了
要显示多少次每秒,其实就是把获得的数进行除二,不就可以了
然后如果计数器溢出之后,在声明里面就变量自加,然后结束的时候,65536乘变量再加上没有溢出的值就可以计算出速度啦
yaje腿腿
发表于 2023-5-24 08:45:38
跟着冲哥学习强大的STC,并且免费申请实验箱,冲冲冲
18344371880
发表于 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,然后通过按键去加、减设置分钟,当确定键按下的时候,存储到数组了,然后变量自加,达到后输出程序
18344371880
发表于 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的变量去判断数码管位码上的数值