350950537 发表于 2024-12-24 15:26:23

视频教学:《32位8051单片机原理及应用》学习心得,实验箱已收到

<p>第一集学习心得:</p>
<p>51单片机好多年前用过,后来没用到就丢掉了,因为工作的关系,突然发现其实很多场景是可以用单片机来代替的,正好了解到STC51系列的做的不错,拿来入门练习刚好,希望自己能坚持下去<img alt="deyi" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/deyi.gif" title="deyi" /></p>
<p>首先根据已有的PLC知识,了解到PLC也是基于单片机定制的控制器,国产一部分PLC也有基于51系列单片机来设计的案例。其实的核心还是单片机,只不过PLC根据实际应用做了深度的优化,这种优化会更容易的符合工业流程的设计开发及维护。</p>
<p>单片机和PLC有很多共通点的,比如编程语言,寄存器的知识。以及内部元件的原理。我想这或许会让我学习的容易一些。</p>

350950537 发表于 2024-12-24 16:57:53

<p>第二集学习心得:</p>
<p>了解的单片机学习板的构造:</p>
<p><img src="data/attachment/forum/202412/24/155609mygrwcd4wv0wwdvg.png" alt="单片机2.PNG" title="单片机2.PNG" /></p>
<p>对比现有的PLC来说,就是一个集成化很高的集成系统,可以更好的用来学习单片机的各种功能,也可以配合外部原件来配合使用。</p>
<p>相比于现有的PLC系统来说,这个学习板集成了大部分PLC扩展模块的功能,一些特殊模块的功能需要外部的配置。</p>
<p>232接口:实际应用中可用作通讯或者数值的传送。</p>
<p>LCD接口:可以用来扩展显示。</p>
<p>独立按键和矩阵键盘:用来模拟数字量的输入。</p>
<p>ADC和DAC用来模拟模拟量的输入输出。</p>
<p>PWM可以用来模拟脉冲的应用,比如步进电机的驱动。</p>
<p>NTC用来模拟温度输入。</p>
<p>LED可以模拟数字量输出。</p>
<p>数码管可以用来显示数字量及模拟量。</p>
<p>蜂鸣可以做一个报警的提示。</p>
<p>其他的外设需要配合外部设备。</p>
<p>总体来说,这是个非常全面的学习板。</p>

350950537 发表于 2024-12-24 17:59:56

<p>第三集学习心得:</p>
<p>本节介绍了软件及资料的准备。</p>
<p>STC_ISP 软件的介绍,这是个很直观的“全能”软件,内置资料下载,例程下载,驱动下载。可以说内置的功能很适合小白的学习使用。当然下载之前需要做一些驱动下载,还有添加头文件到Kile中。</p>
<p>Kile软件的下载,这个走了点弯路,好在最后解决了。</p>
<p>PDF软件,这个我相信大多数人都知道,这视频里面讲的很详细,可以说对小白来说非常友好了。</p>
<p>手册里面涉及来好多专业领域的概念,比如EEPROM,寄存器,输出方式等。</p>
<p>下载程序分usb和串口下载,这个如果对51单片机有了解的话会知道串口下载,个人感觉usb下载和串口下载功能上类似,理解起来更容易。USB使用起来更方便。配合试验箱的话usb下载需要配合按键来实现下载的功能。串口的话需要重新上电来下载,有共同之处。</p>
<p>下载程序的时候,根据实际的芯片选择对应的选项,芯片设置不对的话会出错误。然后根据程序的设计需求,需要匹配系统时钟频率。</p>
<p>官方下载的例程包含了最基础,最经典的应用,其实作为项目来说,可以直接拿来参考。</p>
<p>软件的使用及编程需要一定的英语基础,如果新手对英语不是很了解的话有一定的难度。不过都是简单的英语,坚持下来可以学好。</p>

350950537 发表于 2024-12-25 15:17:38

