基于STC15系列单片机的ADC键盘编写方法
STC15系列单片机自带AD转换功能,本文结合作者自己的经验,以STC1猱蝰逾鸾5W408AS单片机为例,搭建出测试帆歌达缒ADC键盘的板型,并介绍ADC键盘的驱动如何编写。声明:电路原理图取自STC宏晶科技STC15.PDF数据手册。
工具/原料
STC15W408AS和下载器
安装了驱动程序和Keil的电脑
用于焊接测试电路的工具,如焊台、焊锡丝、钳子等
板子所需元件,如74HC595、74HC573、74HC138、数码管、IC插座、按键、电阻等等
硬件部分
1、在单片机系统设计中,使用ADC键盘代替矩阵键盘有巨大的优势,例如节省IO口就是明显的好处之一。所以ADC键盘的驱动方式就成为了初学者应该学习和掌握的技巧之一。
2、由于本例选取的是STC15W408AS单片机,引脚图如下图所示(截取自数据手册)。根据图可以看出AD转换功能排列在P1口。

5、按照电路原理图进行焊接,注意保证走线的清晰明了,ADC键盘电阻之间的连线不能有短路等现象,建议添加电源指示灯(便于检测是否有电源短路现象)和预留出下载接口。
6、由于本人原本是制作方波发生器,利用了ADC键盘,所以在此放上制作的方波发生器实物图,大家可以看一下ADC键盘的元件安排。另一张是键盘部分细节图,走线还是很明朗的,但是本人画工很差,读者将就看吧……本人菜鸟级学生,请高手误喷。

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

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

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

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