欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    单片机按键扫描程序和显示程序及延时程序解析.doc

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

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

    单片机按键扫描程序和显示程序及延时程序解析.doc

    单片机按键扫描程序和显示程序及延时程序解析/程序中没有做按键去抖,也没有考虑多个键同时按下的情况。/最低两位数码管显示相应的按键(如按下S10,在显示10;按下S25,则显示25)/无按键按下的时候显示FF/按键跟按键的扫描结果满足如下关系:/按键扫描结果(result)按键扫描结果/K100XE7K180XB7/K110XEBK190XBB/K120XEDK200XBD/K130XEEK210XBE/K140XD7K220X77/K150XDBK230X7B/K160XDDK240X7D/K170XDEK250X7E#include/包含 单片机 内部资源预定义_CONFIG(0x1832);/芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡intresult;voiddelay();/delay函数申明voidinit();/I/O口初始化函数申明voidsCAN();/按键扫描程序申明voiddisplay(intx);/显示函数申明/-/主程序voidmain()while(1)/循环工作init();/调用初始化子程序scan();/调用按键扫描子程序display(result);/调用结果显示子程序/-/初始化函数voidinit()ADCON1=0X07;/设置A口为普通I/O口TRISA=0X0f;/设置A口高2位为输出,低4位为输入TRISC=0XF0;/设置C口高4位为输入,低4位为输出TRISD=0X00;/设置D口为输出PORTA=0XFF;PORTD=0XFF;/先清除所有显示/-/按键扫描程序voidscan()PORTC=0XF7;/C3输出低电平,其他三位输出高电平asm(“nop”);/插入一定延时,确保电平稳定result=PORTC;/读回C口高4位结果result=result/清除低4位if(result!=0xf0)/判断高4位是否为全1(全1代表没按键按下)?result=result|0x07;/否,加上低4位0x07,做为按键扫描的结果else/是,改变低4位输出,重新判断是否有按键按下PORTC=0XFb;/C2输出低电平,其他三位输出高电平asm(“nop”);/插入一定延时,确保电平稳定result=PORTC;/读回C口高4位结果result=result/清除低4位if(result!=0xf0)/判断高4位是否为全1(全1代表没按键按下)result=result|0x0b;/否,加上低4位0xb,做为按键扫描的结果else/是,改变低4位输出,重新扫描PORTC=0XFd;/C1输出低电平,其他三位输出高电平asm(“nop”);/插入一定延时,确保电平稳定result=PORTC;/读回C口高4位结果result=result/清除低4位if(result!=0xf0)/判断高4位是否为全1(全1代表没按键按下)result=result|0x0d;/否,加上低4位0x0d,做为按键扫描的结果else/是,改变低4位的输出,重新扫描PORTC=0XFe;/C0输出低电平,其他三位输出高电平asm(“nop”);/插入一定延时,确保电平稳定result=PORTC;/读回C口高4位结果result=result/清除低4位if(result!=0xf0)/判断高四位是否为全1(全1代表没有按键按下)result=result|0x0e;/否,加上低4位0x0e,做为按键扫描的结果else/是,全部按键扫描结束,没有按键按下,置无按键按下标志位result=0xff;/扫描结果为0xff,做为没有按键按下的标志/-/显示程序voiddisplay(intx)switch(result)case0xe7:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0xc0;PORTA=0X1F;delay();break;/K10case0xeb:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0xf9;PORTA=0X1F;delay();break;/K11case0xed:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0xa4;PORTA=0X1F;delay();break;/K12case0xee:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0xb0;PORTA=0X1F;delay();break;/K13case0xd7:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0x99;PORTA=0X1F;delay();break;/K14case0xdb:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0x92;PORTA=0X1F;delay();break;/K15case0xdd:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0X82;PORTA=0X1F;delay();break;/K16case0xde:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0XF8;PORTA=0X1F;delay();break;/K17case0xb7:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0X80;PORTA=0X1F;delay();break;/K18case0xbb:PORTD=0xf9;PORTA=0X2F;delay();PORTD=0X90;PORTA=0X1F;delay();break;/K19case0xbd:PORTD=0xa4;PORTA=0X2F;delay();PORTD=0xc0;PORTA=0X1F;delay();break;/K20case0xbe:PORTD=0xa4;PORTA=0X2F;delay();PORTD=0xf9;PORTA=0X1F;delay();break;/K21case0x77:PORTD=0xa4;PORTA=0X2F;delay();PORTD=0xa4;PORTA=0X1F;delay();break;/K22case0x7b:PORTD=0xa4;PORTA=0X2F;delay();PORTD=0xb0;PORTA=0X1F;delay();break;/K23case0x7d:PORTD=0xa4;PORTA=0X2F;delay();PORTD=0x99;PORTA=0X1F;delay();break;/K24case0x7e:PORTD=0xa4;PORTA=0X2F;delay();PORTD=0x92;PORTA=0X1F;delay();break;/K25case0xff:PORTD=0x8e;PORTA=0X2F;delay();PORTD=0x8e;PORTA=0X1F;delay();/无按键按下/-/延时程序voiddelay()/延时程序inti;/定义整形变量for(i=0x100;i-;);/延时

    注意事项

    本文(单片机按键扫描程序和显示程序及延时程序解析.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开