找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3640|回复: 3
打印 上一主题 下一主题
收起左侧

[求助]关于keil 程序错误问题,求大神!

[复制链接]
跳转到指定楼层
楼主
ID:45555 发表于 2012-10-17 13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

      ORG  00H
      MOV  R7,#00H              ;延时
      DJNZ R7,$
      ;***************设置内定密码********************       
      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行已经扫描完,回到第一行从新开始扫描
;*************************************************************
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          ;数据指针指到TABLE
      MOVC A,@A+DPTR            ;至TABLE取码
      MOV  R7,A                 ;取到按键值暂存入R7
      XRL  A,#0AH               ;是否按"*"
      JZ   SET0                 ;是则设定新密码
      MOV  A,R7                 ;载入按键值
      XRL  A,#0BH               ;是否按"#"
      JZ   COMP                 ;是则去比较密码
      MOV  A,R7                 ;不是则载入按键值
      XCH  A,40H                ;现按键值存入(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                   ;不同则报警
      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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:45555 发表于 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

 

这是问题,怎么解决?????谢谢了!!!!

回复

使用道具 举报

板凳
ID:7485 发表于 2012-10-18 17:12 | 只看该作者

你试一试这个。是不是看起来和你的一模一样?

 

            ORG  00H
            MOV  R7,#00H              ;延时
            DJNZ R7,$
            ;***************设置内定密码********************       
            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行已经扫描完,回到第一行从新开始扫描
;*************************************************************
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          ;数据指针指到TABLE
            MOVC A,@A+DPTR            ;至TABLE取码
            MOV  R7,A                 ;取到按键值暂存入R7
            XRL  A,#0AH               ;是否按"*"
            JZ   SET0                 ;是则设定新密码
            MOV  A,R7                 ;载入按键值
            XRL  A,#0BH               ;是否按"#"
            JZ   COMP                 ;是则去比较密码
            MOV  A,R7                 ;不是则载入按键值
            XCH  A,40H                ;现按键值存入(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                   ;不同则报警
            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

 

 

不知道你怎么输进去这么多的全角空格,keil不认,所以出错。

回复

使用道具 举报

地板
ID:7485 发表于 2012-10-18 17:13 | 只看该作者
程序编译能通过(试过了),是否能达到你的预期目的,就不知道了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表