找回密码
 立即注册

QQ登录

只需一步,快速开始

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

error A45: UNDEFINED SYMBOL (PASS-2)一个单片机数码管时钟汇编程序编译错误

[复制链接]
跳转到指定楼层
楼主
ID:519468 发表于 2021-7-3 15:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SECOND EQU 40H;
MINUTE EQU 41H;
HOUR   EQU 42H;
SECONDGEWEI EQU 43H;
SECONDSHIWEI EQU 44H;
MINUTEGEWEI EQU 45H;
MINUTESHIWEI EQU 46H;
HOURGEWEI EQU 47H;
HOURSHIWEI EQU 48H;
           ORG 000H;
           SJMP START;
           ORG 000BH;
           AJMP TIMER0;
           ORG 0030H;

;-----初始化START------
START:MOV SP,#60H;
      MOV SECOND,#0;
      MOV MINUTE,#0;
      MOV HOUR,#12;
      MOV DPTR,#TAB;
      MOV 30H,#0;
      MOV TH0,#3CH;
      MOV TL0,#0B0H;
      MOV TMOD,#00000001B;
      MOV TCON,#00010000B;
      SETB ET0;
      SETB EA;

;-----主程序MAIN------
MAIN:  CALL KEY;
       CALL PROCESS;
       CALL DISPLAY;
       SJMP MAIN;

;-----按键子程序KEY-----
KEY: JNB P1.4,HOURJIA;
     JNB P1.5,HOURJIAN;
     JNB P1.6,MINUTEJIA;
     JNB P1.7,MINUTEJIAN;
FANHUI:RET;
HOURJIA: CALL DELAY;
         JB P1.4,FANHUI;
         JNB P1.4,$;
         INC HOUR;
         RET;
HOURJIAN: CALL DELAY;
          JB P1.5,FANHUI;
          JNB P1.5,$;
          DEC HOUR;
          RET;
MINUTEJIA: CALL DELAY;
           JB P1.6,FANHUI;
           JNB P1.6,$;
           INC MINUTE;
           RET;
MINUTEJIAN: CALL DELAY;
            JB P1.7,FANHUI;
            JNB P1.7,$;
            DEC MINUTE;
            RET;

;-----处理子程序PROCESS-----
PROCESS: MOV A,SECOND;
         MOV B,#10;
         DIV AB;
         MOV SECONDSHIWEI ,A;
         MOV SECONDGEWEI ,B;
         MOV A,MINUTE;
         MOV B,#10;
         DIV AB;
         MOV MINUTESHIWEI ,A;
         MOV MINUTEGEWEI,B;
         MOV A,HOUR;
         MOV B,#10;
         DIV AB;
         MOV HOURSHIWEI ,A;
         MOV HOURGEWEI,B;
         RET;

;-----显示子程序DISPLAY-----
DISPLAY:MOV A, HOURSHIWEI;
         MOVC A,@A+DPTR;
         MOV P0,A;
         CLR P2.7;
         CALL DELAY;
         SETB P2.7;
         MOV A,HOURGEWEI;
         MOVC A,@A+DPTR;
         MOV P0,A;
         CLR P2.6;
         CALL DELAY;
         SETB P2.6;
         MOV P0,#0BFH;
         CLR P2.5;
         CALL DELAY;
         SETB P2.5;
         MOV A, MINUTESHIWEI;
         MOVC A,@A+DPTR;
         MOV P0,A;
         CLR P2.4;
         CALL DELAY;
         SETB P2.4;
         MOV A, MINUTEGEWEI;
         MOVC A,@A+DPTR;
         MOV P0,A;
         CLR P2.3;
         CALL DELAY;
         SETB P2.3;
         MOV P0,#0BFH;
         CLR P2.2;
         CALL DELAY;
         SETB P2.2;
         MOV A, SECONDSHIWEI;
         MOVC A,@A+DPTR;
         MOV P0,A;
         CLR P2.1;
         CALL DELAY;
         SETB P2.1;
         MOV A,SECONDGEWEI;
         MOVC A,@A+DPTR;
         MOV P0,A;
         CLR P2.0;
         CALL DELAY;
         SETB P2.2;
         RET;

