找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3960|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

[求助]關(guān)于keil 程序錯誤問題,求大神!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:45555 發(fā)表于 2012-10-17 13:41 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式

      ORG  00H
      MOV  R7,#00H              ;延時
      DJNZ R7,$
      ;***************設(shè)置內(nèi)定密碼********************       
      MOV  35H,#06
      MOV  34H,#06
      MOV  33H,#06
      MOV  32H,#06
      MOV  31H,#06
      MOV  30H,#06
;***************************************************************
START:   MOV  P0,#0FFH            ;P0口都置1
      MOV  45H,#09             ;清除存放地址40H-45H的地址
      MOV 44H,#08
      MOV  43H,#07
      MOV  42H,#06
      MOV  41H,#05
      MOV  40H,#04
;***************************************************************
L2:      MOV  P0,#0FFH            ;P0口都置1
      MOV  R3,#0EFH            ;掃描指針初值(P14=0)
      MOV  R1,#00H             ;鍵盤取碼指針
L3:      MOV  A,R3                ;掃描指針載入累加器
      MOV  P1,A                ;輸入至P1掃描
      MOV  A,P1                ;讀入P1值
      MOV  R4,A                ;存入R4,以判斷按鈕是否放開?
      SETB C                   ;C=1
      MOV  R5,#03H             ;掃描P10-P12
L4:      RRC  A
      JNC  KEYIN               ;C=0則有鍵按下
      INC  R1                  ;無鍵按下則指針加1
      DJNZ R5,L4               ;三列掃描完后掃描下一行
      MOV  A,R3                ;載入掃描指針
      SETB C                   ;C=1
      RLC  A                   ;掃描下一行
      MOV  R3,A                ;存入掃描指針寄存器
      JC   L3                  ;C=1則4行未掃描完
      JMP  L2               ;C=0則4行已經(jīng)掃描完,回到第一行從新開始掃描
;*************************************************************
KEYIN:   MOV  R7,#10              ;消除抖動
D1:      MOV  R6,#248
      DJNZ R6,$
      DJNZ R7,D1
D2:      MOV  A,P1
      XRL  A,R4                 ;按鈕放開否?
      JZ   D2                   ;A=R4則未放開,等待
      MOV  A,R1                 ;按鍵放開了,載入按鍵指針
      MOV  DPTR,#TABLE          ;數(shù)據(jù)指針指到TABLE
      MOVC A,@A+DPTR            ;至TABLE取碼
      MOV  R7,A                 ;取到按鍵值暫存入R7
      XRL  A,#0AH               ;是否按"*"
      JZ   SET0                 ;是則設(shè)定新密碼
      MOV  A,R7                 ;載入按鍵值
      XRL  A,#0BH               ;是否按"#"
      JZ   COMP                 ;是則去比較密碼
      MOV  A,R7                 ;不是則載入按鍵值
      XCH  A,40H                ;現(xiàn)按鍵值存入(40H)
      XCH  A,41H                ;舊(40H)值存入 (41H)
      XCH  A,42H                ;舊(41H)值存入 (42H)
      XCH  A,43H                ;舊(42H)值存入 (43H)
      XCH  A,44H                ;舊(43H)值存入 (44H)
      XCH  A,45H                ;舊(44H)值存入 (45H)
      JMP  L2
;********************************************************************
SET0:    MOV  R2,#06H              ;6個密碼
      MOV  R0,#40H              ;按鍵顯示地址
  MOV  R1,#30H              ;密碼存放地址
E1:      MOV  A,@R0                ;40H存入30H······45H存入35H
      XCH  A,@R1
      INC  R0
      INC  R1
      DJNZ R2,E1
      CALL DELAY                ;延時
E2:   JMP START                 ;************************************
;********************************************************************
COMP:    MOV  R1,#45H              ;按鍵顯示地址
      MOV  R0,#35H              ;密碼存放地址
      MOV  R2,#06H              ;6個碼
C1:      MOV  A,@R1                ;按鍵值與密碼值比較
      XRL  A,@R0
      JNZ  C3                   ;不同則報(bào)警
      DEC  R1                   ;相同則比較下一個碼
      DEC  R0
      DJNZ R2,C1
      CLR  P0.0                 ;令電鎖動作
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      JMP  L2
C3:      CLR  P0.1
      CLR  P0.2
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      CALL DELAY
      JMP  L2
;*********************    延時時間    **************************
DELAY:   MOV  R7,#248
D3:      MOV  R6,#248
      DJNZ R6,$
      DJNZ R7,D3
      RET

      ORG  100H
TABLE:   DB   01H,02H,03H      ;鍵盤值
      DB   04H,05H,06H
      DB   07H,08H,09H
      DB   0AH,00H,0BH
      END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:45555 發(fā)表于 2012-10-17 13:42 | 只看該作者

20.s(1): error A9: SYNTAX ERROR

20.s(1): error A3: ILLEGAL CHARACTER

20.s(1): error A3: ILLEGAL CHARACTER

20.s(1): error A3: ILLEGAL CHARACTER

20.s(1): error A3: ILLEGAL CHARACTER

Target not created

 

