湖南大学STC学习板导航键的使用

本文详细介绍了如何在STC学习板上使用导航键,包括导航键的工作原理、STC板子结构、A/D转换的使用以及中断的简单介绍,并提供了初始化代码示例,帮助读者理解并实现导航键的读取和数码管显示。
摘要由CSDN通过智能技术生成

前言:发现STC板子上的按键不够用了,想着用导航键,但无奈在网上找了很久都没有任何一个字眼是关于STC学习板导航按键的使用和详细的代码。今天下午我帅帅的学长教会了我如何去使用导航键,为了更好的巩固和理解,特写博客一篇,希望能帮到有需要的人。

本篇博客构成:

目录

一、导航键原理介绍;

二、STC学习板结构简单介绍;

三、A/D转换的使用中断的简单介绍;

、详细代码解释;


一、导航键原理介绍

先来看导航键的结构图:

1.首先可以看到左边有多个不同阻值的电阻,然后是分别是1、2、3、4、5、6共6个接口。

2.图片中间是一个开关,可以接到不同的接口上;

3.图片右上角KEY3是输出;

以上便是我们需要关注的,下面的K3、K2、K1就板子上的三个开关啦。这个不用管。

导航键如何确定被按下是哪个方向呢?哈哈相信聪明的你想到了,导航键的开关接到不同接口上由于总阻值不一样,所以加在这两点的电压肯定不同。比如当我向上按导航键,这个时候会有一个电压,假如0.5v吧,那么我们如何去拿到这个电压数据呢?刚刚说KEY3是输出,所以当然是从输出去接收啦。但这是模拟信号,需要转成数字才行。这个时候就需要用到我们的A/D转换啦,这个过程叫ADC,亦即模拟转数字。所以配置好端口和启动A/D转换器就好啦。

二、STC学习板结构简单介绍:

这张图标注了STC板子上每一个接口的名称,当你想用这个某个端口的时候就在这张图上面找对应的名字就好。

比如我们现在要用KEY3这个口,发现它对应的名称是P1.7,当我们要在代码里用它的时候,将引脚别名为P1^7就好,也就是声明你这个引脚是这个端口。你会发现前面还有一些字母是干嘛呢?比如ADC7,说明这个端口可以作为A/D转换的输入。如图:

不懂就多翻数据手册啊,要什么有什么!

三、A/D转换的使用:

强行插一张图:

核心原理就在我圈的红圈里面。这一部分会不停的比较转换得到的数字值,直到差值无限逼近0才会向结果寄存器输出精度很高的数字值。

1.IO口初始化:

设置推挽输出:

    P0M0 = 0xFF;   
    P0M1 = 0x00;
    P2M0 |= 0x08;        //0000 1000
    P2M1 &= 0xF7;        //1111 0111

    P0口为什么这么设置,不用我说了吧?数码管显示数字都需要这样设置。

    P2为什么是这样设置呢?由于数码管是共阴极的(咱们的板子),所以数码管点亮需要led_sel为1,所以P2M0 就是 0000        1000啦,也就是0x08呗。P2M1我就不说了吧,查看STC结构图都可以看懂,还有M0M1不同组合对应的工作模式。推挽是10。  因此设置P2.3为推挽只需为M0M1为10就好,其它口不适用,设置为高阻输入。详情看图:

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值