;-----中断子程序-----
TIMER0:PUSH A;
        INC 30H;
        MOV A, 30H;
        CJNE A,#20,JIXU;
        MOV 30H,#0;
        INC SECOND;
        MOV A,SECOND;
        CJNE A,#60,JIXU;
        MOV SECOND,#0;
        INC MINUTE;
        MOV A,MINUTE;
        MOV A,#60,JIXU;
        MOV MINUTE,#0;
        INC HOUR;
        MOV A,HOUR;
        CJNE A,#24,JIXU;
        MOV HOUR,#0;
JIXU: POP A;
      MOV TH0,#3CH;
      MOV TL0,#0B0H;   
      RETI;

;-----延时子程序-----
DELAY:MOV R0,#50;
D2:    MOV R1,#10;
D1: DJNZ R1, D1;
    DJNZ R0, D2;
    RET;

;-----显示的段码0-9-----
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H;
     DB 92H,82H,0F8H,80H,90H,0BFH;
     END;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:519468 发表于 2021-7-3 15:37 | 只看该作者
我是一模一样从书本里抄下来的,编译时有一大堆错误,请各位大神看看!
回复

使用道具 举报

板凳
ID:519468 发表于 2021-7-3 15:41 | 只看该作者
HB8W.asm(13): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(21): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(33): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(42): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(47): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(52): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(57): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(82): error A9: SYNTAX ERROR
HB8W.asm(82): error A3: ILLEGAL CHARACTER
HB8W.asm(82): error A3: ILLEGAL CHARACTER
HB8W.asm(86): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(92): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(96): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(102): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(108): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(112): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(118): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(124): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(129): error A9: SYNTAX ERROR
HB8W.asm(129): error A3: ILLEGAL CHARACTER
HB8W.asm(129): error A3: ILLEGAL CHARACTER
HB8W.asm(140): error A38: NUMBER OF OPERANDS DOES NOT MATCH INSTRUCTION
HB8W.asm(146): error A22: EXPRESSION TYPE DOES NOT MATCH INSTRUCTION
HB8W.asm(152): error A9: SYNTAX ERROR
HB8W.asm(152): error A3: ILLEGAL CHARACTER
HB8W.asm(152): error A3: ILLEGAL CHARACTER
HB8W.asm(159): error A9: SYNTAX ERROR
HB8W.asm(159): error A3: ILLEGAL CHARACTER
HB8W.asm(159): error A3: ILLEGAL CHARACTER
Target not created.
Build Time Elapsed:  00:00:01
回复

使用道具 举报

地板
ID:123289 发表于 2021-7-3 16:38 | 只看该作者
你现所出错提示的意思翻译一下。
回复

使用道具 举报

5#
ID:914633 发表于 2021-7-3 18:18 | 只看该作者
书上的代码 一般前面章节的函数、定义过的变量它会直接拿过来用 你抄的过程中重新定义函数 定义变量补全代码
回复

使用道具 举报