這是問題,怎么解決?????謝謝了!。。

回復(fù)

使用道具 舉報(bào)

板凳
ID:7485 發(fā)表于 2012-10-18 17:12 | 只看該作者

你試一試這個。是不是看起來和你的一模一樣?

 

            ORG  00H
            MOV  R7,#00H              ;延時
            DJNZ R7,$
            ;***************設(shè)置內(nèi)定密碼********************       
            MOV  35H,#06
            MOV  34H,#06
            MOV  33H,#06
            MOV  32H,#06
            MOV  31H,#06
            MOV  30H,#06
;***************************************************************
START:   MOV  P0,#0FFH            ;P0口都置1
            MOV  45H,#09             ;清除存放地址40H-45H的地址
            MOV 44H,#08
            MOV  43H,#07
            MOV  42H,#06
            MOV  41H,#05
            MOV  40H,#04
;***************************************************************
L2:      MOV  P0,#0FFH            ;P0口都置1
            MOV  R3,#0EFH            ;掃描指針初值(P14=0)
            MOV  R1,#00H             ;鍵盤取碼指針
L3:      MOV  A,R3                ;掃描指針載入累加器
            MOV  P1,A                ;輸入至P1掃描
            MOV  A,P1                ;讀入P1值
            MOV  R4,A                ;存入R4,以判斷按鈕是否放開?
            SETB C                   ;C=1
            MOV  R5,#03H             ;掃描P10-P12
L4:      RRC  A
            JNC  KEYIN               ;C=0則有鍵按下
            INC  R1                  ;無鍵按下則指針加1
            DJNZ R5,L4               ;三列掃描完后掃描下一行
            MOV  A,R3                ;載入掃描指針
            SETB C                   ;C=1
            RLC  A                   ;掃描下一行
            MOV  R3,A                ;存入掃描指針寄存器
            JC   L3                  ;C=1則4行未掃描完
            JMP  L2               ;C=0則4行已經(jīng)掃描完,回到第一行從新開始掃描
;*************************************************************
KEYIN:   MOV  R7,#10              ;消除抖動
D1:      MOV  R6,#248
            DJNZ R6,$
            DJNZ R7,D1
D2:      MOV  A,P1
            XRL  A,R4                 ;按鈕放開否?
            JZ   D2                   ;A=R4則未放開,等待
            MOV  A,R1                 ;按鍵放開了,載入按鍵指針
            MOV  DPTR,#TABLE          ;數(shù)據(jù)指針指到TABLE
            MOVC A,@A+DPTR            ;至TABLE取碼
            MOV  R7,A                 ;取到按鍵值暫存入R7
            XRL  A,#0AH               ;是否按"*"
            JZ   SET0                 ;是則設(shè)定新密碼
            MOV  A,R7                 ;載入按鍵值
            XRL  A,#0BH               ;是否按"#"
            JZ   COMP                 ;是則去比較密碼
            MOV  A,R7                 ;不是則載入按鍵值
            XCH  A,40H                ;現(xiàn)按鍵值存入(40H)
            XCH  A,41H                ;舊(40H)值存入 (41H)
            XCH  A,42H                ;舊(41H)值存入 (42H)
            XCH  A,43H                ;舊(42H)值存入 (43H)
            XCH  A,44H                ;舊(43H)值存入 (44H)
            XCH  A,45H                ;舊(44H)值存入 (45H)
            JMP  L2
;********************************************************************
SET0:    MOV  R2,#06H              ;6個密碼
            MOV  R0,#40H              ;按鍵顯示地址
           MOV  R1,#30H              ;密碼存放地址
E1:      MOV  A,@R0                ;40H存入30H······45H存入35H
            XCH  A,@R1
            INC  R0
            INC  R1
            DJNZ R2,E1
            CALL DELAY                ;延時
E2:   JMP START                 ;************************************
;********************************************************************
COMP:    MOV  R1,#45H              ;按鍵顯示地址
            MOV  R0,#35H              ;密碼存放地址
            MOV  R2,#06H              ;6個碼
C1:      MOV  A,@R1                ;按鍵值與密碼值比較
            XRL  A,@R0
            JNZ  C3                   ;不同則報(bào)警
            DEC  R1                   ;相同則比較下一個碼
            DEC  R0
            DJNZ R2,C1
            CLR  P0.0                 ;令電鎖動作
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            JMP  L2
C3:      CLR  P0.1
            CLR  P0.2
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            JMP  L2
;*********************    延時時間    **************************
DELAY:   MOV  R7,#248
D3:      MOV  R6,#248
            DJNZ R6,$
            DJNZ R7,D3
            RET

            ORG  100H
TABLE:   DB   01H,02H,03H      ;鍵盤值
            DB   04H,05H,06H
            DB   07H,08H,09H
            DB   0AH,00H,0BH
            END

 

 

不知道你怎么輸進(jìn)去這么多的全角空格,keil不認(rèn),所以出錯。

回復(fù)

使用道具 舉報(bào)

地板
ID:7485 發(fā)表于 2012-10-18 17:13 | 只看該作者
程序編譯能通過(試過了),是否能達(dá)到你的預(yù)期目的,就不知道了。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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