No.99903 作者:twinkle 邮件:twinklecai@gmail.com ID:64112 登陆:1次 文章数:1篇 最后登陆IP:222.200.111.230 最后登陆:2006/11/25 0:26:02 注册:2006/11/25 0:22:13 财富:105 发帖时间:2006/11/25 0:26:02 发贴者IP:222.200.111.230 标题:twinkle:才学单片机,问一个键盘与单片机的连接的问题 摘要:No.99903才学单片机,问一个键盘与单片机的连接的问题 UpDown EQU 00H ;上下行标志 StartEnd EQU 01H ;起动及停止标志 LAMPCODE EQU 21H ;存放流动的数据代码 ORG 0000H AJMP MAIN ORG 30H MAIN: MOV SP,#5FH MOV P1,#0FFH CLR UpDown ;启动时处于向上的状态 CLR StartEnd ;启动时处于停止状态 MOV LAMPCODE,#0FEH ;单灯流动的代码 LOOP: ACALL KEY ;调用键盘程序 JNB F0,LNEXT ;如果无键按下,则继续 ACALL KEYPROC ;否则调用键盘处理程序 LNEXT: ACALL LAMP ;调用灯显示程序 AJMP LOOP ;反复循环,主程序到此结束 ;--------------------------------------- DELAY: MOV R7,#100 D1: MOV R6,#100 DJNZ R6,$ DJNZ R7,D1 RET ;----------------------------------------延时程序,键盘处理中调用 KEYPROC: MOV A,B ;从B寄存器中获取键值 JB ACC.2,KeyStart ;分析键的代码,某位被按下,则该位为1(因为在键盘程序中已取反) JB ACC.3,KeyOver JB ACC.4,KeyUp JB ACC.5,KeyDown AJMP KEY_RET KeyStart: SETB StartEnd ;第一个键按下后的处理 AJMP KEY_RET KeyOver: CLR StartEnd ;第二个键按下后的处理 AJMP KEY_RET KeyUp: SETB UpDown ;第三个键按下后的处理 AJMP KEY_RET KeyDown: CLR UpDown ;第四个键按下后的处理 KEY_RET:RET KEY: CLR F0 ;清F0,表示无键按下。 ORL P3,#00111100B ;将P3口的接有键的四位置1(这里怎么这样?不是所有的p3接按键的都置1了吗?那按与没有按不是都一样吗?) MOV A,P ......
>>返回讨论的主题
|