独立按键控制LED灯.doc_第1页
独立按键控制LED灯.doc_第2页
独立按键控制LED灯.doc_第3页
独立按键控制LED灯.doc_第4页
独立按键控制LED灯.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档项目五 独立按键控制LED灯1. 掌握独立按键消抖原理2. 掌握独立按键接口电路设计3. 掌握独立按键控制LED灯的程序编写1. 设计独立按键控制LED的硬件电路2. 编写程序分别实现按下按键1和按键2,LED灯闪烁方式不同3. 下载程序到单片机中,运行程序观察结果并进行软硬件的联合调试 键盘是常见的计算机输入设备,在单片机应用中,按键可以设置电子钟的时间;简易计算器中,按键可以输入数字;按键还可以实现单片机中两个不同功能程序切换。本项目要求两个按键分别实现LDE灯的不同闪烁方式,按键1按下时,8个LED灯从右向左依次点亮,按键2按下时,8个LED灯从左向右依次点亮。 本项目只需2个按键实现LED灯闪烁方式控制,因此按键接口电路设计成独立按键。独立按键即每个按键直接与单片机I/O端口连接,当按键按下和弹开时,单片机I/O端口呈现不同的电平。独立按键接口电路可以设计成当按键按下时,单片机I/O端口为高电平或者低电平,读者可以根据自己的需求自行设计。单片机应用中的独立按键多是机械弹性开关,在按键按下和弹开时,由于按键的机械特性,有抖动产生。消除抖动有硬件方式和软件方式,软件方式就是编程读取I/O端口电平时,产生一个5ms10ms延时后,再次读取I/O端口电平,以确认按键是否按下或弹开。1. 独立按键与矩阵按键 键盘是实现人机交互的重要计算机输入设备,其中按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。按键按照接口原理可分为编码键盘和非编码键盘,编码键盘是用硬件来实现对键的识别,非编码键盘由软件来实现按键的识别。非编码键盘按连接方式可分为独立按键和矩阵按键。 独立按键特点是每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单,适合所需按键较少的场合。矩阵按键特点是电路连接复杂,软件编程较复杂,但I/O口利用率高,适合需要大量按键的场合。下图为常见独立按键和矩阵按键接口电路。 图 独立按键接口电路与矩阵按键接口电路 上图四个按键(常开触点开关)S1,S2,S3,S4分别与单片机的四个I/O端口连接。当按键没有按下时,四个I/O端口的电压为高电平;当按键按下时,电源与电阻、按键构成闭合回路,四个I/O端口的电压拉为低电平。四个电阻为外部上拉电路,它们的作用是拉升外部端口的电压,如果单片机的I/O端口有内部上拉电阻的话,此处可以忽略,但编程时需注意读I/O端口时,应先给端口赋高电平,避免误读端口。矩阵按键接口电路在项目六中讲解。2. 按键消抖通常的按键所用的开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。如下图 所示,按键抖动时间一般为5ms10ms。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。按键消抖方式有硬件消抖和软件消抖。硬件消抖在按键数目较少时使用,常用硬件消抖电路有RS触发器和并联电容,如下图所示。 如果按键较多,常用软件方法消抖。其方法是检测按键是否按下,如按键按下,执行一个延时程序5ms10ms,让前沿抖动消失后再一次检测按键状态,如果仍保持按下,则确认为真正有按键按下。当检测到按键释放后,也执行一个5ms10ms的延时,待后沿抖动消失后转入该按键的处理程序。这种按键消抖占用CPU资源,采用定时器中断软件消抖效果要好些。1. 绘制本项目电路图2. 准备焊接器材序号电路组成元件名称规格或参数数量1最小系统电阻10K2个2排阻10K1个3电解电容10uF1个4瓷片电容30pF2个5晶振12MHz1个6发光二极管3mm黄色1个7洞洞板5*7cm1块8紧锁座40PIC1个9常开触点开关6*6*5微动开关1个10拨动开关3脚2档1个11USB插座A母1个12焊接工具焊烙铁5W外热1把13焊锡丝0.8mm若干14斜口钳尺寸51把15外围电路发光二极管3mm黄色8个16常开触点开关6*6*5微动开关2个17限流电阻2208个3. 根据电路图进行焊接参考视频资料4. 编写本项目程序#include#include#define uchar unsigned char#define uint unsigned int#define LED P2sbit Key1=P10;sbit Key2=P11;void Display1();void Display2();void delay(uint t);void main(void) P1=0xff; P2=0xff; while(1) if(Key1=0) delay(10); if(Key1=0) Display1(); while(Key1=0); if(Key2=0) delay(10); if(Key2=0) Display2(); while(Key2=0); void Display1() uint i,temp; temp=0xfe; LED=temp; for(i=0;i8;i+) temp=_crol_(temp,1); LED=temp; delay(100); void Display2() uchar i,temp; temp=0x7f; LED=temp; for(i=0;i0;i-);#include#include#define uchar unsigned char#define uint unsigned int#define LED P2sbit Key1=P10;sbit Key2=P11;void Display1();void Display2();void delay(uint t);void main(void) uchar KeyNum; P1=0xff; P2=0xff; while(1) if(Key1=0) delay(10); if(Key1=0) KeyNum=1; if(Key2=0) delay(10); if(Key2=0) KeyNum=2; switch(KeyNum) case 1:Display1();break; case 2:Display2();break; void Display1() uint i,temp; temp=0xfe; LED=temp; for(i=0;i8;i+) temp=_crol_(temp,1); LED=temp; delay(100); void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论