No.27463 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2003/4/25 22:26:15 发贴者IP:61.164.7.37 标题:guest:键盘程序请教? 摘要:No.27463键盘程序请教? 现在要在P1口接一八位拔动开关,要求相应位拔则延时在原(10秒)的基础上增加或减少延时时间,P1。0——P1。3拔上则为增加时间,P1。4——P1。7拔上为减少时间,思路为有拔上则相应位放一个十进制数1,然后高四和低四比较,是增加的多还是减少的多,再和10比较,最后结果放R5,子程序是一个1秒的延时程序,延时是看R5里是多少,决定循环多少次。自己编的程序如下,但有很多错,小弟也是第一次学,请高手指教,谢谢 KEY: MOV P1, #0FFH ;置输入状态 MOV A, P1 ;读 CPL A ;取反 ANL A, #0FH ;屏蔽高四位 JZ KL LCALL DELAY ;调用延时去抖动 JB P1.0, KEY0 ;有键按下则执行相应命令 K1: JB P1.1, KEY1 K2: JB P1.2, KEY2 K3: JB P1.3, KEY3 AJMP KL KEY0:MOV 30H, #01 ;有键按下相应位加1 AJMP K1 KEY1:MOV 31H, #01 AJMP K2 KEY2:MOV 32H, #01 AJMP K3 KEY3:MOV 33H, #01 MOV A, #00H MOV A, #30H ADD A, #31H ADD A, #32H ADD A, #33H MOV R4, A ;加数放R4 AJMP KL KL: MOV A, P1 CPL A SWAP A ;高低四位交换 ANL A, ......
>>返回讨论的主题
|
老古网执行:16毫秒 最大:78531毫秒 查询6次
|
|