阿杰爱学单片机 发表于 2024-8-29 17:39:09

本帖最后由 阿杰爱学单片机 于 2024-8-29 17:58 编辑

第十三集 简易多任务中

模块化编程之后代码看着舒服多了

取反和取非得不同之处:


在实验中终于理解了取反和取非得不同之处,下面是我实验时遇到的情况
在实验中我想按键点亮熄灭一个LED,于是写下了这一句 按键按下LED1 = !LED1;发现现象没有任何问题。
但当我想改变所有LED状态时却发现,这时候用上取非!就只能改变第一位灯的状态,让我非常疑。
突然想起之前提的问题!和~有啥区别,于是就改了一下把!改成了~现象成功了。

总结一下。
!是对一位进行取反操作
~是对每一位进行取反操作


bdata 的应用,被bdata修饰的变量可以对单独位操作(可位寻址),如下所示
XXX类型名 bdata AAA变量名
sbit XXX = AAA^0;            取第0位
sbit XXX = AAA^1;            取第1位

sbit XXX = AAA^2;            取第2位
sbit XXX = AAA^X;.........   取第X位

总结 变量名加尖括号加位数即可引用


模块化编程真好用














阿杰爱学单片机 发表于 2024-8-29 19:10:22

本帖最后由 阿杰爱学单片机 于 2024-8-29 19:12 编辑

第十三集 简易任务 中 终

感觉前面的还能听懂,这集突然上强度了,状态机,还有定时器标志位配合按键使用
感觉写的非常好,以前从来没看都过这种代码,按键数序号利用左移几位,用&运算判断
按下的案件号,还有或运算,这集感觉没啥感悟,只能说冲哥很强,之前写的代码感觉
都很随意,突然就感觉不一样了。现在也只能模仿下代码了,叫我写是完全写不出来

不过我还是有个疑问 就是那个#define定义的状态 当执行到啥时候就填写状态
感觉很奇怪,因为我之前都用的是在某个状态给某个变量置数,而冲哥直接返回状态名
,会不会有啥不妥

阿杰爱学单片机 发表于 2024-8-30 11:01:43

本帖最后由 阿杰爱学单片机 于 2024-8-30 13:29 编辑

第十四集 矩阵按键

1. 矩阵按键的优点
节省io口,好像也只有这个优点

2. 矩阵按键原理,通过获取行状态值和列状态值,最后合在一起利用switch
判断键码值

3. switch的用法
switch (判断值)                                                //判断键值
                {
                        case 被判断值1: 条件满足执行代码;break;满足其中一个条件break跳出判断
                        case 被判断值2: 条件满足执行代码;break;
                        case 被判断值3: 条件满足执行代码;break;
                        case 被判断值n: 条件满足执行代码;break;
                        default:条件 都不满足执行代码;break;      
                }
4. for的用法
关键词for
书写格式
for(变量;判断条件;变量+或-)
{
条件满足执行的代码
}


5. static静态变量加局部变量的状态判断
很巧妙说不出来,只会用

6. 模仿矩阵按键写的独立按键
不用死循环也不会一直返回键码值


7. 抄冲哥的矩阵按键代码


6. 冲哥代码写错了
我当时就觉得不对劲
把键码值清零了还咋判断那个按键按下了


下面是我焊接的矩阵按键
这次焊接没啥问题,就是感觉背面丑了点





阿杰爱学单片机 发表于 2024-8-30 13:44:20

本帖最后由 阿杰爱学单片机 于 2024-8-30 13:50 编辑

第十五集 外部中断

1. 外部中断的作用,当发生一些紧急事件,需要CPU及时响应,
当发生外部中断CPU暂停现在的工作去处理中断,然后再返回继续处理之前的事
叫做中断系统,CPU可按照中断优先级工作,每个中断可独立开启关闭中断

2.STC32G12k128只有5个外部中断,分别在36,35,30,29,27,引脚上

3.中断的初始化配置
TI X外部中断触发寄存器,写一下降沿触发,写0下降沿上升沿均可触发
IE X外部中断标志位寄存器,由硬件自动置一,和清除,保险起见初始化程序中先清零
EX X外部中断使能寄存器,写一使能,写0失能,开启和关闭中断
EA总中断寄存器,写一打开总中断
具体原理如下图
再提一点,如下图,边沿触发选择位只有外部中断0和1,才有,另外的中断是没有的
只能选择下降沿触发




代码书写




页: 1 2 3 4 [5]
查看完整版本: 杰哥的32G12K128学习记录【已送试验箱】