《8051U深度入门到32位51大型实战教学视频》——学习心得
主要内容包括1.什么是GPIO,2.按键输入检测,3.课后小练1.什么是GPIO?
通用输出/输出端口(GPIO)可以输出高低电平或者读入引脚状态(高低电平)
高电平指接近电源正极电压(VCC接入电压)也称逻辑“1”,低电平指接近电源负极电压(GND电压)也称逻辑“0”,由此可见输出高低电平其实就是指GPIO输出VCC(高)/GND(低)电压。具体可输出的最高/低电压根据芯片的数据手册查看VCC可以接受的最高电压(一定条件)
四种工作模式:准双向模式(00)、推挽模式(01)、高阻输入(10)和开漏模式(11),具体寄存器配置方法参照附件图片。
准双向模式:传统端口、弱上拉,电流较弱;推挽模式:强上拉,电流较强;高阻输入:不能流入和流出;开漏模式:设置高电平为高阻输入,上拉简单等同准双向口
2.按键输入检测
实现原理:程序直接读取按键的IO电平,一般使用“==”即可
判断按键是否按下逻辑实现部分(按下亮):
if(P32 == 0){ //P32 ==1 则松开亮
P00 = 0;
}else{
P00 = 1;}
按一下亮,按一下灭则在IF函数外定义一个状态变量,在IF函数内将状态变量进行取反操作并赋值给P00。
适当增加延时以消除按键抖动(可用ISP生成延时函数)。WTST = 0;//设置程序指令延时参数EAXFR = 1;//扩展寄存器(XFR)访问使能CKCON = 0;//提高访问XRAM速度。
第七集
1.定时器作用:
(1)用于计时系统,可实现软件计时,或者使程序每个一固定时间完成一项操作;
(2)代替长时间的Delay,提高程序的运行效率和处理速度(可以打断主循环);
在数据手册中找到定时器的相关数据,在ISP中根据定时器数据生成定时函数。
中断函数的调用要在EA = 1;开启总中断之后。
2.定时器的应用(16位自动重装载模式)
计数器从0-65535,超过则溢出计数为1。可改变预分频寄存器改变计数时间。通过对TH0(8位)和TL0(8位)的写入(置位)实现16位重装载定时(如果使能ET0进入中断。)
计算公式参照数据手册或者使用ISP直接生成。
3.函数的定义、声明、调用
返回值类型 函数名(入口参数)
{
//函数体
//函数执行的代码
return 返回值
}
函数名不可与关键字同名,取名应当能够描述函数的功能 L_chang 发表于 2025-3-12 15:02
第七集
1.定时器作用:
第八集
1.第七集问题整理
(1)输入字母区分大小写
(2)输入不要遗漏符号
(3)注意代码块符号对齐
2.周期性任务
通过触发定时器中断触发计数自增实现多任务,避免使用delay卡住CPU进程造成计数不准,也保障了其他功能正常进行。
数组使用:
(1)定义
类型 名称【长度】 = {数值};
(2)使用
名称 复制:名称【索引】 = 数值
3.文件的创建(.c、.h):一般一个.c、.h执行一个外设或者一个任务或者功能
(1)硬件初始化-config.c
(2)新建文件并保存
(3)添加到工程
(4)添加引用路径
格式:xxx.h
#ifndef __XXX_H
#define __XXX_H
调用头文件
函数声明
#endif
xxx.c
#include “xxx.h”
函数定义 第九集
1.数码管介绍
也称LED数码管,由多个发光二极管封装组成,颜色、外形、样式多样。由根据所有LED的引脚(a.b.c.d.e.f.g.dp)连接由共阳极(VCC)和共阴级(GND)两种。
“AS”代表单色,“BS”代表双色。使用移位寄存器驱动,如:74HC595。
2.数码管使用
(1)可以使用ISP中的数码管段码生成工具快速生成数码管数组。
(2)程序延时不能太短,一个循环的时间不能大于20ms
(3)选择位-输出段-延时-选择位-输出段-延时....... 第十集
使用了虚拟显示LED和数码管,再在实际开发板上实现实际效果。 第十一集
一个按键对应一个端口称为独立按键。
矩阵按键:端口默认高电平,实时读取到引脚的电平为低表示按下,通过行列判断结果组合即可判断出哪个按键按下 第十二集
确保系统处于确定状态:
复位擦欧总可以确保单片机在开始工作时处于已知的状态,使其能够正确初始化各个寄存器和外设。
避免不确定行为:
没有进行复位时,内部控制寄存器的内容可能是随机的,这可能导致定时器溢出、中断异常、外设误操作等不确定行为
初始化系统:
复位操作可以进行系统的初始化,包括清除寄存器、设置默认值、配置时钟等,为系统正常运行做好准备
保证程序正常开始执行:
复位确保程序从正确的地址开始执行,避免跳转到未知的地址和指令
硬件复位:
1.上电复位(1.7-1.9V)
将P3.2和P3.3上拉5.1K可快速复位,设置低压复位可保护电路。
2.复位脚复位
3.看门狗复位
系统运行之后启动看门狗计数器后开始自动计数,运动到一定时间后若不清理看门狗(喂狗)则会计数溢出引起看门狗中断。
页:
[1]