东北石油大学电子科学与技术专业生产实习
图2-3 独立式按键原理图
4条输人线接到单片机的I/O口上,当按健K1按下时,+5V通过电阻然后再通过按键K1最终进人GND形成一条通路,这条线路的全部电压都加到这个电阻上,P20这个引脚就是个低电平。当松开按健后,线路断开,就不会有电值通过,P20和+5V就应该是等电位,是个高电平。我们就可以通过P20这个10口的高低电平来判断是否有按键按下。
2.3.2 矩阵按键工作原理
在某一个系统设计中,如果需要使用很多按键时,做成独立按键会占用大量I/O口,因此引用了矩阵键盘的设计。如图2-4所示为51开发板上的矩阵按键电路原理图,使用8个I/O口来实现16个按键。
4
东北石油大学电子科学与技术专业生产实习
图2-4 矩阵按键原理图
在程序设计中分别用四个I/O口扫描4行,另外4个扫描4列,确定了按键在哪行哪列也就确定了按键的具体位置。
2.4 整体电路图
如图2-5所示为键盘控制LED流水灯整体电路图。
图2-5 总电路原理图
5
东北石油大学电子科学与技术专业生产实习
2.5 本章小结
本章主要介绍了单片机最小系统、LED工作原理、按键工作原理。并从硬件电路的设计出发,简单分析单片机控制LED的工作过程。理论分析基本完成,接下来就是具体的程序设计与调试,通过具体的程序来实现相应的功能,这也是单片机开发中最具技术含量的环节之一。
6
东北石油大学电子科学与技术专业生产实习
第3章 C程序设计
3.1 程序设计流程图
如图3-1所示为主程序流程图。
开始 开计时器中断 K1是否按下 否 是 扫描矩阵键盘选 择需要点亮的LED 是 K3是否按下 K2是否按下 否 是 计时器中断程序选择 保存选择的数据 数据实现LED流水灯 否
图3-1 程序设计框图
主程序由3个独立按键控制,K1,K2和K3。开始从主函数执行程序语句,不断循环扫描按键,当K1按下时,进入选择状态,程序会不断地扫描矩阵键盘,通过矩阵键盘选择需要点亮的LED;选择结束后按下K2,程序会将选定后的数据送入中断程序,中断程序根据接收的数据选泽对应的LED实现流水灯效果;当按
7
东北石油大学电子科学与技术专业生产实习
下K3后程序又会进入矩阵键盘扫描重新选择LED。
3.2 实验结果
如图3-2所示,当按下K1后进入选择定状态。
图3-2 选择LED
如图3-2,控制矩阵键盘分别选择了第1,6,8盏灯。
再按下K2键,让选择的第1,6,8盏灯实现流水灯效果。如图3-3所示。
图3-3 流水灯
如图3-3,按下K2之后,LED由之前第1,6,8盏灯亮变为第1,2,7盏灯亮,实现了流水灯右移的效果。
当按下K3键,实验结果如图3-4所示。
8