No.31957 作者:gmf2008 邮件:gmf2008@mail2.nyist.net ID:93 登陆:68次 文章数:24篇 最后登陆IP:220.161.81.79 最后登陆:2007/1/13 9:11:56 注册:2003/3/11 18:18:00 财富:180 发帖时间:2003/5/25 16:12:21 发贴者IP:202.102.240.78 标题:gmf2008:请教高手:程序转移问题。 摘要:No.31957请教高手:程序转移问题。 各位论坛好友: 我近日写了一个用四块74LS164作串行显示和键盘的程序,但程序总是不能按照规定的方向转移,或者是触发中断信号不正确,K3,K4,K5,的中断触发信号为脉冲,本应该是低电平,我实在不知程序错在那里. 硬件如下: 四块74LS164串级连接在AT89C51的串行口上,第一块作为键盘第二块到第四块控制四位LED数码管,在初始化时把第一块输出全部置为0,从单片机的INT1引出一条线通过上接电阻接到5V电源上,在这条线上接上五个开关分别接到第一块164的6,10,11,12,13,脚上,通过中断判断是哪个键按下.程序如下:;20H STOP AND RUN KEY: PUSH ACC PUSH PSW PUSH B CLR EA SETB C ACALL D10MS ACALL D10MS JB P3.3,EXIT MOV 22H,#00H MOV 23H,#0F7H MOV R7,#05H KJ_LP: ACALL DISPLAY INC 22H JB P3.3,NEXT SJMP KPOP NEXT: MOV A,23H RLC A MOV 23H,A DJNZ R7,KJ_LP SJMP EXIT KPOP: JNB P3.3,$ MOV A,22H K1: CJNE A,#01H,K2 ACALL K1P SJMP EXIT K2: CJNE A,#02H,K3 ACALL K2P SJMP EXIT K3: CJNE A,#03H,K4 ACALL K3P SJMP EXIT K4: CJNE A,#04H,K5 ACALL K4P SJMP EXIT K5:CJNE A,#05H,EXIT ACALL K5P SJMP EXIT ;K1: MOV 23H,#0F7H ; ACALL DISPLAY ; JB P3.3,K2 ; ACALL D10MS ; ACALL D10MS ; JB P3.3,K2 ; ACALL K1P;STOP AND RUN ; SJMP EXIT ;K2: MOV 23H,#0EFH ; ACALL DISPLAY ; JB P3.3,K3 ; ACALL D10MS ; ACALL D10MS ; JB P3.3,K3 ; ACALL K2P;ADD FREUQENCY ; SJMP EXIT ;K3: MOV 23H,#0DFH ; ACALL DISPLAY ; JB P3.3,K4 ; ACALL D10MS ; ACALL D10MS ; JB P3.3,K4 ; ACALL K3P;DEC FREUQENCY ; SJMP EXIT ;K4: MOV 23H,#0BFH ; ACALL DISPLAY ; JB P3.3,K5 ; ACALL D10MS ; ACALL D10MS ; JB P3.3,K5 ; ACALL K4P;VFLINE CHOICE ; SJMP EXIT ;K5: MOV 23H,#7FH ; ACALL DISPLAY ; JB P3.3,EXIT ; ACALL D10MS ; ACALL D10MS ; JB P3.3,EXIT ; ACALL K5P;ZHEN FAN ZHUAN EXIT: ; ACALL SPEED MOV 23H,#00H ACALL DISPLAY SETB EA POP B POP PSW POP ACC RETI ;-----------K1P------------- ;STOP AND RUN K1P: JNB P3.3,$ CPL 20H.1 ;ACALL SPEED RET ;------------K2P-------------- ;ADD FREQUENCY K2P: JNB P3.3,$ MOV A,KEY_BUF CJNE A,#3CH,K2NXT SJMP K2EXT K2NXT: INC KEY_BUF MOV A,KEY_BUF MOV B,#0AH DIV AB SWAP A ORL A,B MOV LED21,A ;DISPLAY ......
>>返回讨论的主题
|