计算机与信息类创新实践
实践报告
开 课 学 院
计算机与信息学院
专 业 班 级
电子信息工程 21 级-2 班
学 生 姓 名 及 学 号
指 导 教 师
张旭东、杨兴明、金兢、齐美彬
2023 年 04 月 23 日
实验一 以多种方式点亮 LED 灯
1. 实验目的
(1) 熟悉单片机的输入输出功能:通过实验,学习如何将按键作为输入,将 LED
灯作为输出,掌握单片机对外部信号的输入输出流程。
(2) 熟悉单片机的控制能力:理解并掌握 led 灯的点亮原理;理解并掌握单片机 C
语言编程方法;理解并掌握单片机位操作与端口操作的方法;
(3) 培养创新思维:通过实验,鼓励学生自己设计多种点亮 LED 灯的方式,培养
学生的创新思维和实践能力。
(4) 深入理解程序设计:通过实验,学生需要编写程序实现按键控制 LED 灯的不
同亮灭方式,加深对程序设计的理解和掌握。
2. 基本原理
(1) 本实验要求通过判断矩阵键盘的按键,实现 led 灯的不同闪烁状态。其中,
LED 灯的亮与灭与矩阵键盘的扫描都通过 51 单片机控制 GPIO 口的输出来实
现,而为了提高按键扫描与按键处理的灵敏性,本实验还用到了定时器中
断,使单片机每隔 10ms 便进行一次按键扫描,大大提高了按键处理的灵敏
度。因此,本实验涉及到的原理部分主要有:GPIO 端口配置、led 灯定时闪
烁的基本原理、矩阵键盘扫描原理、定时器中断的基本原理。
(2) GPIO 端口配置:GPIO 端口配置部分指的是使能 GPIO 时钟、设置 GPIO 翻转
速度与设置 GPIO 输入或输出模式,如下图所示为 GPIO 内部原理图
图 1.1 GPIO 内部原理图
当 GPIO 设置为推挽输出模式时,GPIO 信号从图 1 下方的 CMOS 管引出,随
后输出至外部;当 GPIO 设置为开漏输出时,便具有了线与逻辑,线与逻辑指的
是多个输出信号相连接,来实现数字电路中的“与”功能。本实验为了点亮 LED
灯,需要将 GPIO 端口设置为推挽输出模式。推挽输出模式的 GPIO 信号流动图如
下所示
图 1.2 推挽输出内部原理
(3) 按键输入基本原理:矩阵按键是由多个行和列组成的,按键按下时,通过行
和列的交叉点来识别按键的编号。将矩阵按键的行和列分别连接在单片机的
GPIO 口上,单片机通过控制行和列的电平,检测按键的按下状态。当依次令
KR-0、KR-1、KR-2、KR-3 为低电平,然后依次读取 KC-0、KC-1、KC-2、KC-3
的值,当某一列为低电平时(如 KR-0),若读取到某一行为低电平(如 KC-
1),则表明该行与该列相交的那一点的按键被按下了(SW5)。当反复进行上
述工作时,便完成了矩阵键盘的扫描。矩阵键盘的行列式结构能够有效提高
单片机系统中的 IO 口利用率,节约单片机 IO 资源。
图 1.3 矩阵键盘引脚分配
图 1.4 矩阵键盘电路原理图
图 1.5 按键扫描流程图
(4) 流水灯闪烁的基本原理:多个 LED 连接在单片机的 GPIO 口上,单片机通过
控制 GPIO 口输出电平的高低来控制 LED 的亮灭。本开发板上流水灯的引脚
为 P0.0-P0.7,电路原理图为:
图 1.6 流水灯电路原理图
(5) 定时器中断基本原理:
设置定时器的计数值(本实验中为 10ms),每达到该计数值时,定时器溢出,
会触发中断服务程序,中断服务程序中执行按键扫描函数,当扫描到某个按键按
下时,会执行相应的处理函数或操作。接着定时器会重新开始计时。这种方式可
以有效避免独立按键的干扰,提高按键的稳定性和可靠性。
3. 实验步骤
(1) 建立新工程——>编写代码并编译——>烧录观察现象