標(biāo)題: 程序沒問題.仿真老出錯(cuò).哪位大神能幫忙改一下 [打印本頁]

作者: 1003    時(shí)間: 2016-6-1 17:05
標(biāo)題: 程序沒問題.仿真老出錯(cuò).哪位大神能幫忙改一下
本帖最后由 1003 于 2016-6-1 17:09 編輯

[attach]28010[/attach]
  ORG      0000H
JMP       START1 ;
        ORG      000BH ;                       定時(shí)器/計(jì)數(shù)器0溢出中斷
JMP       TIM0 ;                           轉(zhuǎn)中斷程序
START1: MOV      TMOD,#01H;                           設(shè)定定時(shí)器0工作方式1
        MOV      TH0 , #HIGH(65536-50000);         設(shè)定初值
        MOV      TL0,#LOW(65536-50000);
        SETB      TR0;                         啟動(dòng)定時(shí)器0
        MOV      IE,#82H;                      定時(shí)器0開放中斷
        MOV      24H,#0FFH;
        ANL       P1,#00H;
        MOV      R0,#14;                           延時(shí)
START:  MOVX    @R0,A;                          啟動(dòng)A/D轉(zhuǎn)換
WAIT:   JNB       P2.1,SET0;                       檢測溫度輸入
         JB        P2.0,ADC;                     檢測轉(zhuǎn)換是否完成
         JMP       WAIT
ADC:    MOVX    A,@R0;                       將轉(zhuǎn)換好的值送入A
LCALL  L1;
LCALL  DISP;
JMP     START
L1:      CLR       C;                              0
         MOV      20H,#00H;
         MOV      21H,#00H;
         MOV      R3,#08H;                        顯示位數(shù)
NEXT:   RLC       A;                          A的內(nèi)容和Cy左移一位,顯示準(zhǔn)備
         MOV      R2,A;
         MOV      A,20H;
         ADDC     A,20H
         DA        A;                              對(duì)A進(jìn)行十進(jìn)制調(diào)整
         MOV      20H,A;
         MOV      A,21H;
         ADDC     A,21H
         MOV      21H,A;
         MOV      A,R2;
         DJNZ      R2,NEXT;                    R2-10 循環(huán)計(jì)數(shù)
L2:      MOV      A,20H
         ADD       A,20H;
         DA        A;
         MOV      20H,A;
             MOV      A,21H;
             ADDC     A,21H;
             DA        A;
             MOV      21H,A;
         RET
DISP:    MOV       A,20H;                           顯示程序
         ANL        A,#0F0H
         SWAP       A;                              交換高低位
         MOV       22H,A
         MOV       A,21H;
         ANL       A,#0FFH
         SWAP       A ;
         ORL        A,22H;
         MOV       23H,A
         MOV       P1,A;
         MOV       R7,#0FFH;
         DJNZ       R7,$;                          是否顯示完
         RET
SET0:    LCALL     DELAY;
         JNB        P2.1,$;                      等待按鍵操作
         LCALL       DELAY;                      消除按鍵抖動(dòng)
A2:      CJNE       R0,#0FFH,A1;               
         MOV        R0,#14;                       延時(shí)
A1:      MOV        A,R0;
         MOV        DPTR,#TABLE ;                數(shù)據(jù)指針指向表頭
         MOVC      A,@A+DPTR;                  查表
         MOV        P1,A;
         MOV        24H,A;
         MOV        R5,#4FH;
D4:      MOV        R7,#0FFH
D2:      MOV        R6,#0FFH
D1:      JNB         P2.1,SET1;                    有按鍵按下  轉(zhuǎn)SET1
         DJNZ        R6,D1
         DJNZ        R7,D2
         DJNZ        R5,D4
         JMP         START;                  
SET1:    LCALL      DELAY;
         JNB         P2.1,$;                        等待按鍵操作
         LCALL      DELAY;                       消除抖動(dòng)
         DEC         R0;                           
         JMP         A2;
TIM0:    PUSH       ACC;                         保護(hù)現(xiàn)場
         PUSH        PSW
         MOV        TH0,#HIGH (65536 - 50000);      重裝定時(shí)初值
         MOV        TL0,#LOW (65536 -50000)
         CLR         C ;                           進(jìn)位標(biāo)志清0
         MOV        A,24H;                        比較溫度
         SUBB       A,23H;
         JNC         OFF;
         CLR         C;
         MOV        A,24H;
         SUBB       A,23H;
         JNC        OFF;
         CLR        P3.0;                          壓縮機(jī)停止工作
RETURN: POP        PSW
         POP         ACC
         RETI ;                                     中斷返回
OFF:     SETB       P3.0;驅(qū)動(dòng)                      壓縮機(jī)開始工作
         JMP         RETURN
DELAY:  MOV        R7,#60;                        延時(shí)程序
D3:      MOV       R6,#248
         DJNZ       R6,$
         DJNZ       R7,D3
         RET
TABLE:  DB          20H,21H,22H,23H,24H;         
         DB         25H,26H,27H,28H,29H
         DB         30H,31H,32H,33H,34H
         END


作者: ahshmj    時(shí)間: 2016-6-1 21:30
本帖最后由 ahshmj 于 2016-6-1 21:31 編輯

“        MOV      R0,#14;                           延時(shí)
START:  MOVX    @R0,A;                          啟動(dòng)A/D轉(zhuǎn)換  ”

外部地址是8位?  圖中沒看到AD轉(zhuǎn)換的地址是14(000EH)。

AD轉(zhuǎn)換是什么芯片?圖中看不清楚。怎么看這有一個(gè)好像是DS18b20的?
你注釋的 “延時(shí)”也不對(duì),根據(jù)下面一句,應(yīng)該是地址。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1