应用场景:配合编码器。光栅等来计数并输出结果
做实验时需要打开io口内部的上拉电阻,需要注意,另外编译器中0xFD的问题也需要关注
第十三讲: 多任务处理
老师在本节开始之前先说了怎么快捷插入函数代码。模块化编程规范,
EXTERN修饰符可以在一个.c 文件中声明EXTERN变量,然后在其他.c 文件中通过#include包含对应的.h 文件来引用该变量。
位寻址变量BDATA,可以单独控制变量的每一位,方便对单个引脚进行操作。
另外就是宏定义的使用,这点在移植代码的时候尤其尤其的方便。比如说把引脚宏定义,换板子时候只需更改宏定义就可以了{:victory:}
引脚定义
使用#define对引脚进行定义,便于修改和移植。
函数声明与定义
在.h 文件中进行函数声明,在.c 文件中进行函数定义,并添加函数头注释。{:dizzy:}
利用定时器中断刷新引脚实现数码管和LED同时控制
手上没板子,只能跟着冲哥在编译器上先敲了
第十四集: 矩阵按键
与独立按键对比
独立按键:一个按键占用一个 I/O 口。
矩阵按键:将按键排成行列矩阵形式,可减少 I/O 口占用。
矩阵按键可以以较少的 I/O 口控制较多的按键。
比如使用4X4一共8个I/O可以控制16个按键
按键检测原理
先将部分引脚输出低电平,部分输出高电平。
若有按键按下,高电平引脚会被拉低。
通过改变输出电平的引脚,结合行和列的状态,可判断按下的按键。
功能函数
定义矩阵按键读取函数,返回按下按键的序号。
函数内通过三步操作判断按键状态:先输出特定电平,延时等待,读取引脚状态并计算。
第十五集 外部中断
当 CPU 处理某件事时,外界发生紧急事件,要求 CPU 暂停当前工作去处理紧急事件,处理完再回到中断处继续执行。
例如定时器中断,在主函数运行时产生中断信号,先执行中断函数功能,再返回主函数。
中断系统
实现中断功能的部件称为中断系统。
CPU 总是响应优先级别最高的中断请求。
正在处理低优先级中断时,若有更高优先级中断发生,会暂停低优先级中断去处理高优先级中断。
每个中断源可用软件控制开中断或关中断,中断优先级可软件设置,但部分中断优先级不可设置。
有外部中断、定时器中断、串口中断、ADC中断等等
TI X外部中断触发寄存器,写一下降沿触发,写0下降沿上升沿均可触发
IE X外部中断标志位寄存器,由硬件自动置一,和清除,保险起见初始化程序中先清零
EX X外部中断使能寄存器,写一使能,写0失能,开启和关闭中断
EA总中断寄存器,写一打开总中断
页:
1
[2]