基于STC15系列单片机的ADC键盘编写方法

STC15系列单片机自带AD转换功能,本文结合作者自己的,以STC15W408AS单片机为例,搭建出测试ADC键盘的板型,并介绍ADC键盘的驱动如何编写。
声明:电路原理图取自STC宏晶科技STC15.PDF数据手册。

硬件部分

  • 01

    在单片机系统设计中,使用ADC键盘代替矩阵键盘有巨大的优势,例如节省IO口就是明显的好处之一。所以ADC键盘的驱动方式就成为了初学者应该学习和掌握的技巧之一。

  • 02

    由于本例选取的是STC15W408AS单片机,引脚图如下图所示(截取自数据手册)。根据图可以看出AD转换功能排列在P1口。

  • 03

    参考数据手册STC15.pdf的低405页4.23 A/D做键盘扫描应用线路图。对应所选择的单片机,安排IO连接如下图所示。 其中,74HC595驱动一位数码管显示当前按下的设定值,数码管显示出当前按键的AD转换值。如此安排便于排除故障并且可以由此设定按键判断的AD转换值范围(不懂没关系,继续看)。

  • 04

    电路原理图如下,其中,使用74HC138改为2-4线译码连到数码管位选,使用74HC573作为中继连接到数码管的段选,顺序按照0~7对应a~f连接。 74HC595连接的数码管由于处在静态显示状态,所以COM口接470Ω电阻到地用于限流。 基准源按照数据手册提供的连接方法接到CMP+口。 电路原理图使用立创EDA绘制。

  • 05

    按照电路原理图进行焊接,注意保证走线的清晰明了,ADC键盘电阻之间的连线不能有短路等现象,建议添加电源指示灯(便于检测是否有电源短路现象)和预留出下载接口。

  • 06

    由于本人原本是制作方波发生器,利用了ADC键盘,所以在此放上制作的方波发生器实物图,大家可以看一下ADC键盘的元件安排。 另一张是键盘部分细节图,走线还是很明朗的,但是本人画工很差,读者将就看吧…… 本人菜鸟级学生,请高手误喷。

软件部分

  • 01

    搭建编程环境。 打开Keil,本例以Keil4为例,添加STC15系列头文件,写出函数基本框架。

  • 02

    查找单片机的数据手册,找到相关的寄存器,并写在系统初始化函数里。 初始化主要包括74HC595的上电消隐、AD转换相关寄存器的开启和配置等。

  • 03

    用查询方式检测键盘的按动情况,在中断函数中进行键值判断。以便在每一次AD转换完成后自动获取键值。 按照之前的原理图连接的电路,AD典型转换值在程序中列出

  • 04

    在主函数中,每进行一次AD转换值就进行一次比对,只要AD转换值不是非按下状态的值(这个值在本例中设置为16,因为共有16个按键,键值分配依次为0~15),就证明有按键按下,继而使用switch-case语句判断接下来执行的语句。 下图的功能是不断调用AD转换,实时显示转换对应的值。

  • 05

    为实现上述程序,需要添加的全局变量和子函数如图所示,主要包括数码管显示函数、74HC595通信函数、延时函数和一些位定义等。

  • 06

    在工程配置中设置生成HEX文件,并下载到板子上测试运行即可,此处放上我使用当初方波发生器的板子做的测试图。 可以清晰的看见,当按下某个按键时,静态显示数码管显示键位值,动态扫描数码管显示AD转换值。

(0)

相关推荐

  • Word 2003如何调用虚拟键盘编写特殊符号

    Word 2003如何调用虚拟键盘编写特殊符号 举例来说,当我们使用Word 2003编辑文档,想输入特殊字符m2 时,那就按下键盘上的"Ctrl+/(即问号键)"组合键,看到了什 ...

  • 几种典型宏程序的编写方法

    宏是程序设计语言一个重要的内容,对于一些步骤少却又使用频繁的操作,考虑到程序容量和执行效率的问题我们一般不将其封装为函数而是以宏的形式出现.对于单片机程序这一点尤为突出.宏语言分类非常广泛,这里介绍C ...

  • 内嵌式笔记本键盘拆解方法

    一、内嵌式键盘拆解方法。 这种键盘的固定方式多见于DELL商务机型和日系的笔记本中,从机身后面看不见固定螺丝,拆解时要先把键盘上方的压条拆除。 这种压条在机器背后有通常有固定的螺丝。 之后我们就能看见 ...

  • QQ输入法手机版浮动键盘开启方法图解

    QQ输入法浮动键盘开启方法详解。QQ输入法支持基本的拼音、英文、五笔、笔画、数字符号输入,还支持手写、整句输入、智能纠错等扩展功能,为用户带来更快、更稳定、更流畅的输入体验。今天小编就都大家QQ输入法 ...

  • Win8软键盘在哪 Win8.1屏幕键盘打开方法图解

    有的时候,我们的电脑键盘损坏或者某个按键失灵又或者需要打一些特殊符号的时候,我们通常会用到Windows系统自带的软键盘。在XP和Win7系统中,我们可以通过在开始菜单的附件中找到“屏幕键盘”,但对于 ...

  • Win8.1屏幕键盘打开方法图解

    最新的Win8/Win8.1系统而言,由于无法直接找到开始菜单,因此很多用户不知道Win8软键盘在哪,因此也就无法知道Win8.1屏幕键盘怎么打开了。接下来本文主要针对Win8、Win8.1用户介绍下 ...

  • 华硕X54HR系列机台不加电的解决方法

    华硕X54HR系列机台不加电的解决方法如下: 1.移除内存并重新安装尝试。 2.检查机台底部是否有“reset”孔。 有“reset”孔-->重置电脑。 无“reset”孔-->联系华硕服 ...

  • Win7系统运行屏幕键盘的方法

    很多人都知道电脑中有个软键盘,就是屏幕键盘,一般情况下我们不太使用到,只有在输入密码的时候会出现,因为这避免了密码被盗的危险,对于账户保护是很有必要的.为什么这个功能在我们日常中不太使用到呢?因为这个 ...

  • 讯飞输入法手机版设置键盘高度方法

    讯飞输入法手机版设置键盘高度方法 首先,为了设置方便,我们打开一个聊天窗口,点击输入即可弹出讯飞输入法键盘; 讯飞输入法 然后我们点击讯飞输入法键盘左上角的如图所示按钮 ,在打开的页面中我们点击页面右 ...