飞思卡尔8位单片机MC9S0809程序键盘中断模块编程实例.docVIP

飞思卡尔8位单片机MC9S0809程序键盘中断模块编程实例.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
飞思卡尔8位单片机MC9S0809程序键盘中断模块编程实例

9.2 汇编语言键盘中断模块编程实例 (2)键盘编程汇编语言子程序 下面给出有关键盘编程的汇编语言子程序。它们是:键盘中断初始化子程序、扫描法读取键值子程序、键值转为定义值子程序。即使不使用中断方式识别按键,三个子程序仍然需要使用。只不过键盘初始化子程序中改为不允许中断进入。扫描法读取键值与键值转为定义值两个子程序在键盘编程中通常需要使用的。 KBsub.ASM *------------------------------------------------------* *文件描述:包含3个键盘子程序,分别为: * * (1)键盘初始化子程序(KB_Init) * * (2)扫描读取键值子程序(KB_Scan) * * (3)键值转为定义值子程序(KB_Def) * *------------------------------------------------------* *===================以下为子程序源代码=================* KB_P EQU PTA ;键盘接在PTA口上 KB_D EQU DDRA ;相应的方向寄存器 KB_PUE EQU PTAPUE ;相应的上拉电阻允许寄存器 *KB_Init:键盘初始化子程序------------------------------* *功能:初始化键盘中断的引脚,但未开放键盘中断 * *入口:无 * *出口:无 * *堆栈深度:2 * *------------------------------------------------------* KB_Init: PSHA ;保护A LDA #$00 ;复位相应寄存器 STA KB_P LDA # ;定义7-4为输入,3-0为输出 STA KB_D LDA # ;定义输入引脚有内部上拉电阻 STA KB_PUE BSET 1,INTKBSCR ;屏蔽键盘中断(IMASK=1) LDA # ;允许输入引脚的中断可进入 STA INTKBIER BSET 2,INTKBSCR ;清除键盘中断请求(ACKK=1) PULA ;恢复A RTS *KB_Scan:扫描读取键值子程序----------------------------* *功能:扫描4*4键盘,读取键值-A,无按键,为$FF * *入口:无 * *出口:A=键值 * *堆栈深度:2+2=4 * *------------------------------------------------------* KB_Scan: AIS #-!2 ;开辟临时变量 LDA # ;使第一根行线为0(低电平) STA !1,SP LDA #$04 ;将扫描4根行线 STA !2,SP KB_Scan1: LDA KB_P ;取KB_P-A ORA # ;KB_P.7-4保留,KB_P.3-0为1 AND $1,SP ;令KB_P.n=0,n=0、1、2、3 STA KB

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档