| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1034 人关注过本帖
标题:总是出错,高手指点指点...
只看楼主 加入收藏
sweetno2
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-3
收藏
 问题点数:0 回复次数:5 
总是出错,高手指点指点...
这是一个温度报警器,我想改他的上限为30,下限为20.
我是把MOV H_TEMP,#153   改为:#30
      MOV L_TEMP,#77    改为:#20
但总是出错,高手指点指点...


LED_0 EQU 30H
LED_1 EQU 31H
LED_2 EQU 32H
ADC EQU 35H
TCNTA EQU 36H
TCNTB EQU 37H
H_TEMP EQU 38H ;温度上限
L_TEMP EQU 39H ;温度下限
FLAG BIT 00H
H_ALM BIT P3.0
L_ALM BIT P3.1
SOUND BIT P3.7
CLOCK BIT P2.4
ST BIT P2.5
EOC BIT P2.6
OE BIT P2.7

ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
ORG 1BH
LJMP INT_T1

START: MOV LED_0,#00H
MOV LED_1,#00H
MOV LED_2,#00H
MOV DPTR,#TABLE
MOV H_TEMP,#153
MOV L_TEMP,#77
MOV TMOD,#12H
MOV TH0,#245
MOV TL0,#0
MOV TH1,#(65536-1000)/256
MOV TL1,#(65536-1000)MOD 256
MOV IE,#8aH
CLR C
SETB TR0 ;为ADC0808提供时钟

WAIT: SETB H_ALM
SETB L_ALM
CLR ST
SETB ST
CLR ST ;启动转换
JNB EOC,$
SETB OE
MOV ADC,P1 ;读取AD转换结果
CLR OE
MOV A,ADC

SUBB A,#77 ;判断是否低于下限
JC LALM
MOV A,H_TEMP
MOV R0,ADC
SUBB A,R0 ;判断是否高于上限
JC HALM
CLR TR1
LJMP PROC

LALM: ;低温报警
CLR L_ALM
SETB TR1
CLR FLAG
LJMP PROC

HALM: ;高温报警
CLR H_ALM
SETB TR1
SETB FLAG
LJMP PROC

PROC: MOV A,ADC ;数值转换
MOV B,#100
DIV AB
MOV LED_2,A
MOV A,B
MOV B,#10
DIV AB
MOV LED_1,A
MOV LED_0,B
LCALL DISP
SJMP WAIT

INT_T0: CPL CLOCK ;提供ADC0808时钟
RETI

INT_T1: MOV TH1,#(65536-1000)/256
MOV TL1,#(65536-1000)MOD 256
CPL SOUND
INC TCNTA
MOV A,TCNTA
JB FLAG,I1 ;判断是高温警报还是低温警报
CJNE A,#30,RETUNE ;低温警报声
SJMP I2
I1: CJNE A,#20,RETUNE ;高温警报声
I2: MOV TCNTA,#0
INC TCNTB
MOV A,TCNTB
CJNE A,#25,RETUNE
MOV TCNTA,#0
MOV TCNTB,#0
DELAY2: MOV R5,#20
D2: MOV R6,#20
D3: MOV R7,#250
DJNZ R7,$
DJNZ R6,D3
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END

[[it] 本帖最后由 sweetno2 于 2008-11-5 18:34 编辑 [/it]]
搜索更多相关主题的帖子: 报警器 
2008-11-03 13:14
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
首先,硬件线路是否完全相同?
其次,温度传感器工作区间?

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-03 14:09
sweetno2
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-3
收藏
得分:0 
不太明白你说的什么意思.可以解释下不?

[[it] 本帖最后由 sweetno2 于 2008-11-5 18:33 编辑 [/it]]
2008-11-03 20:53
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
回复 3# 的帖子
这是一个8031/51单片机程序,不是家用电脑80x86汇编语言程序,所以你要么有仿真器,要么得有硬件线路。
看来程序是别人写的,通常应该是通过了。而对方的程序测试的是77~153度之间,即便你完全按照他的电路图实现了硬件电路,他选择的温度感应器件是否满足你要求的温度区间呢?

不是在编译时出错吧?

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-03 21:45
sweetno2
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-3
收藏
得分:0 
我想可能是他的温度感应器的温度区间不适合我要求的。版主能下载附件帮我看看怎么改吗?
谢谢了~~~~
2008-11-03 22:52
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
回复 5# 的帖子
我好象没找到电路图,不知道他用了什么温度感应器。通常一个器件都有自己的线性区间的,超过了自然就不准了。你可以查查相关元器件网站,换成符合你的温度感应器件或者数字传感器.

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-04 00:41
快速回复:总是出错,高手指点指点...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017616 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved