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

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

   火... [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2024-12-27 20:03:52
已绑定手机

2

主题

23

回帖

154

积分

注册会员

积分
154
发表于 2023-8-5 10:27:21 | 显示全部楼层
打卡第15集,对于初学者有点难
回复 支持 反对

使用道具 举报 送花

2

主题

25

回帖

84

积分

注册会员

积分
84
发表于 2023-8-5 11:01:23 | 显示全部楼层
2023.8.3 星期六

第十三集:简单多任务处理上
1.函数注释添加
2.static静态变量只会赋一次初值,下一次进入函数时不赋值
这一集中冲哥讲解了函数头的添加方法,不得不说,这是我在其他单片机教程里没有看过的,感谢冲哥!!!!!!!
回复 支持 反对

使用道具 举报 送花

0

主题

4

回帖

126

积分

注册会员

积分
126
发表于 2023-8-5 11:32:45 来自手机 | 显示全部楼层
本帖最后由 352693126 于 2024-1-17 23:34 编辑

小白打卡学习之:
1.认识单片机,很多东西里面都有单片机,这个没啥说的,需要注意的就是要坚持学习。
2.软件安装,环境搭建,驱动,资料下载pdf查看,这个已经完成。程序下载,这个没法试了。
3.实验箱,分区域介绍功能。
疑问,数字测温和模拟测温比较,是不是数字测温这种间断采集更省电?
然后就是能搞到实验箱板子原理图就好了(资料里已经找到了),这样可以熟悉各个板块的连接,自己开发东西可以用到。一会我去论坛看看有没有资料。
4.点亮LED寄存器听得不是太懂,注释多行/*    */记录下。还有不停电下载。sbit和#include用法。(多次观看加8G1k板子实验终于懂了)
疑问,在我这个单片机上有p3.0——p3.7,而这里面有两个位端口是用于连接USB下载程序的,如果把它定义了会怎么样,单片机是不是就锁死了,不能下载程序了?
5.printf(“”)的用法,十进制二进制十六进制转换,这没什么说的。运算符加减乘除直接用就是了,取余符号%用法需要记一下,然后位运算这个挺重要的,与或取反(非)运算及符号,移位符号。
牢记
unsigned  char取值范围0-255(8位FF)
unsigneg int取值范围0-65535(16位FFFF)

6.延时函数运用,while与do{}while区别,a++与++a区别,模块化编程三步走:声明、定义、调用,新建.c和.h文件,define运用。
#ifndef--xxx-h--
#define--xxx-h--
#endif
7.if  else运用,按键程序编写,那个while运用的很巧妙。已成功在STC8G1K上实验。不过发现冲哥说用感叹号取反,我却记得取反是~,百度后,加上自己实验,还是用~取反好,位变量也能用。
数组视频里直接u8给我整懵逼了,后来查看才发现8g芯片的头文件没定义,自己定义一下,百度别的视频发现可以➕code,现在已经完美完成。自己重默写代码,main打成mian😂,数组里面是逗号我给用成了分号,这个需要注意。
8.蜂鸣器使用这个没什么问题,代码看一遍按照自己的想法写了。发现不定义开机变量没办法实现单按键开关机。又定义了一下。第二个功能选择变量,我没有定义,按照流水灯写的,加了个if搞定。(定义变量这种写法我需要学习下,可能这种是经验写法吧)
然后就是视频里的代码好像有错误,功能选择键在没开机时就可以选择功能,冲哥似乎忘记在key2前面➕一个if来判断开关机状态。
后面视频没看完我也发现了按钮不灵的问题,我猜测应该是在闪灯延时函数,出不来,所以按下按钮没反应。这集对于我一个小白确实有难度,好在最后还是弄懂了。
9.数码管静态显示,手头有四位数码管,用杜邦线连接,线有点多。看完视频,自己试了试顺利写出代码,作业也完成了,那个显示几,就响几声,想了半天,最后想起来用while写得。
10.数码管的动态显示,看了一遍视频,自己动手写10秒挑战,还是没完成,原因在于取余和数组作用不熟练。然后又参考了下视频才完成的。
至于作业,时钟程序,开始还想用取余的方法,发现有点困难,后来想了下用了好几个变量,最终实现。但是闹钟我用if判断变量写出来不会响,还有就是这简易时钟时间不准确。
11.定时器的使用,这个用STC软件很容易实现,已验证可用,另外需要➕中断开关EA=1,注意这个定时函数是写在主函数外面的!发现存在问题按键的扬声器时间延时很短不是原来的10ms了,目前没找到解决办法。
作业完美用定时器实现了时钟的动态显示,也解决了闹钟不响的问题。但是那个让增加按钮使时钟暂停,我用的if➕一个bit变量,写在主函数while里,能使时钟暂停,但是按键时灵时不灵,分析原因应该是判断按键是否按下delay_ms(10)函数执行到一半,被打断所致,目前没办法解决这个问题。
12.计数器的使用,看到这一节,感觉自己有点混乱了,然后又重新看了11节好几遍。现在终于弄明白了定时器是什么,计数器是什么,中断又是什么!然后现在有一个疑问,设置完定时器0,在设置计数器1,那个TMOD的值一直在设置变化,会不会有影响。我看到有的写法里在TMOD后面加个&或者l,百度了下说是控制位,但是不知道如何算出控制哪一位的?
13.多任务,这个写LED按键还可以跟上,看到key按键编写直接囧比了,里面有for函数静态变量,return返回值,还有l和&运算。前面掌握的不好,问题一下子在这里突显了出来。然后自己百度,理解入口参数,理解返回值。还有很难搞懂的与或运算,至今,与或运算,我还停留在能理解代码这么写的意思,但是不会灵活运用,如if(~key&(1<<i)),如果让我写,我怎么也不会想起来这么去写。
看完key之后beep和tim0的编写就简单多了!
这里建议一下:与或运算的运用,如果能单独有一章讲一下详细怎么灵活运用就好了。
关于作业1已经在8g1k上实验完成,while里写一个关于中断的10标志位,10毫秒执行一下,然后里面新建一个j变量,j++;j最大800ms时置0,要想200ms取反,我想到的是取余,if(j%200==0),同理400ms为if(j%400==0),至于800ms直接if判断就行了。
14.矩阵按键,新学习了异或^的用法,就是简单说异或就是对前后两次状态的数值进行对比,找不同,让后不同的那一位置1其余是0。然后学习了switch函数用法,我的理解是,它是对多个sase对象进行判断,找出符合的,然后执行后面的语句。
然后作业for改写,这个如果如视频中密码都是1很好写,如果是不同的数字,那么暂时还没想出来怎么写。后面改写开门什么的作业,手头没矩阵按键没办法实验。
截止到目前感觉运算符真的很重要,下列附图是自己百度的运算符总结 Screenshot_2023-10-21-23-39-52-91_c37d74246d9c81aa0bb824b57eaf7062.jpg
15.中断,外部中断,个人建议这章应该放到定时器前讲,因为定时器使用也是要触发中断的,为了方便理解应该把他们放到一起。还有那个中断图,如果定时器之前讲,对于理解EA,ET很有帮助。
这一章也是有收获的,明白了IE0是标志位会自动清零,这下就明白了定时器时TF0为什么写零。另外就是那个运算符+=第一次知道可以这么用。
终于学习到15节课了,实验箱已经收到,由于原来学习课程,我都是用STC8g跟着课程走的。现在实验箱了,于是把课程里的STC32g的程序序编译怎么也不通过,找了半天原因,最后发现STC.h里有STC32g.h但是,他是用双引号,我改成尖括号,编译才通过。不知道什么原因。
然后就是遇到一个很费解的问题,在模块化编程里.c文件里调用同名的.h文件,同时也调用stc.h。然后就是总是错误,找个一两个小时,最后发现先调用STC.h文件,在调用与.c同名的.h文件,就没问题了。
16.IO中断,课后练习存在问题,要求的是用p54口做中断,按下显示从0-9循环,并设置优先级。
但是如果矩阵按键按下,这个时候程序里有写beep响的话,就会和p54做中断产生冲突。效果就是按下任何按键都是按下了p54!
解决办法就是①不使用p54口做中断口②关闭矩阵按键,按下时的beep发声。
17.ADC采集,这章有不懂的地方,ADC轮询方式还可以理解,但是中断方式难道不用选择通道吗?还有ADC中断是自动触发的吗?因为前面学习定时器外部中断都是有触发条件的,故这里才会感到困惑。(中断方式通道选择已经找到了,讲课时中断里没写,就是默认的0通道,应该写上的)
18.这章代码写得感觉自己捋不顺,需要好好消化。难度加大了。捋顺了思路也挺简单的,这是时钟好简陋,不合理的地方也多。
回复 支持 反对

使用道具 举报 送花

0

主题

3

回帖

26

积分

新手上路

积分
26
发表于 2023-8-5 14:51:10 | 显示全部楼层
第二集学习心得:这个课程的开发板,提供了单片机常用的外设配套的电路,极大方便了我们对单片机内部资源的学习和使用,利用按键来学习GPIO的使用,利用一些EEPROM芯片来学习单片机内部的IIC外设如何使用,以及ADC和DAC等集成外设如何使用。这块板子已经基本上把MCU提供的外设利用起来了,板子设计的很不错。
回复 支持 反对

使用道具 举报 送花

2

主题

25

回帖

84

积分

注册会员

积分
84
发表于 2023-8-5 19:34:30 | 显示全部楼层
2023.8.5  星期六

第十三集:简单多任务处理中

打卡
回复 支持 反对

使用道具 举报 送花

2

主题

25

回帖

84

积分

注册会员

积分
84
发表于 2023-8-5 19:35:30 | 显示全部楼层
35269*** 发表于 2023-8-5 11:32
打卡学习之:
1.认识单片机,很多东西里面都有单片机,这个没啥说的,需要注意的就是要坚持学习。
2.软件安 ...

课程下面不是有资料压缩包么,你拉到视频最下面看看
回复 支持 反对

使用道具 举报 送花

2

主题

25

回帖

84

积分

注册会员

积分
84
发表于 2023-8-5 20:40:27 | 显示全部楼层
2023.8.5  星期六
简单多任务处理 下
打卡
回复 支持 反对

使用道具 举报 送花

2

主题

25

回帖

84

积分

注册会员

积分
84
发表于 2023-8-6 08:38:02 | 显示全部楼层
2023.8.6  星期天
简单多任务处理 终
打卡
回复 支持 反对

使用道具 举报 送花

2

主题

25

回帖

84

积分

注册会员

积分
84
发表于 2023-8-6 08:38:44 | 显示全部楼层
飞舞的*** 发表于 2023-8-6 08:38
2023.8.6  星期天
简单多任务处理 终
打卡

看这节课我觉得我缺的不是课程,而是实验箱
回复 支持 反对

使用道具 举报 送花

0

主题

3

回帖

26

积分

新手上路

积分
26
发表于 2023-8-6 08:52:42 | 显示全部楼层
第三课学习心得:这款32位单片机使用的keilC251,与之前的STC产品不同,软件安装一套流程,与之前的产品没有什么区别,都是傻瓜式安装。程序下载这款U提供了USB直接下载功能,不需要在电路上设计专门的USB转串口电路。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-12 18:40 , Processed in 0.246373 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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