350950537 发表于 2024-12-27 16:15:02

<p>第十一集学习心得:</p>
<p>定时器中断是一个非常重要的内容,无论什么类型的编程,都需要这个概念,所以理解并熟悉定时器及中断是非常基础和非常重要的!定时器的使用相对比于PLC而言稍微复杂一些,但是理解其工作原理之后就简单多了。</p>
<p>定时器使用起来比较PLC而言稍微有点复杂。</p>
<p>定时器的时间计算:</p>
<p><img src="data/attachment/forum/202412/27/153331gccnltj0pucizl03.png" alt="image.png" title="image.png" /></p>
<p>24M时钟下1ms:</p>
<pre><code>TL0 = 0x30;// lower byte //1ms timer based on 24M clock
TH0 = 0xf8;// higher byte
</code></pre>
<p>定时器如果要配合中断实现的,需要根据手册的中断号来执行。</p>
<p><img src="data/attachment/forum/202412/27/153457pg40uug6r3u4g3jo.png" alt="image.png" title="image.png" /></p>
<p>首先定义定时器, 然后在中断里面定义要执行的内容。</p>
<p><img src="data/attachment/forum/202412/27/153622r7iywwkmmv7ywoy9.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/27/153818w4tirjfi8vyvti34.png" alt="image.png" title="image.png" /></p>
<p>STC_ISP软件可以根方便的生成定时器的使用:</p>
<p><img src="data/attachment/forum/202412/27/154625pbmsubu0k1jmkfku.png" alt="image.png" title="image.png" /></p>

350950537 发表于 2024-12-27 17:44:45

<p>第十二集学习心得:</p>
<p>计数器:计时器和计数器是编程里面最常用的基本语句,通过学习计时器与计数器可以更好的理解数据文件的结构。</p>
<p>设置计数器模式0x40,中断号码3</p>
<p><img src="data/attachment/forum/202412/27/172037n12p2aagpvp3z5f3.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/27/172114ij6nne2lcsl8yj58.png" alt="image.png" title="image.png" /></p>
<p>STC_ISP软件可以设置I/O的配置。</p>
<p><img src="data/attachment/forum/202412/27/172244fn3nc8xnb8xxwe3x.png" alt="image.png" title="image.png" /></p>
<p>设置之后可以很直接复制代码区Kile软件。</p>
<p>参考例程直流电机测速。原理就是测量电机旋转脉冲,做过PLC电机测速的应该都知道。</p>
<p>声明参考前面的</p>
<p><img src="data/attachment/forum/202412/27/174249xup8z0k55kpsr8xd.png" alt="image.png" title="image.png" /></p>
<p>虽然是基础的语句,但是会更好的了解数据结构,而且生活中的小应用完全可以用这些简单的语句相互配合来实现。非常的实用。</p>

350950537 发表于 2024-12-29 11:40:02

<p>第十三集学习心得:</p>
<p>根据前面课程的基础知识,结合起来实现具体的。</p>
<p>规范化程序的编写,子程序的调用,函数的定义等等。</p>
<p>Kile左侧项目切换 模板标签,在里面可以新建常用的标签/注释/功能。编程时可以快速地引用。</p>
<p>函数前可定义extern,用来表示此函数/变量是在别处定义的,在此处引用。</p>
<p>函数前的static,表示静态变量,只有第一次使用才可以赋值。</p>
<p>bdata的使用<br />
<img src="data/attachment/forum/202412/29/111143cc8aewikv7agsetf.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/29/111205c32r7qxuerr66h7d.png" alt="image.png" title="image.png" /></p>
<p>通过对函数的定义可以在实际编程中快速的编程及理解。</p>
<p><img src="data/attachment/forum/202412/29/112524hofvgviibs4xk82o.png" alt="image.png" title="image.png" /></p>
<p>这里其实最好根据试验箱来实际编程与测试,只做编程不实验的话不能很好的调试。</p>
<p>经典案例,根据单片机的性能来定义按键的功能,这个可以用作任何编程过程,拿过来直接用。</p>
<p><img src="data/attachment/forum/202412/29/112851a6kjqkzjw3wuujju.png" alt="image.png" title="image.png" /></p>
<p>按键的经典应用:长按,短按及消除。</p>
<p><img src="data/attachment/forum/202412/29/113522iuspou62oi38l163.png" alt="image.png" title="image.png" /></p>
<p>定时器与按键的配合:</p>
<p><img src="data/attachment/forum/202412/29/113737x8r00c2nh1r9cnk7.png" alt="image.png" title="image.png" /></p>
<p>其实这一节的内容就是在以前的视频的基础上的综合演练,结合单片机的性能,实际的体验,来实现的一些简单的功能,看似简单的功能在程序里面需要考虑好多的细节。</p>
<p>教程讲解了好多基本的编程规范,这个可以在以后实际的项目中用作基本。</p>
<p>根据视频教程可以一步一步来,如果熟悉的话可以根据自己的想法做更灵活的编程。</p>

350950537 发表于 2024-12-29 19:54:45

