网站大量收购闲置独家精品文档,联系QQ:2885784924

法度模范.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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。 判断键盘中哪一个键

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档