欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    13键控彩灯.ppt

    • 资源ID:67203701       资源大小:906KB        全文页数:43页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    13键控彩灯.ppt

    任务三任务三任务三任务三 键控彩灯(中断)键控彩灯(中断)键控彩灯(中断)键控彩灯(中断)用按键控制彩灯的运行。通过按动按键用按键控制彩灯的运行。通过按动按键,彩灯在三种闪亮方式彩灯在三种闪亮方式(左移、右移和自定义花左移、右移和自定义花样样)之间切换。学会使用单片机的外部中断实之间切换。学会使用单片机的外部中断实现各种控制功能。现各种控制功能。设计任务设计任务按键处理方式:按键处理方式:1、查询查询方式:不断查询按键方式:不断查询按键/隔一段时间抽样检隔一段时间抽样检测一次。测一次。2、中断中断方式:采用外部中断。方式:采用外部中断。键盘键盘键盘是单片机应用系统常用的输入设备。键盘是单片机应用系统常用的输入设备。按键是一个简单的开关:按键是一个简单的开关:当按键按下时,相当于开关闭合;当按键按下时,相当于开关闭合;当按键松开时,相当于开关断开。当按键松开时,相当于开关断开。(1)独立式独立式键盘键盘 各个按各个按键键相互独立,每个按相互独立,每个按键键独立地与一独立地与一根根输输入入线线相相连连。适合于按适合于按键较键较少少的系的系统统。(2)行列式键盘行列式键盘 按键设置在行列的交点上。按键设置在行列的交点上。适合于按键较适合于按键较多多的系统。的系统。按键的去抖按键的去抖 机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来,抖动时间一般为510ms,在触点抖动期间检测按键的通与断状态,可能导致判断出错。独立式按键键盘独立式按键键盘某个键某个键按下按下时,对应行为时,对应行为0;未按下时,对应行为;未按下时,对应行为1。用用4个按键实现对个按键实现对4个程序的控制。每按个程序的控制。每按下一个键,执行一次相应的程序。下一个键,执行一次相应的程序。Sbit key1=P10;void main(void)uchar key;while(1)If(key1=0)Func1();If(key2=0)Func2();If(key3=0)Func3();If(key4=0)Func4();或者用或者用Switch case语句语句 行列式按键键盘行列式按键键盘(1)扫扫描法描法 逐行扫描:扫描一行,逐行扫描:扫描一行,逐行扫描:扫描一行,逐行扫描:扫描一行,如果发现有键按下,通过对列线移位,计算出键号;如果发现有键按下,通过对列线移位,计算出键号;如果发现有键按下,通过对列线移位,计算出键号;如果发现有键按下,通过对列线移位,计算出键号;如果没有键按下,扫描下一行。如果没有键按下,扫描下一行。如果没有键按下,扫描下一行。如果没有键按下,扫描下一行。逐列扫描:扫描一列,如果发现有键按下,通过对逐列扫描:扫描一列,如果发现有键按下,通过对逐列扫描:扫描一列,如果发现有键按下,通过对逐列扫描:扫描一列,如果发现有键按下,通过对行线移位,计算出键号;如果没有键按下,扫描下一行线移位,计算出键号;如果没有键按下,扫描下一行线移位,计算出键号;如果没有键按下,扫描下一行线移位,计算出键号;如果没有键按下,扫描下一列。列。列。列。(2)反转法反转法先把所有列线为低电平,行线置成输入状态,然后读先把所有列线为低电平,行线置成输入状态,然后读先把所有列线为低电平,行线置成输入状态,然后读先把所有列线为低电平,行线置成输入状态,然后读行线状态;再把所有行线为低电平,列线置成输入状行线状态;再把所有行线为低电平,列线置成输入状行线状态;再把所有行线为低电平,列线置成输入状行线状态;再把所有行线为低电平,列线置成输入状态,然后读列线状态;最后将两者组合形成键号。态,然后读列线状态;最后将两者组合形成键号。态,然后读列线状态;最后将两者组合形成键号。态,然后读列线状态;最后将两者组合形成键号。设计一个设计一个4行行4列的行列式键盘,键号位列的行列式键盘,键号位015。每按下一个键,得到一个键号。每按下一个键,得到一个键号。功能:判断哪个键按下。功能:判断哪个键按下。所有行线输出所有行线输出0,然后读列线的输入状态。,然后读列线的输入状态。所有列线输出所有列线输出0,然后读行线的输入状态。,然后读行线的输入状态。将行号和列号叠加形成扫描码。根据扫描将行号和列号叠加形成扫描码。根据扫描码找到按键编码。码找到按键编码。反转法程序反转法程序int keyfound()uchar keyvalue,keyin_i,keyin_j,keyin,i;P1=0;keyin_j=P0;keyin_j=keyin_j4;P0=0;keyin_i=P1;keyin_i=keyin_i&0 x0f;keyin=keyin_i|keyin_j;流程图流程图源程序源程序续上续上 for(i=0;i3)flag=1;中断服务子程序中断服务子程序#include reg51.h“#define uchar unsigned charuchar flag;uchar light,assum;void delay05s(void)unsigned char i,j,k;for(i=5;i0;i-)for(j=200;j0;j-)for(k=250;k0;k-);void delay10ms(void)unsigned char i,k;for(i=20;i0;i-)for(k=250;k0;k-);void left(void)uchar i,j;j=0 x01;for(i=8;i0;i-)P1=j;delay05s();j=j0;i-)P1=j;delay05s();j=j1;void left()light=light1;if(light=0)light=0 x80;P1=light;void assume()uchar code dispcode8=0 x7e,0 xbd,0 xdb,0 xe7,0 xdb,0 xbd,0 x7e,0 xff;if(assum=7)assum=0;else assum+;P1=dispcodeassum;void main()IT0=1;EX0=1;EA=1;flag=1;light=0 x01;assum=0;while(1)switch(flag)case 1:left();break;case 2:right();break;case 3:assume();break;delay05s();void int_0()interrupt 0 delay10ms();if(INT0=0)flag+;if(flag3)flag=1;使用外部中断1完成电路设计并增加功能IT1=1;EX1=1;void int_1()interrupt 2INT1IT0=0;1、扫描独立按键控制彩灯控制。、扫描独立按键控制彩灯控制。2、利用中断实现彩灯控制。、利用中断实现彩灯控制。3、增加数码管显示花样编号。、增加数码管显示花样编号。任务布置任务布置主程序流程主程序流程中断服务子程序流程中断服务子程序流程设计一个设计一个4行行4列的行列式键盘,键号位列的行列式键盘,键号位015。每按下一个键,得到一个键号。每按下一个键,得到一个键号。功能:判断是否有键按下。功能:判断是否有键按下。设置设置列线输出,行线输入列线输出,行线输入。列线全部输出列线全部输出0,看行线是否有,看行线是否有0输入。输入。若行线有若行线有0输入,说明有键按下。输入,说明有键按下。若行线没有若行线没有0输入,说明没有键按下。输入,说明没有键按下。设置设置行线输出,列线输入行线输出,列线输入。行线全部输出行线全部输出0,看列线是否有,看列线是否有0输入。输入。若列线有若列线有0输入,说明有键按下。输入,说明有键按下。若列线没有若列线没有0输入,说明没有键按下。输入,说明没有键按下。快速扫描程序快速扫描程序int fastfound()uchar keyin;P1=0;keyin=P0;keyin=keyin&0 x0f;if(keyin=0 x0f)return(0);else return(1);功能:判断哪个键按下。功能:判断哪个键按下。行行(列)线(列)线逐行逐行(列)输出(列)输出0,看哪一,看哪一列列(行)(行)有有0输入。输入。若若列列(行)线输入全部为(行)线输入全部为1,说明没有键按下。,说明没有键按下。若某若某列列(行)有(行)有0输入,说明这一输入,说明这一列列(行)有键(行)有键按下,记录下当时的行号和列号。将行号和列号按下,记录下当时的行号和列号。将行号和列号叠加形成扫描码。根据扫描码找到按键编码。叠加形成扫描码。根据扫描码找到按键编码。扫描法程序扫描法程序源程序源程序int keyfound()uchar keyvalue,keyscan,keyin;uchar i,j,flag;keyscan=0 xee;keyvalue=0;flag=0;for(i=0;i4;i+)P1=keyscan;keyin=P0;keyin=keyin&0 x0f;流程图流程图 if(keyin!=0 x0f)for(j=0;jj)&1)=0)keyvalue=keyvalue+j;flag=1;break;else keyvalue+=4;keyscan=_cror_(keyscan,1);if(flag=1)return(keyvalue);

    注意事项

    本文(13键控彩灯.ppt)为本站会员(s****8)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开