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

    51单片机的矩阵按键扫描的设计C语言程序.pdf

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

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

    51单片机的矩阵按键扫描的设计C语言程序.pdf

    /-函数声明,变量定义- #include #define KEY P1 /-变量声明- void program_SCANkey(); /程序扫描键盘 , 供主程序调用void delay(unsigned int N) ;/延时子程序,实现 (16*N+24)us 的延时bit judge_hitkey(); /判断是否有键按下, 有返回 1,没有返回 0 unsigned char scan_key(); /扫描键盘,返回键值 (高四位代表行,低四位代表列 ) void key_manage(unsigned char keycode); /键盘散转void manage_key1(void); /按键 1 处理程序void manage_key2(void); /按键 2 处理程序void manage_key3(void); /按键 3 处理程序void manage_key4(void); /按键 4 处理程序/.每个按键对应一个处理程序,这里/- - / 函数名称: program_SCANkey / 函数功能:程序扫描键盘,/ 有键按下完成按键处理,无键按下直接返回/- void program_SCANkey() unsigned char key_code; if(judge_hitkey() /判断是否有键按下 delay(1000); /延时 20ms左右,消除抖动干扰if(judge_hitkey() /判断是否有效按键 key_code=scan_key(); while(judge_hitkey(); /等待按键释放 key_manage(key_code); /键盘扫描、键盘散转、按键处理 /- - / 函数名称: delay / 入口参数: N / 函数功能:延时子程序,实现(16*N+24)us 的延时/ 系统采用 11.0592MHz的时钟时 , 延时满足要求 , 其它情况需要改动/- void delay(unsigned int N) int i; for(i=0;iN;i+); /- / 函数名称: system_init() / 函数功能:初始化设置/ 设定 INT0、INT1 及 T0、T1 的工作方式/- /* void system_init(void ) TMOD=0 x55; / 定时器 1 和定时器 0 工作在方式 1,的计数模式 TR0=1; /定时器 1 和定时器 0 开始计数 TR1=1; ET0=1; /定时器 1 和定时器 0 中断允许 ET1=1; IT1=0; /选择 INT0 和 INT1 为电平触发方式 IT0=0; EX0=1; /外部中断允许 EX1=0; EA=1; /系统中断允许 /- / 函数名称: INT0_intrupt / 函数功能:外部中断 0 处理程序/- void INT0_intrupt() interrupt 0 using 1 EA=0; /系统中断禁止 delay(1000); /键盘消抖动 if(INT_0=0) /判断是否干扰 /的确有健按下 while(INT_0=0);/等待键盘释放 delay(1000); /键盘消抖动 manage_key1(); EA=1; */ /- / 函数名称: judge_hitkey / 函数功能: / 判断是否有键按下,有返回1,没有返回 0 /- bit judge_hitkey() /判断是否有键按下, 有返回 1,没有返回 0 unsigned char scancode,keycode; scancode=0 xff; /P1.4P1.7输出全 1 全 1 则无键闭合KEY=scancode; keycode=KEY; /读 P1.0P1.3 的状态if(keycode=0 xff) return(0); /全 1 则无键闭合else return(1); /否则有键闭合 /- / 函数名称: scan_key / 函数功能: / 扫描键盘,返回键值 (高四位代表行,低四位代表列) /- unsigned char scan_key() /扫描键盘,返回键值 ( 高四位代表行,低四位代表列 ) unsigned char scancode,keycode; scancode=0 xef; /键盘扫描码,采用逐行扫描的方法 while(scancode!=0 xff) KEY=scancode; /输入扫描码,扫描 P1.4 对应的行 keycode=KEY; /读出数据,看是否在此行上的某列键盘被按下 if(keycode&0 x0f)!=0 x0f) break; /扫描到按下的键,则退出 scancode=(keycode1)|0 x0f; /否则,更新扫描码继续扫描 keycode=keycode; return(keycode); /- / 函数名称: key_manage / 入口参数: keycode 扫描键盘返回的键值 (高四位代表行,低四位代表列) / 函数功能:键盘散转/- void key_manage(unsigned char keycode) switch(keycode) case 0 x11:manage_key1();break; case 0 x12: manage_key2();break; case 0 x14: manage_key3();break; case 0 x18: manage_key4();break; case 0 x21:manage_key5();break; case 0 x22: manage_key6();break; case 0 x24: manage_key7();break; case 0 x28: manage_key8();break; case 0 x41:manage_key9();break; case 0 x42: manage_key10();break; case 0 x44: manage_key11();break; case 0 x48: manage_key12();break; case 0 x81:manage_key13();break; case 0 x82: manage_key14();break; case 0 x84: manage_key15();break; case 0 x88: manage_key16();break; / default: /- / 函数名称: manage_key1 / 函数功能:按键 1 处理程序/- void manage_key1(void) 程序扫描键盘,有键按下完成按键处理,无键按下直接返回。初始化设置:设定INT0、INT1 及 T0、T1的工作方式, 判断是否有键按下, 有返回 1,没有返回 0。扫描键盘,返回键值 ( 高四位代表行,低四位代表列)。

    注意事项

    本文(51单片机的矩阵按键扫描的设计C语言程序.pdf)为本站会员(可****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开