- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、按键与键盘 1 、按钮(按键) (1)、按键图示 一、按键与键盘 1 、按钮(按键) (2)、机械按钮等效电路 (3)、识别按键电路 一、按键与键盘 1 、按钮(按键) (4)、S3C44B0X 按键识别设计 按键输入信号 S3C44B0X提供的可供识别按键的接口 GPIO: 高低电平 EINT0,1,2,3,4,5,6,7:电平识别、边沿识别 一、按键与键盘 1 、按钮(按键) (5)、按键识别电路设计一:GPIO 接口电路设计 一、按键与键盘 1 、按钮(按键) 初始化 PF0 PCONF D1D0=00 GPIO 输入 rPCONF= rPCONF0x1FC rPOPF=rPOPF|0x01 按键识别子程序 BOOL GetPressKey() { while(rPDATF0x01==0x01); return true; } 一、按键与键盘 1 、按钮(按键) (6)、按键识别电路设计二: 外部中断 接口电路设计 一、按键与键盘 1 、按钮(按键) 初始化 管脚配置 PG4 PCONG D9D8=11 EINT4 rPCONF= rPCONG|0x0300 rPOPG=rPOPG|0x08 中断配置 (a) rINTCON=0x5; //禁止FIQ,使能IRQ 一、按键与键盘 1 、按钮(按键) (b) 中断向量 pISR_EINT4567=(int)Eint4567lsr 一、按键与键盘 1 、按钮(按键) (c) 中断识别 rEXTINT=0 010 0000 0000 0000 0000 0000 0000 0000B; //下降沿触发 EXTINT寄存器 EINT7 30:28=000 低电平 001 高电平 01x 下降沿触发 10X 上升沿触发 11X 边沿触发 一、按键与键盘 1 、按钮(按键) (d) 中断使能INTMSK D21=0 中断使能 1 屏蔽 rINTMSK=rINTMSK(021) 一、按键与键盘 1 、按钮(按键) (e)配置为IRQ中断 D21=0 IRQ模式 rINTMOD=rINTMOD(021) 一、按键与键盘 1 、按钮(按键) (f)中断服务程序 void irq__ Eint4567lsr(void) { which_int=rEXTINTPND; rEXTINTPND=0x80; rL_LSPC=121; //清除Pending 位 } 一、按键与键盘 1 、按钮(按键) 中断服务程序与主程序 void main(void) { int which_int=0; while (!which_int); printf(“按键按下!”); } 一、按键与键盘 2 、键盘 (1)、键盘图示 一、按键与键盘 2 、键盘 (2)、键盘等效电路 一、按键与键盘 2 、键盘 (3)、键盘接口电路设计 一、按键与键盘 2 、键盘 (4)、初始化 一、按键与键盘 2 、键盘 PG0、 PG1、 PG2、 PG3输入 PG4、 PG5、 PG6、 PG7输出 01 01 01 01 00 00 00 00=0x5500 rPCONG=0x5500; rPOPG=0xFF; //可以配置,也可以不配置 一、按键与键盘 2 、键盘 (5)、按键识别子程序 (行扫描法) unsigned char GetPressedKey () { unsigned char scanvalue=0x80; unsigned char keyvalue=0; for(int i=0;i4;i++) { rPDATG=scanvalue; keyvalue=rPDATG0x0F; if(keyvalue!=0x0F) break; scanvalue=scanvalue1; } if ((keyvalue!=0)(keyvalue!=0x0f)) return scanvalue0xF0+ keyvalue0x0f; else 0; } 二、LED与数码管 1 、LED (1)、LED图示 二、LED与数码管 1 、LED
文档评论(0)