- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
法度模范
9-1KEY:MOV P1,#0FFH;P1口为输入,各位应先置位为高电平
MOV A,P1;读取按键状态
CPL A;取正逻辑,高电平表示有键按下
ANL A,#0FH
JZ KEY;A=0时无键按下,重新扫描键盘
LCALL D10 ms;有键按下延时去抖动
MOV A,P1;读取按键状态
CPL A;取正逻辑,高电平表示有键按下
ANL A,#0FH;再判别是否有键按下
JZ KEY;A=0时无键按下重新扫描键盘
MOV B,A;有键按下,键值送B暂存
MOV A,P1
CPL A
ANL A,#0FH;判别按键释放
KEY1:JNZ KEY1;按键未释放,等待
LCALL D10ms;释放,延时去抖动
MOV A,B;取键值送A
JB ACC.0,PKEY1;K1按下转PKEY1
JB ACC.1,PKEY2;K2按下转PKEY2
JB ACC.2,PKEY3;K3按下转PKEY3
JB ACC.3,PKEY4;K4按下转PKEY4
EKEY:RET
PKEY1:LCALL K1;K1命令处理程序
RET
PKEY2:LCALL K2;K2命令处理程序
RET
PKEY3:LCALL K3;K3命令处理程序
RET
PKEY4:LCALL K4;K4命令处理程序
RET
D10ms:MOV R7,#10H;10 ms延时子程序
DS1: MOV R6,#0FFH
DS2: DJNZ R6,DS2
DJNZ R7,DS1 RET
6-1用定时器T1产生一个50HZ的方波,由P1.1输出,FOSC=12MHZ
方波周期=1/50=20ms,用T1定时10ms,初值X=216-12*10*1000/12=55536=D8F0H
MOV TMOD,#10H;设置T1为模式1
SETB TR1;启动定时
LOOP:MOV TH1,#0D8H;送初值
MOV TL1,#0F0H
JNB TF1,$;查询定时时间到否
CLR TF1;产生溢出,清标志位
CPL P1.1;取反
SJMP LOOP;重复循环
16.T0为模式3,T1为模式2可提供3个8位定时器可选100b/s
9-2:KEY: LCALL KS;调用判断有无键按下子程序
JZ KEY;无键按下,重新扫描键盘
LCALL T10 ms;有键按下,延时去抖动
LCALL KS
JZ KEY
MOV R2,#0FEH;首列扫描字送R2
MOV R4,#00H;首列号#00H送入R4
MOV P0,#0FFH
LK1:MOV P1,R2;列扫描字送P1口
MOV A,P0
JB ACC.0,ONE;0行无键按下,转1行
MOV A,#00H;0行有键按下,该行首号#00H送A
LJMP KP;转求键号
ONE:JB ACC.1,NEXT;1行无键按下,转下列
MOV A,#02H;1行有键按下,该行首号#02H送A
KP:ADD A,R4;求键号,键号=行首键号+列号
PUSH ACC;键号进栈保护
LK:LCALL KS;等待键释放
JNZ LK;未释放,等待
POP ACC;键释放,键号送A
RET;键扫描结束,出口状态: (A)=键号
NEXT: INC R4;列号加1
MOV A,R2;判断两列扫描完了吗
JNB ACC.1,KND;两列扫描完,返回
RL A;未扫描完,扫描字左移一位
MOV R2,A;扫描字入R2
AJMP LK1;转扫下一列
KND: AJMP KEY
KS: MOV P1,#0FCH;全扫描字送P1口
MOV P0, #0FFH
MOV A,P0;读入P0口行状态
CPL A;取正逻辑,高电平表示有键按下
ANL A,#03H;保留P0口低2位(屏蔽高6位)
RET;出口状态: (A)≠0时有键按下
T10 ms:MOV R7,#10H;延迟10 ms子程序
TS1: MOV R6,#0FFH
TS2: DJNZ R6,TS2
DJNZR7,TS1
RET
17.首先判别键盘中有无键按下,由单片机I/O口向键盘送(输出)全扫描字,然后读入(输入)列线状态来判断。方法是:向行线(图中水平线)输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根列线电平被拉至低电平,从而使列输入不全为1。
判断键盘中哪一个键
您可能关注的文档
最近下载
- 2024-2030年中国人才招聘行业运营模式及发展规划分析报告.docx
- 2022-2023学年山东省青岛市高一(上)期末化学试卷(含解析).pdf VIP
- 2024阜阳市公安局招聘警务辅助人员历年考试试题.docx VIP
- 2024年内部审计工作计划范本(6篇) .pdf VIP
- 李光浦-郑氏星案新诠.doc
- 绵阳东辰5升6考试题及答案.docx
- 中华人民共和国爱国主义教育法的精神.doc VIP
- 宣传品印刷工作(服务)方案的先进性、创新性-技术、经济、质量指标-风险分析等.docx VIP
- 中华人民共和国爱国主义教育法主题班会教案.docx VIP
- JTT 1180.10-2018 交通运输企业安全生产标准化建设基本规范第10部分:水路危险货物运输.pdf
文档评论(0)