6#
ID:88256 发表于 2021-7-3 18:44 | 只看该作者
hfgcb 发表于 2021-7-3 15:41
HB8W.asm(13): error A45: UNDEFINED SYMBOL (PASS-2)
HB8W.asm(21): error A45: UNDEFINED SYMBOL (PASS- ...

我可以很负责任的告诉你,你掉坑里了,要学会读懂程序,抄来的更要仔细读懂,你这个程序看似一大堆错误,实际上就两、三种错误,一个是中英文符号的问题,这个要切记,用上中文的符号肯定出错还不好查,这是网上最常见的对付伸手党的招式,比较好的办法就是下载一个KEIL的配色方案,看颜色就知道哪里不对了,剩下的错误很好排查,你自己找吧,对今后排查错误很有帮助。
回复

使用道具 举报

7#
ID:519468 发表于 2021-7-4 17:27 | 只看该作者
谢谢各位回复,出错提示的意思翻译出来,无非是语法错误或是非法字符;但是查不出。改了无效。
回复

使用道具 举报

8#
ID:155507 发表于 2021-7-4 18:33 | 只看该作者
给你改了,对比一下就知道哪里错了。

  1. SECOND       EQU 40H;
  2. MINUTE       EQU 41H;
  3. HOUR         EQU 42H;
  4. SECONDGEWEI  EQU 43H;
  5. SECONDSHIWEI EQU 44H;
  6. MINUTEGEWEI  EQU 45H;
  7. MINUTESHIWEI EQU 46H;
  8. HOURGEWEI    EQU 47H;
  9. HOURSHIWEI   EQU 48H;
  10.              ORG 000H;
  11.            SJMP START ;
  12.            ORG 000BH ;
  13.            AJMP TIMER0
  14.            ORG 0030H ;

  15. ;-----初始化START------
  16. START: MOV SP,#60H;
  17.        MOV SECOND,#0;
  18.       MOV MINUTE,#0;
  19.       MOV HOUR,#12;
  20.       MOV DPTR, #TAB ;
  21.       MOV 30H,#0;
  22.       MOV TH0,#3CH;
  23.       MOV TL0,#0B0H;
  24.       MOV TMOD,#00000001B;
  25.       MOV TCON,#00010000B;
  26.       SETB ET0;
  27.       SETB EA;

  28. ;-----主程序MAIN------
  29. MAIN:  CALL KEY;
  30.        CALL PROCESS;
  31.        CALL DISPLAY;
  32.        SJMP MAIN;

  33. ;-----按键子程序KEY-----
  34. KEY: JNB P1.4,HOURJIA;
  35.      JNB P1.5,HOURJIAN;
  36.      JNB P1.6,MINUTEJIA;
  37.      JNB P1.7,MINUTEJIAN;
  38. FANHUI: RET;
  39. HOURJIA: CALL DELAY;
  40.          JB P1.4,FANHUI;
  41.          JNB P1.4,$;
  42.          INC HOUR;
  43.          RET;
  44. HOURJIAN: CALL DELAY;
  45.           JB P1.5,FANHUI;
  46.           JNB P1.5,$;
  47.           DEC HOUR;
  48.           RET;
  49. MINUTEJIA: CALL DELAY;
  50.            JB P1.6,FANHUI;
  51.            JNB P1.6,$;
  52.            INC MINUTE;
  53.            RET;
  54. MINUTEJIAN: CALL DELAY;
  55.             JB P1.7,FANHUI;
  56.             JNB P1.7,$;
  57.             DEC MINUTE;
  58.             RET;

  59. ;-----处理子程序PROCESS-----
  60. PROCESS: MOV A,SECOND;
  61.          MOV B,#10;
  62.          DIV AB;
  63.          MOV SECONDSHIWEI ,A;
  64.          MOV SECONDGEWEI ,B;
  65.          MOV A,MINUTE;
  66.          MOV B,#10;
  67.          DIV AB;
  68.          MOV MINUTESHIWEI ,A;
  69.          MOV MINUTEGEWEI,B;
  70.          MOV A,HOUR;
  71.          MOV B,#10;
  72.          DIV AB;
  73.          MOV HOURSHIWEI ,A;
  74.          MOV HOURGEWEI,B;
  75.          RET;

  76. ;-----显示子程序DISPLAY-----
  77. DISPLAY: MOV A, HOURSHIWEI;
  78.          MOVC A,@A+DPTR;
  79.          MOV P0,A;
  80.          CLR P2.7;
  81.          CALL DELAY;
  82.          SETB P2.7;
  83.          MOV A,HOURGEWEI;
  84.          MOVC A,@A+DPTR;
  85.          MOV P0,A;
  86.          CLR P2.6;
  87.          CALL DELAY;
  88.          SETB P2.6;
  89.          MOV P0,#0BFH;
  90.          CLR P2.5;
  91.          CALL DELAY;
  92.          SETB P2.5;
  93.          MOV A, MINUTESHIWEI;
  94.          MOVC A,@A+DPTR;
  95.          MOV P0,A;
  96.          CLR P2.4;
  97.          CALL DELAY;
  98.          SETB P2.4;
  99.          MOV A, MINUTEGEWEI;
  100.          MOVC A,@A+DPTR;
  101.          MOV P0,A;
  102.          CLR P2.3;
  103.          CALL DELAY;
  104.          SETB P2.3;
  105.          MOV P0,#0BFH;
  106.          CLR P2.2;
  107.          CALL DELAY;
  108.          SETB P2.2;
  109.          MOV A, SECONDSHIWEI;
  110.          MOVC A,@A+DPTR;
  111.          MOV P0,A;
  112.          CLR P2.1;
  113.          CALL DELAY;
  114.          SETB P2.1;
  115.          MOV A,SECONDGEWEI;
  116.          MOVC A,@A+DPTR;
  117.          MOV P0,A;
  118.          CLR P2.0;
  119.          CALL DELAY;
  120.          SETB P2.2;
  121.          RET;

  122. ;-----中断子程序-----
  123. TIMER0:  PUSH ACC ;
  124.         INC 30H;
  125.         MOV A, 30H;
  126.         CJNE A,#20, JIXU ;
  127.         MOV 30H,#0;
  128.         INC SECOND;
  129.         MOV A,SECOND;
  130.         CJNE A,#60, JIXU;
  131.         MOV SECOND,#0;
  132.         INC MINUTE;
  133.         MOV A,MINUTE;
  134.         MOV A, #60 ;,JIXU;
  135.         MOV MINUTE,#0;
  136.         INC HOUR;
  137.         MOV A,HOUR;
  138.         CJNE A,#24,JIXU;
  139.         MOV HOUR,#0;
  140. JIXU:  POP ACC ;
  141.       MOV TH0,#3CH;
  142.       MOV TL0,#0B0H;   
  143.       RETI;

  144. ;-----延时子程序-----
  145. DELAY: MOV R0,#50;
  146. D2:   MOV R1,#10;
  147. D1: DJNZ R1, D1;
  148.     DJNZ R0, D2;
  149.     RET;

  150. ;-----显示的段码0-9-----
  151. TAB: DB 0C0H,0F9H,0A4H,0B0H,99H;
  152.      DB 92H,82H,0F8H,80H,90H,0BFH;
  153.      END;
  154.          
复制代码
回复

使用道具 举报

9#
ID:88256 发表于 2021-7-6 10:44 | 只看该作者
hfgcb 发表于 2021-7-4 17:27
谢谢各位回复,出错提示的意思翻译出来,无非是语法错误或是非法字符;但是查不出。改了无效。

给你那么明确的回复了,竟然还搞不定,真要有心的话,你在英文输入法下逐字将所有的符号改一遍过去也不要10分钟,更何况中文符号比英文的更粗一点占位更大一点,还是比较直观的,不信你看看1:和1:有什么差别?你能仅仅选中前面的那个:而不连带着:前后的空白部分吗?
再次建议你采用keil的配色方案吧,符号出错你颜色就不一样了 http://www.51hei.com/bbs/search. ... w=keil+%C5%E4%C9%AB
回复

使用道具 举报

10#
ID:844772 发表于 2021-7-6 11:11 | 只看该作者
hhdsdy 发表于 2021-7-6 10:44
给你那么明确的回复了,竟然还搞不定,真要有心的话,你在英文输入法下逐字将所有的符号改一遍过去也不要 ...

是啊,显然好多中文符号。
回复

使用道具 举报

11#
ID:519468 发表于 2021-7-10 12:46 | 只看该作者
angmall 发表于 2021-7-4 18:33
给你改了,对比一下就知道哪里错了。

万分感谢,待我仔细看来!
回复

使用道具 举报

12#
ID:519468 发表于 2021-7-10 12:51 | 只看该作者
多谢各位指点,已经解决了!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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