蓝桥杯编程技巧总结:数码管显示和按键扫描函数
需积分: 42 85 浏览量
更新于2024-07-20
1
收藏 445KB PDF 举报
"蓝桥杯总结"
蓝桥杯是一项全国性的大学生程序设计竞赛,旨在培养大学生在计算机科学和技术方面的创新能力和实践能力。参加蓝桥杯需要掌握一定的编程技巧和知识,下面是蓝桥杯中的一些重要知识点总结。
1. 数码管显示函数
数码管显示函数是蓝桥杯中的一项重要考察内容,该函数用于控制数码管的显示。数码管显示函数需要使用到位选锁存信号和段选锁存信号来控制数码管的显示。下面是数码管显示函数的实现代码:
```c
void displayseg1(unsigned char i)
{
P2 |= 0xc0; // 打开位选锁存信号
P0 = 0x80; // 送位码1000000
P2 &= ~(0xc0); // 关闭位选锁存信号
P0 = 0xff; // 消除对段码的影响
P2 |= 0xe0; // 打开段选锁存信号
P0 = Seg_Yang_Led_Table[i]; // 显示数字
P2 &= ~(0xe0); // 关闭段选锁存信号
P0 = 0x00; // 消除对位码的影响
delayms(1);
}
```
在这个函数中,我们首先打开位选锁存信号,然后将位码发送到数码管上,并关闭位选锁存信号。接着,我们打开段选锁存信号,将数字显示在数码管上,并关闭段选锁存信号。最后,我们消除对位码和段码的影响。
2. 按键扫描函数
按键扫描函数是蓝桥杯中的一项重要考察内容,该函数用于扫描按键的状态。下面是按键扫描函数的实现代码:
```c
unsigned char key(void)
{
unsigned char temp, key;
temp = P3;
temp &= 0x0f;
if (temp != 0x0f)
{
delayms(10);
temp = P3;
temp &= 0x0f;
if (temp != 0x0f)
{
switch (temp)
{
case 0x0e: key = 0; break;
case 0x0d: key = 1; break;
case 0x0b: key = 2; break;
case 0x07: key = 3; break;
default: break;
}
}
}
while (temp != 0x0f)
{
temp = P3;
temp &= 0x0f;
}
return key;
}
```
在这个函数中,我们首先读取按键的状态,然后判断按键是否被按下。如果按键被按下,我们就delay 10ms,然后再次读取按键的状态。如果按键仍然被按下,我们就根据按键的状态来确定按键的值。
3. 矩阵键盘按键扫描函数
矩阵键盘按键扫描函数是蓝桥杯中的一项重要考察内容,该函数用于扫描矩阵键盘的状态。下面是矩阵键盘按键扫描函数的实现代码:
```c
uchar key(void)
{
uchar temp, key;
P3 = 0x7f;
P42 = 1;
P44 = 0;
temp = P3;
temp &= 0x0f;
if (temp != 0x0f)
{
delayms(10);
temp = P3;
temp &= 0x0f;
if (temp != 0x0f)
{
temp = P3;
switch (temp)
{
case 0x7e: key = 0; break;
case 0x7d: key = 4; break;
case 0x7b: key = 8; break;
case 0x77: key = 12; break;
default: break;
}
}
}
while (temp != 0x0f)
{
temp = P3;
temp &= 0x0f;
}
P3 = 0;
}
```
在这个函数中,我们首先设置矩阵键盘的状态,然后读取按键的状态。如果按键被按下,我们就delay 10ms,然后再次读取按键的状态。如果按键仍然被按下,我们就根据按键的状态来确定按键的值。
蓝桥杯需要掌握一定的编程技巧和知识,包括数码管显示函数、按键扫描函数和矩阵键盘按键扫描函数等。这些知识点是蓝桥杯的核心内容,掌握这些知识点是参加蓝桥杯的基础。
2018-12-03 上传
2018-05-28 上传
2023-08-01 上传
2023-09-15 上传
2023-08-27 上传
2023-07-27 上传
2023-09-16 上传
2023-09-05 上传
![](https://profile-avatar.csdnimg.cn/3ab05a315da84bc7b22eb142f0ef411e_esc521.jpg!1)
ESC521
- 粉丝: 17
- 资源: 19
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储