找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6333|回復(fù): 6
收起左側(cè)

[緊急求助]大家?guī)兔匆欢纬绦?/span>

[復(fù)制鏈接]
ID:16658 發(fā)表于 2009-8-29 09:06 | 顯示全部樓層 |閱讀模式
大家看一下這個(gè)程序,我想讓單片機(jī)顯示RIGHT,但是一直顯示ERROR:

      顯示子程序DISPLAY是正確的,大家不用看了,就是比較密碼子程序TEST的問(wèn)題?

我測(cè)試時(shí)把最后三行改為 :R:      SETB MMRE
                                            RET
                                   END  
顯示RIGHT,這時(shí)程序的執(zhí)行流程與原先相同(不關(guān)程序邏輯正誤問(wèn)題)。




程序:
             MMRE    EQU 00H  ;密碼正確與否標(biāo)志,用位尋址區(qū)第一位為標(biāo)志                  

             ORG 0050H
TABLE0: DB 79H,77H,77H,3FH,77H                        ;顯示:ERROR
TABLE1: DB 77H,30H,7DH,76H,02H                       ;顯示:RIGHT
TABLE2: DB 07H,0BH,0FH,13H,17H,1BH,1FH,23H    ;密碼:1 2 3 4 5 6 7 8

;-------------------------------主程序入口-------------------------------------
             ORG 0000H
             LJMP MAIN

             ORG 0100H
MAIN:       
             MOV 30H,#07H       ;用八字節(jié)存儲(chǔ)正確的密碼
             MOV 31H,#0BH
             MOV 32H,#0FH
             MOV 33H,#13H
             MOV 34H,#17H
             MOV 35H,#1BH
             MOV 36H,#1FH
             MOV 37H,#23H

             LCALL TEST                ;就這個(gè)比較密碼子程序的問(wèn)題?

             MOV C,MMRE               ;根據(jù)標(biāo)志位選擇不同的顯示內(nèi)容
             JC M2
             MOV DPTR,#TABLE0    ;顯示:ERROR
             SJMP M3
M2:        MOV DPTR,#TABLE1    ;顯示:RIGHT
M3:       MOV R3,#5
            LCALL DISPLAY             ;調(diào)用顯示子程序,循環(huán)
            LJMP MAIN    

;--------------------------------顯示子程序------------------------------------
DISPLAY:     MOV P2,#0            ;清0復(fù)位
                  ANL P1,#0F8H        ;用與保護(hù)P1口高5位不受影響,將低三位清0,
                                              ;選擇第一個(gè)數(shù)碼管
                   MOV R4,#0
L2:              MOV A,R4
                   MOVC A,@A+DPTR        ;用查表法得到A對(duì)應(yīng)在表中的段值
                   MOV P2,A            ;輸出顯示
                   LCALL DELAY0        ;加入延時(shí),使每位顯示保持一段時(shí)間
                   MOV P2,#0            ;延時(shí)過(guò)后,清0,為下一位顯示做準(zhǔn)備    
                   INC R4                ;移到下一個(gè)數(shù)據(jù)
                   DJNZ R3,L3            ;顯示完指定個(gè)數(shù)返回,否則進(jìn)入下一個(gè)顯示
                   RET
L3:              INC P1                ;選擇下一位數(shù)碼管
                   SJMP L2

;---------------------------------延時(shí)子程序-----------------------------------
DELAY0:         MOV R5,#20
                     DJNZ R5,$
                     RET
    
;----------------------------測(cè)試密碼正確與否子程序----------------------------
TEST:        MOV R0,#30H
                 MOV DPTR,#TABLE2
                 MOV R2,#0
COMP:        MOV A,R2
                 MOVC A,@A+DPTR
                 MOV 0FFH,A
                 MOV A,@R0
                 CJNE A,0FFH,R
                 INC R0
                 INC R2
                 CJNE R0,#38H,COMP
                 SETB MMRE
R:              RET

END

/********************************** END OF FILE ******************************/    

回復(fù)

使用道具 舉報(bào)

ID:16658 發(fā)表于 2009-8-29 09:11 | 顯示全部樓層
 就是最后這一段程序:
TEST:        MOV R0,#30H
                 MOV DPTR,#TABLE2
                 MOV R2,#0
COMP:        MOV A,R2
                 MOVC A,@A+DPTR
                 MOV 0FFH,A
                 MOV A,@R0
                 CJNE A,0FFH,R
                 INC R0
                 INC R2
                 CJNE R0,#38H,COMP
                 SETB MMRE
R:              RET

我調(diào)試時(shí)也走到 SETB MMRE ,如果在這個(gè)子程序的其它地方 寫上 SETB MMRE 顯示:REIGHT,但是源程序執(zhí)行了 SETB MMRE 但是現(xiàn)實(shí):ERROR?
回復(fù)

使用道具 舉報(bào)

ID:14855 發(fā)表于 2009-8-29 17:04 | 顯示全部樓層
CJNE R0,#38H,COMP

你去把書看下,然后把CJNE這個(gè)指令的含義好好的理解下。希望你能夠深刻的理解掉它。
回復(fù)

使用道具 舉報(bào)

ID:14855 發(fā)表于 2009-8-29 17:04 | 顯示全部樓層
ret是結(jié)束,你還要檢查SETB MMRE這個(gè)指令是為了什么服務(wù)的。
回復(fù)

使用道具 舉報(bào)

ID:15306 發(fā)表于 2009-8-29 21:01 | 顯示全部樓層
                MOV R2,#0
COMP:        MOV A,R2
                 MOVC A,@A+DPTR


A中為顯示內(nèi)容,根據(jù)你的語(yǔ)句,A中的內(nèi)容始終為0;
回復(fù)

使用道具 舉報(bào)

ID:14095 發(fā)表于 2009-10-26 20:14 | 顯示全部樓層

好好看書

回復(fù)

使用道具 舉報(bào)

ID:14095 發(fā)表于 2009-10-26 20:14 | 顯示全部樓層
我也不會(huì)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表