<p>1:周期性任务介绍。</p>
<pre><code>
这个基本就是前面一章节的延续,第七章就是定义一个时间去执行,这章的周期性就是指的在规定的时间内去执行相应的内容,相当于,定时的翻倍。
数组的使用
1:定义一个数组 包含类型,名字,长度,和数值如 uchar a={1,2,3,4};//长度(有多少个元素)是从0开始,即a,a,a,a
然后学习到了按键与串口打印分开执行,这个就是任务的调度,相互不干涩;
运用定时周期执行,延时判断,实现这个功能。
2:文件的创建(.c和.h)
1:新建文件并保存一个功能包含一个.c和.h文件
2:添加到工程
3:添加引用路径
3:结构体数组的周期性任务调度
这小节引入了一个新的概念,结构体,理解为具有相同特性的一类数组集合在一起。
这章节学习完,看一遍就理解感觉还是有点吃力,讲的内容比较的多,这个基本就是跟UCOS的任务调度差不多。
还得多看几遍视频。
</code></pre>
<p><img src="data/attachment/forum/202501/22/102451mgx2jgyhywwhs8wz.png" alt="图片.png" title="图片.png" /><br />
<img src="data/attachment/forum/202501/22/112454x6ezeo00t7oboroe.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202501/22/112910pr61eee1ngvnvn4f.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202501/22/113815zlayfx63xkfr59l9.png" alt="图片.png" title="图片.png" /></p>
<p>第八章 周期性调度任务</p>
<pre><code>
1:每隔一定的时间去执行一次周期性的任务
(1):数组 的使用和步骤
类型 名称【长度】={数值};
(2):赋值名称【索引】=数值;
2:文件的创建 .c和.h
(1):新建.c和.h,并保存一般一个功能或者一个外设就新建一个.c和.h
例如
#ifndef __AI8051U_H//大写
#define __AI8051U_H//大写,与上面名字一样
....
...
#endif
(2):添加到文件中
将创建好的.h文件包含在.C中
(3):添加引用路径。
3.结构体数组的周期性任务调度
结构体就是把具体相同特征的一组,定义为一个类,
这一小节听的不是很明白,还得多次观看
</code></pre>
<p><img src="data/attachment/forum/202502/10/160402lii1udss9bm9id27.png" alt="图片.png" title="图片.png" /><br />
<img src="data/attachment/forum/202502/10/174601iudcvhy9htw6lpwt.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/10/180110cvtj3fqg2d6zzbc0.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/10/180529t3cq1acaqclzqu3f.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/11/124500q39olk39uucqooru.png" alt="图片.png" title="图片.png" /></p>
<p>第九章数码管</p>
<p>一:数码管的静态显示与动态显示。</p>
<p>1.数码管其实就是一颗颗的LED灯,按照想要显示的内容焊接在相应的位置,</p>
<pre><code>2:数码管分为共阴极和共阳极,就是看它们的公共端是接高还是接低,都接高的就是共阳,只需要再在相应的段给低电平就可以亮,同理,公共端都接低就是共阴极,只需要在相应的端口给高就可以亮。
3.数码管的静态显示, 一次性送数码管的断码和位码。
4.数码管的动态显示,就是利用人的视觉50hz的时间停留,依次发送数码管的段码和位码。
二:LED和数码管的虚拟现实。
cod = 0x0f; //表示开启P0-P3 端口使能
cod = 0X01; //P0端口P0端口的第一个数码管亮
cod = 0X01; //P1 P1端口的第一个数码管亮
cod = ~T_NUM; //P2端口的数码管依次亮,流水灯效果
cod = 0X01; //P3 P3端口的第一个数码管亮
LED40_SendData( cod,5 );//有5个元素,就写5 这个函数在Stc32_stc8_usb.h中有声明这个函数
</code></pre>
<p><img src="data/attachment/forum/202502/26/123942ez4vv70ccisvcc75.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/28/141918prhgiw7piifntpqb.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/28/170450x58xbd2z5mjx9bf3.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/28/171449eftdq4qicqiz0wkz.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202502/28/173359z666v667t6rago0g.png" alt="图片.png" title="图片.png" /></p>
<p>第十章虚拟键盘LED和数码管</p>
<pre><code>1.虚拟现实-LED
1)准备好实验板,打开最新的STC下载软件,设置好参数就可以仿真了。
2) 按给的函数直接调用就可以得到我们想要的效果了。
2.虚拟数码管
这个跟虚拟LED差不多,方法都是一样,根据需要调用相应的函数即可。
3.虚拟键盘
就是读取得到的按键值。
然后把得到的健值,调用数码管显示函数,显示出来。
</code></pre>
<p><img src="data/attachment/forum/202503/03/162613p6pxq3gqscuc4ycy.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/03/162945dleb70jp0j7z313d.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/03/175428kfifhet6jp6j3jif.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/04/120510i77e7m7gev3gazpa.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/04/142908b6cugqq6hufqg3sx.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/04/144200q05uvd8c08o3fv99.png" alt="图片.png" title="图片.png" /></p>
<p>第十一章矩阵按键</p>
<p>1.矩阵按键的原理 相比较独立按键,矩阵按键是可以复用的,可以用有限IO口实现更多的按键,缺点就是矩阵按键的检测比独立按键的慢。矩阵按键先一列一列的扫描,然后在一行行的扫描,</p>
<p>2.实现过程 第一步,先将P0.0-P0.3口输出低电平,p0.6和P0.7输出高电平,如果有按键按下,按键的那一行就变成低电平。 第二步,P0.0-P0.3口输出高电平,p0.6和P0.7输出低电平,如果有按键按下,按键的那一列就变成低电平。第三步,行列组合下就可以判断出是哪个按键。</p>
<pre><code>
</code></pre>
<pre><code>第二步
</code></pre>
<p><img src="data/attachment/forum/202503/12/142340k776lz4h4snj9zer.png" alt="图片.png" title="图片.png" /><br />
<img src="data/attachment/forum/202503/12/143252upp3lnpl63a3qhog.png" alt="图片.png" title="图片.png" /></p>
<p>第十二章 单片机的复位系统</p>
<p>1。Ai8051u系列单片机的复位分为硬件复位和软件复位两种</p>
<p>1)上电复位,开机的时候就会复位一次</p>
<p>2)低压复位 根据实际需要勾选要不要低压复位</p>
<p>3)复位脚复位(低电平复位)复位脚通过按键接地,按下按键就会复位 下载程序的时候不勾选“复位脚作为I/O”</p>
<p>4) 看门狗复位 在mian函数的开头设置WDT_CONTR=0X24 ;//(0.5S执行一次) 开启看门狗,0.5秒(24mhz晶振下)钟喂狗一次,在主循环中设置WDT_CONTR=0x34到了时间清除看门狗,否则系统复位。验证手段:在WDT_CONTR=0x34的前面加一个按键判断 if ( P33!=0) WDT_CONTR=0x34;//如果P33按键按下超过0.5S,看门狗就复位。,这个也可以换成其他的按键变成复位按键。验证完起作用了,这个按键判断要去掉,因为看门狗不应该受任何约束。</p>
<p>5)软件复位 这个就是程序设置</p>
<pre><code>如果设置 AIP_CONTR=0X60;//进入下载模式,如果设置IAP_CONTR=0X20;//从头开始执行用户程序
</code></pre>
<p><img src="data/attachment/forum/202503/12/160607nkriuf3999vi918n.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/12/172425wtwqareowls29r23.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/12/172914x5tbtd5gg0g56g4l.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/12/173230r6sh4i664iz2fozi.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/12/174838zsso9899lqntmlss.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/12/175144gelxeu9hpxlbihhe.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/13/100109zowdl0vxlavib54v.png" alt="图片.png" title="图片.png" /></p>
<p>第十三章外部中断</p>
<p>1:中断顾名思义就是被打断 程序在执行的过程中,突然被突发事件给打断,等这个打断是事情过后,在接着执行之前的程序。</p>
<p>2:中断优先级高的可以打断优先级低的,处理完后再回来处理优先级低的。</p>
<p>3)外部中断单片机的引脚,由于外部原因导致引脚的电平变化(由高到低或者由低到高),通过捕获这个变化,单片机的内容程序就会被打断,转而去执行中断函数,处理完后再接着执行之前的程序。</p>
<p><img src="data/attachment/forum/202503/13/113743pc69l3dt6nqocuk5.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/13/114038ti9cbccd0ay00i5d.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/13/114416yy44xzkfty3ksmym.png" alt="图片.png" title="图片.png" /></p>
<p><img src="data/attachment/forum/202503/13/114815ubfuveez5flqqlwm.png" alt="图片.png" title="图片.png" /></p>
页:
1
[2]