<p>第四集学习心得:</p>
<p>单片机的IO可以根据程序来定义input和output,也可以根据byte来控制一组输入输出,可以自定义输出1或者0。这一点非常的灵活,当然对应的程序可能复杂一点。</p>
<p>用kile软件来做项目,新手的话强烈建议根据教材来一步一步操作,有可能缺少某一布会造成不必要的麻烦。</p>
<p>编译成HEX文件后在用STC_ISP软件下载到单片机。</p>
<p>实际项目的开头需要定义目标寄存器(你要操作的寄存器),这个要严格根据手册及实际项目来,如果定义错误则实际应用会有问题。这个功能相对比PLC来说复杂一些,但这也正是单片机比较灵活的体现。</p>
<p>单片机编程需要C语言编程技巧或者汇编编程技巧,教程是根据C语言来做的,这里需要C语言的知识。</p>
<p>C语言编程需要注意标准格式,缩进,注释,标准语,大小写等。</p>
<p>根据视频教程来点亮一个LED,根据试验箱的布线,定义P4.0 和P6.0的输出低电平来点亮LED。</p>
<p>USB模式不停电下载程序:这个可以更方便的下载程序,非常实用于实际项目体验,需要注意的是视频教程与最新版本的库文件有不同之处,调用的头文件名称已经更新了,需要根据实际的库文件来定义。然后参照例程来设置STC_ISP软件,然后配合编程来实现功能。就可以在编译完成后直接自动下载。非常实用与现场项目的调试。</p>
<p>官方库里面的头文件stg32g.h 已经包含I/O口定义,可以在项目开头直接调用,然后主程序就不需要再次定义了。</p>
<p>这里出现一个问题,在我自己创建的项目目录下添加stc_usb_hid_32.LIB之后编译,会出现错误。</p>
<p>而如果直接复制例程里的整个76号项目文件之后就会编译正常,检查COMM文件/内容代码/工程设置都是相同的,在这里不明所以,有没有解答这个问题的大神?</p>
<p><img src="data/attachment/forum/202412/25/150241qnte3v90c0dsvx90.png" alt="image.png" title="image.png" /></p>

350950537 发表于 2024-12-25 16:11:04

<p>第五集学习心得:</p>
<p>课程开始,根据视频来学习,第一步就出现问题了,printf输出的时候,为什么编译会出错?查百度得知需要在头文件定义“stdio.h”然后再编译,就会出出现printf错误了。</p>
<p>printf输出定义:</p>
<p><img src="data/attachment/forum/202412/25/155843nnj5588drzjzdw87.png" alt="image.png" title="image.png" /><br />
<img src="data/attachment/forum/202412/25/155930gn50bu53256ae0o6.png" alt="image.png" title="image.png" /></p>
<p>还有很对C语言的指令,需要巩固下C语言的知识了。</p>
<p>很重要的知识:2进制,10进制,16进制数的转换。</p>
<p>这是最基本的编程知识,任何编程语言/技巧,不只是单片机,任何与机器语言打交道的都必须需要了解的。</p>
<p>C语言运算符:没技巧,背过!</p>
<p><img src="data/attachment/forum/202412/25/161248gmxt1gmmccj0xzt9.png" alt="image.png" title="image.png" /></p>
<p>数据结构:记住!如果有编程经验的话理解起来很简单。</p>
<p><img src="data/attachment/forum/202412/25/161444nbrrgvofj9ff9gbb.png" alt="image.png" title="image.png" /></p>

350950537 发表于 2024-12-26 10:01:50

<p>第六集学习心得:</p>
<p>根据系统时钟频率来实现LED的闪烁:还是需要C语言的知识,while / do-while的使用及练习。</p>
<p><img src="data/attachment/forum/202412/26/092100oqqfqftidddv2q2q.png" alt="image.png" title="image.png" /></p>
<p>基础的delay定义,会影响系统循环时间。后期课程会解决这个问题。</p>
<p>编写注意格式,大小写!!!编译器报错了要仔细查看原因!!!</p>
<p>--a: 先计算-- 然后传送a的值。</p>
<p>a--:传送a的值后,再计算--。</p>
<p>函数的使用:</p>
<p>void:无返回值。</p>
<p>函数定义可以写在程序的最后,函数声明(void)写在前面,调用(直接写函数名称)写在需要调用的程序位置。</p>
<p>模块化编程:xxx.h文件的引用,需要在软件设置根据存储位置更改引用路径<img src="https://www.stcaimcu.com/data/attachment/forum/202412/26/095339wawwqojhpo15aend.png" alt="image.png" title="image.png" />。</p>
<p>根据例程,声明写在XXX.h文件<br />
<img src="data/attachment/forum/202412/26/100011c33ekt3ii5m33e5i.png" alt="image.png" title="image.png" /><br />
,</p>
<p>函数定义下载XXX.c文件<br />
<img src="data/attachment/forum/202412/26/095938m7l4mmn48ulol8uf.png" alt="image.png" title="image.png" /><br />
,然后调用写在main.文件。</p>
<p>这样可以使主程序清晰易懂。</p>

