標(biāo)題: 程序沒問題.仿真老出錯(cuò).哪位大神能幫忙改一下 [打印本頁]
作者: 1003 時(shí)間: 2016-6-1 17:05
標(biāo)題: 程序沒問題.仿真老出錯(cuò).哪位大神能幫忙改一下
本帖最后由 1003 于 2016-6-1 17:09 編輯
[attach]28010[/attach]
89176109.png (43.11 KB, 下載次數(shù): 126)
下載附件
2016-6-1 17:09 上傳
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-1≠0 循環(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 |