蓝桥杯编程技巧总结:数码管显示和按键扫描函数
需积分: 42 106 浏览量
更新于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,然后再次读取按键的状态。如果按键仍然被按下,我们就根据按键的状态来确定按键的值。
蓝桥杯需要掌握一定的编程技巧和知识,包括数码管显示函数、按键扫描函数和矩阵键盘按键扫描函数等。这些知识点是蓝桥杯的核心内容,掌握这些知识点是参加蓝桥杯的基础。
2289 浏览量
266 浏览量
239 浏览量
149 浏览量
2024-02-11 上传
736 浏览量
3039 浏览量
336 浏览量
ESC521
- 粉丝: 17
- 资源: 19
最新资源
- VS2010 MFC 条形码生成资料
- emacs-which-key:Emacs软件包,在弹出窗口中显示可用的键绑定
- COEN268:行动应用程式开发人员-Android
- Lev3_1_css-einf-hrung_position
- generator-angular-chrome-extension:一个基于角度和物化的Chrome合金扩展的yeoman生成器
- 语义相似度数据-lcqmc.rar
- appfuse-service-3.0.0.zip
- 分享一款由PIC16F1947单片机制作的热敏电阻温控器资料-电路方案
- win12虚拟机 好用 bing
- 表情符号按钮:Vanilla JavaScript表情符号选择器组件
- loopback-getting-started:报废回购,用于学习环回
- Algo:Algo是一个资料库,在一个地方包含所有算法,并且向所有PEC学生开放供其贡献。 该存储库包含的算法对于在放置驱动器中破解编码测试以及竞争性编程都很重要
- Signal_frequency_estimation.rar
- bookcms.rar
- 拼图智力开发PPT模板下载
- God-mode:次模式,用于输入类似于神的命令