350950537 发表于 2024-12-26 18:12:05

<p>第七集学习心得:</p>
<p>按键的应用:I/O 中的输入,与PLC中的数字量输入是一样的。介绍按钮的定义。</p>
<p>按下按键实现功能。</p>
<p>学习中又讲解的C语言中取反的指令!</p>
<p>使用while指令来锁存输入的指令。通过调整while指令的位置来实现不同的按键功能。</p>
<p>重点介绍了移位的数据处理,移位补位及循环。</p>
<p>数组的使用:这一主题可能对新手来说理解起来有点难度,如果有相关的经验的话理解起来好一些。</p>
<p>例程使用数组来实现LED灯循环左移。</p>
<p><img src="data/attachment/forum/202412/26/181115smla7bllau2ezlvk.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/26/180820k8jqchxlqzh87zjj.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/26/181159wp89tapt9xoudhc9.png" alt="image.png" title="image.png" /></p>

350950537 发表于 2024-12-27 10:36:08

<p>第八集学习心得:</p>
<p>蜂鸣器的应用,模拟电磁炉的按键应用来编写程序。根据生活实物来跟进教程,很容易理解。</p>
<p>看似简单的应用,实际编写的时候需要考虑各种情况,各种细节。这相比较于PLC复杂一些,但是更能凸显出单片机的灵活程度。</p>
<p>巩固C语言知识~,用于二进制位的取反,如11101000,取反之后就就是00010111.</p>
<p><img src="data/attachment/forum/202412/27/103258gkuiv0uqq66098c6.png" alt="image.png" title="image.png" /></p>
<p>实际应用与:单片机默认输出低电平,根据实际应用,如果需要输出高电平,则可以取反对应的位来实现组取反。</p>
<p>根据电磁炉的实际按键原理,相应的调整按键更能以达到我们的要求。</p>
<p>需要灵活应用前面的课程的知识,相互嵌套,相互配合。</p>
<p>跟着视频现场编程,可以更好的参与实际编程的过程,以及编程中常碰到的错误。</p>
<p>只看视频的话对单片机的编程有了解,实际功能实现的话需要配合硬件来实验监控。等待试验箱拿到再来复习一遍这个案例。</p>

350950537 发表于 2024-12-27 14:01:45

<p>第九集学习心得:</p>
<p>数码管:最常见的七段数码管,一看到这个标题就想到了,这就和第三集刚开始时候为什么点亮一个LED要开启P40和P60两个端口的原因了。是根据实际试验箱的线路设计来的。</p>
<p>七段数码管是生活中很常见的东西了,所以以这个来做案例可以直接理解生活中的问题。</p>
<p><img src="data/attachment/forum/202412/27/130819qy398wuu2yqu1yzq.png" alt="image.png" title="image.png" /></p>
<p>其实这一节如果理解了前面课程所讲的内容以及上图的定义就比较好理解了。</p>

350950537 发表于 2024-12-27 15:08:43

<p>第十集学习心得:</p>
<p>多段位数码管的显示其实就是上一节内容的升级,上一节控制一个数码管,这一节控制多节数码管。</p>
<p>根据上一节代码的叠加组合来实现。</p>
<p>还有复习了C语言的又一个%,表示取余数。</p>
<p>原理上每一段的数码管显示都不是同步的,只不过视觉感应起来是同时显示。在上一节内容的基础上参考下图的定义。</p>
<p><img src="data/attachment/forum/202412/27/142312l1251165t18d2jdi.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/27/142419sxauxz1lybg9utbu.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/27/142435mbo21nbvozo3neow.png" alt="image.png" title="image.png" /></p>
<p>如果需要显示不规则数字,则首先需要在数组定义要显示的内容:</p>
<p><img src="data/attachment/forum/202412/27/143137jijcoiqx6fqwoixo.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/27/143155zdndleed6vlvut0d.png" alt="image.png" title="image.png" /></p>
<p>数码管的组合显示对新手来说可能比较复杂,理解起来可能多少有点问题,要多练,多想,多学习,慢慢消化,理解它的原理,再去做它。</p>
页: [1] 2
查看完整版本: 视频教学:《32位8051单片机原理及应用》学习心得,实验箱已收到