<p>第十四集学习心得:</p>
<p>通过矩阵来实现使用少量的输入点表示多个按钮的检测:其实也是用的二进制代码基础知识。</p>
<p>如果之前有类似经验的话,理解起来就简单多了。只不过PLC与单片机的表示方法不太一样。</p>
<p>使用不同的I/O输入出口的不同的高低电平来检测实际按钮的输入。</p>
<p><img src="data/attachment/forum/202412/29/192447uzxnlhzhk8hxq6lh.png" alt="image.png" title="image.png" /></p>
<p>实际使用可灵活编程,例程里面用的异或指令来处理。</p>
<p>使用异或指令:<br />
<img src="data/attachment/forum/202412/29/115725dv5yyvwvhyoyozpn.png" alt="image.png" title="image.png" /></p>
<p>switch case指令的使用,switch判断条件,然后不同结果的条件对应的条件,如果执行完成就运行break来停止后面的判断,最后的default表示上述条件都没有满足。根据例程的思路结果就是这样:</p>
<p><img src="data/attachment/forum/202412/29/193401b377c5h06pp535u5.png" alt="image.png" title="image.png" /></p>
<p>后面的应用练习密码锁的设计编程。</p>
<p>注意变量定义的时候要定义数码管的斜杠显示。0xbf。定义在程序开头</p>
<p><img src="data/attachment/forum/202412/29/194953nlhjhvrijhxvshyr.png" alt="image.png" title="image.png" /></p>
<p>&amp;&amp; 相当于and的功能,多个条件串联的情况下可以使用&amp;&amp;来and值。</p>
<p><img src="data/attachment/forum/202412/29/194744ku93thz97oo3e1mh.png" alt="image.png" title="image.png" /></p>
<p>实际编程一定要仔细,然后配合试验箱具体测试。单编程软件的话很难发现其中的问题。</p>

350950537 发表于 2024-12-29 20:43:49

<p>第十五集学习心得:</p>
<p>中断系统的解释:如果熟悉PLC编程的同学来说不难理解,单片机的中断和PLC的中断定义是一样的,用法根据不同的编程软件用法不太一样,单片机的中断方法也不一样,前面的课程做计时器的时候用过时间中断,是最简单的中断使用方法,这个章节是系统的介绍并演示了中断的用法。</p>
<p>STC单片机的中断优先级需要根据手册的定义来配合使用,INT中断表示外部中断,而且单片机的外部中断需要对应硬件引脚,有的中断触发需要根据信号的上升沿和下降沿来使用:</p>
<p><img src="data/attachment/forum/202412/29/200015vuv4dcz7tyy1cy7k.png" alt="image.png" title="image.png" /></p>
<p>IN0 中断例程:</p>
<p><img src="data/attachment/forum/202412/29/201901exetppmsxpxmmpk7.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/29/201612gt0qs7hamaasryej.png" alt="image.png" title="image.png" /></p>
<p>main:</p>
<p><img src="data/attachment/forum/202412/29/201647wnmfekcpzltheblm.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/29/201707pl5n9nu1egpj1kno.png" alt="image.png" title="image.png" /></p>
<p>上面就是中断的基本用法,基本需求就是外部继续处理的信号操作,即时传送到单片机中并立即处理。熟悉用法之后有一些功能可以合理的用中断来处理,可以让指定的程序及时响应。如果不用中断的话,需要等到程序正好运行到对应的程序之后才能处理,在一些必要的场合非常有意义。</p>

350950537 发表于 2025-1-2 13:36:27

<p><img src="data/attachment/forum/202501/02/133538jjyzs2j0fvi237y9.png" alt="image.png" title="image.png" /></p>
<p>试验箱已收到,简单的下了一个程序测试了一下,先把前几天的视频教程复习一下</p>

350950537 发表于 2025-1-3 17:03:41

<p>闲着没事,用最简单的STC8G单片机做了一个汽车启停关闭器,制作的过程忘了拍照片了,就有一个成品的照片。纯手动打造,很难看,见谅</p>
<p><img src="https://www.stcaimcu.com/data/attachment/forum/202501/03/165334o0y23gk2dyjgasvf.png" alt="image.png" title="image.png" /></p>
<p>原理很简单,上电延时20秒后开输出,然后1秒后关闭,然后单片机停止。</p>
<p>12V取点通过7805输出5V驱动单片机。</p>
<p>用的P3.3推免输出带动光耦,来模拟按下按钮,同时隔离。</p>
<p>如果原车按钮负载不足够开启光耦二极管的话,可以用三极管带动继电器来驱动。</p>
<p>这里有一个疑问,我用STC_ISP软件定义的一个10秒的延时。为什么编译报错啊,谁知道问题在哪。</p>
<p><img src="data/attachment/forum/202501/03/170058o8j25aa2c5chj0cb.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202501/03/170323xtoo7dauvrnrurzk.png" alt="image.png" title="image.png" /></p>
页: 1 [2]
查看完整版本: 视频教学:《32位8051单片机原理及应用》学习心得,实验箱已收到