标题: 程序没问题.仿真老出错.哪位大神能帮忙改一下 [打印本页]
作者: 1003 时间: 2016-6-1 17:05
标题: 程序没问题.仿真老出错.哪位大神能帮忙改一下
本帖最后由 1003 于 2016-6-1 17:09 编辑
[attach]28010[/attach]
ORG 0000H
JMP START1 ;
ORG 000BH ; 定时器/计数器0溢出中断
JMP TIM0 ; 转中断程序
START1: MOV TMOD,#01H; 设定定时器0工作方式1
MOV TH0 , #HIGH(65536-50000); 设定初值
MOV TL0,#LOW(65536-50000);
SETB TR0; 启动定时器0
MOV IE,#82H; 定时器0开放中断
MOV 24H,#0FFH;
ANL P1,#00H;
MOV R0,#14; 延时
START: MOVX @R0,A; 启动A/D转换
WAIT: JNB P2.1,SET0; 检测温度输入
JB P2.0,ADC; 检测转换是否完成
JMP WAIT
ADC: MOVX A,@R0; 将转换好的值送入A
LCALL L1;
LCALL DISP;
JMP START
L1: CLR C; 清0
MOV 20H,#00H;
MOV 21H,#00H;
MOV R3,#08H; 显示位数
NEXT: RLC A; 将A的内容和Cy左移一位,显示准备
MOV R2,A;
MOV A,20H;
ADDC A,20H
DA A; 对A进行十进制调整
MOV 20H,A;
MOV A,21H;
ADDC A,21H
MOV 21H,A;
MOV A,R2;
DJNZ R2,NEXT; R2-1≠0 循环计数
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; 消除按键抖动
A2: CJNE R0,#0FFH,A1;
MOV R0,#14; 延时
A1: MOV A,R0;
MOV DPTR,#TABLE ; 数据指针指向表头
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; 有按键按下 转SET1
DJNZ R6,D1
DJNZ R7,D2
DJNZ R5,D4
JMP START;
SET1: LCALL DELAY;
JNB P2.1,$; 等待按键操作
LCALL DELAY; 消除抖动
DEC R0;
JMP A2;
TIM0: PUSH ACC; 保护现场
PUSH PSW
MOV TH0,#HIGH (65536 - 50000); 重装定时初值
MOV TL0,#LOW (65536 -50000)
CLR C ; 进位标志清0
MOV A,24H; 比较温度
SUBB A,23H;
JNC OFF;
CLR C;
MOV A,24H;
SUBB A,23H;
JNC OFF;
CLR P3.0; 压缩机停止工作
RETURN: POP PSW
POP ACC
RETI ; 中断返回
OFF: SETB P3.0;驱动 压缩机开始工作
JMP RETURN
DELAY: MOV R7,#60; 延时程序
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 时间: 2016-6-1 21:30
本帖最后由 ahshmj 于 2016-6-1 21:31 编辑
“ MOV R0,#14; 延时
START: MOVX @R0,A; 启动A/D转换 ”
外部地址是8位? 图中没看到AD转换的地址是14(000EH)。
AD转换是什么芯片?图中看不清楚。怎么看这有一个好像是DS18b20的?
你注释的 “延时”也不对,根据下面一句,应该是地址。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |