- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机键盘设计
键盘接口软件设计 ?Juliet发表评论于2006-5-10 11:36:00 键盘接口软件设计 ? ? 软件设计要考虑以下3部分内容:键盘缓冲区的设置;初始化程序;中断服务程序。 ??? 1、键盘缓冲区
??? 键盘缓冲区地址为:30H-4FH,共32个字节。使用R1作为缓冲区放数指针,R7为取数指针。缓冲区为环形。放满后将R1置为30H,再从头放数;当放数指针追上取数指针时,停止放数。当取数指针追上放数指针时,停止取数。
??? 2、初始化程序
??? 包括8052的初始化和键盘的初始化。程序清单如下:
??????? MOV IE,#0H??????????? ;关中断
??????? CLR F0??????????????? ;F0=0为类型1键盘;F0=1为类型2键盘
??????? MOV R0,#0H
??????? MOV R1,#30H?????????? ;置缓冲区放数指针起始值
??????? MOV R2,#0H
??????? MOV R3,#0H
??????? MOV R4,#0H
??????? MOV R5,#0H
??????? MOV R6,#0H
??????? MOV R7,#2FH?????????? ;置缓冲区取数指针起始值
??????? MOV B,#0H
??????? MOV TCON,#0H????????? ;置INT0为电平触发方式
KEYINT:?????????????????????? ;主中断服务程序
??????? MOV IE,#0H??????????? ;关中断
??????? MOV A,R7????????????? ;取数指针放到A
??????? XRL A,R1????????????? ;与放数指针比较
??????? JZ KL4??????????????? ;放数指针=取数指针则退出
??????? INC R0??????????????? ;脉冲计数
KL1:??? JNB P3.2,KL1????????? ;等待时钟脉冲为“1”
??????? CJNE R0,#01H,K12????? ;首次收到脉冲则判断键盘类型
??????? MOV C,P1.0
??????? KL2:JB F0,KL3???????? ;根据F0的值转不同服务程序
??????? MOV F0,C????????????? ;保存键盘类型
??????? MOV C,P1.0??????????? ;采用数据
??????? LCALL INTB??????????? ;类型2键盘中断服务程序
??????? MOV IE,#81H?????????? ;开中断
??????? RETI
KL3:??? MOV C,P1.0??????????? ;采样数据
??????? LCALL INTA??????????? ;类型1键盘中断服务程序
KL4:??? MOV IE,#81H?????????? ;开中断
??????? RETI
??? 限于篇幅,以下公列出类型1键盘中断服务子程序的处理程序,类型2键盘中断服务子程序除需要进行奇校验及计数脉冲个数不同外,流程基本一致。
??? 类型1键盘中断服务子程序:
INTA:
??????? MOV A,R2????????????? ;数据位移入R2和R3中
??????? RRC A
??????? MOV R2,A
??????? MOV A,R3
??????? RRC A
??????? MOV R3,A
??????? CJNE R0,#0AH,INTA1??? ;计数脉冲不为10退出,否则转换
??????? CLR C
??????? MOV A,R3
??????? RLC A
??????? MOV A,R2
??????? RLC A
??????? MOV R5,A????????????? ;数据存入R5
??????? ANL A,#80H
??????? JNZ INTA3???????????? ;是否为放键码,是则退出
??????? MOV A,R5
??????? MOV DPTR,#1000H?????? ;1000H为码表转换区起址
??????? MOVC A,@A+DPTR??????? ;扫描码转换为ASCII码
??????? MOV @R1,A???????????? ;ASCII码存入键盘缓冲区
??????? INC R1
??????? CJNE R1,#50H,INTA3
??????? MOV R1,#30H?
您可能关注的文档
最近下载
- 心血管-肾脏-代谢综合征患者的综合管理中国专家共识.pdf VIP
- 四年级数学空间与统计专项练习.docx VIP
- 人教版二年级数学上册期末学业质量测评卷(含答案).pdf VIP
- 高速公路水土保持工程监理总结报告_精品.doc VIP
- 华能电气考试题库及答案.doc VIP
- 《中药红曲米质量规范 》团体标准-全文及说明.pdf VIP
- 3360000XX_A4系列伺服快卷门控制系统操作说明CN_20190308.pdf
- 郑州市2026届高三(一模)生物试卷(含官方答案).pdf
- 安徽省九师联盟2026届高三上学期12月质量检测生物试卷(含答案详解).doc VIP
- 陕西省宝鸡市2026届高三上学期高考模拟检测(一)生物试卷含答案.pdf VIP
原创力文档


文档评论(0)