人机交互接口 · 核心实训
单片机按键控制 · 9 大经典实训
本项目围绕按键输入展开,从独立按键读取、按键消抖、状态保持,到多位按键控制、数码管显示、蜂鸣器发音,全面训练单片机人机交互接口的设计与编程能力。
9 大递进式子项目
汇编语言
约 9 学时
配套评分标准
按键 → P3.2 输入检测
PROJECT MATRIX
9 大经典玩法一览
由简到难,循序渐进掌握按键控制 · 点击任意卡片开始学习
基基础实训
进进阶实训
综综合实训
01
基础实训
单按键控制 LED 点亮与熄灭
按键输入 · 电平检测
SJ-003-01
开始学习 →
02
基础实训
独立按键单次触发流水灯启动
边沿触发 · 单次响应
SJ-003-02
开始学习 →
03
进阶实训
双按键分别控制灯光启停
多键管理 · 启停逻辑
SJ-003-03
开始学习 →
04
进阶实训
8按键独立控制8路 LED 单独开关
并行输入 · 位映射
SJ-003-04
开始学习 →
05
进阶实训
按键消抖专项实训
机械抖动 · 软件消抖
SJ-003-05
开始学习 →
06
进阶实训
4位按键切换4种灯光流动模式
模式选择 · 查表法
SJ-003-06
开始学习 →
07
综合实训
按键计数,两位共阳数码管同步显示按压次数
计数器 · 数码管动态扫描
SJ-003-07
开始学习 →
08
综合实训
8路按键抢答1位共阳数码管显示
中断式抢答 · 数码管译码
SJ-003-08
开始学习 →
09
综合实训
8路按键控制发基础音
蜂鸣器驱动 · 音阶频率
SJ-003-09
开始学习 →
单按键控制 LED 点亮与熄灭
基础实训实训编号
SJ-003-01
实训类型
按键控制
实训学时
40分钟
适用年级
高二,高三
指导教师
王老师
1 项目简介
本项目是按键控制入门的第一个实验,通过检测单个按键的按下与释放状态,直接控制一只 LED 灯的点亮与熄灭。当按键按下时 LED 点亮,按键释放时 LED 熄灭。
掌握本项目后,学生将理解单片机 IO 口作为输入口读取外部电平信号的基本方法,理解上拉电阻与按键电路的连接方式,为后续复杂按键控制项目打下基础。
2 电路图
电路说明
- • 按键接 P3.2,另一端接地,外接 10kΩ 上拉电阻至 VCC
- • LED 阳极经 1kΩ 限流电阻接 VCC,阴极接 P1.0
- • 按键未按下时 P3.2 为高电平,按下为低电平;P1.0 低电平时 LED 点亮
3 程序内容(汇编语言)
;==================================================
; 项目名称:单按键控制 LED 点亮与熄灭
; 芯片型号:STC89C52RC
; 时钟频率:12MHz
; 按键连接:P3.2 (低电平有效,外接上拉电阻)
; LED连接:P1.0 (低电平点亮,高电平熄灭)
; 功能说明:按下按键点亮 LED,释放按键熄灭 LED
;==================================================
ORG 0000H ; 程序从复位向量 0000H 开始
LJMP MAIN ; 跳转到主程序入口
; 主程序入口
; 主循环功能:实时检测 P3.2 按键电平,控制 P1.0 LED 亮灭
MAIN: SETB P1.0 ; P1.0 输出高电平,LED 初始熄灭
SETB P3.2 ; P3.2 写 1,配置为输入口并释放内部上拉
; 主循环:不断扫描按键状态
LOOP: JB P3.2, LED_OFF ; 若 P3.2=1(按键未按下),则熄灭 LED
CLR P1.0 ; P3.2=0(按键按下),P1.0 输出低电平点亮 LED
SJMP LOOP ; 返回继续扫描
; 按键未按下分支:保持 LED 熄灭
LED_OFF: SETB P1.0 ; P1.0 输出高电平,LED 熄灭
SJMP LOOP ; 返回继续扫描
END ; 程序结束
4 评分标准
| 评分项 | 分值 | 评分标准 |
|---|---|---|
| 电路连接 | 30分 | 按键、LED 连线正确,上拉电阻接入规范 |
| 程序编写 | 40分 | 代码正确、规范,注释清晰 |
| 功能实现 | 20分 | 按下按键 LED 亮,释放则灭 |
| 实训报告 | 10分 | 报告内容完整、整洁 |
5 注意事项与安全规范
上拉电阻
按键引脚必须接上拉电阻,确保未按下时为稳定高电平
防止短路
焊接时注意按键引脚间不可短路,避免损坏单片机端口
输入口设置
STC89C52RC 引脚作为输入时先写 1,避免内部下拉影响读取