哪位会说话的单片机机高手会的?

安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&你现在的位置:& > &
请单片机汇编高手看一下,我程序哪里出问题了,谢谢 用AT89S52P2.2接DS18B20温度传感器,P0接2位数码管,
请单片机汇编高手看一下,我程序哪里出问题了,谢谢 用AT89S52P2.2接DS18B20温度传感器,P0接2位数码管,
2一共8位数据CLR CWR1:
SETB P2,表示DS1820存在
LJMP TSR5TSR4:CLR FLAG1 ,TSS2
MOV A;指定查表启始地址MOV
R0,#4DP11.2
MOV R3,表示DS1820不存在
LJMP TSR7TSR5:MOV R0,#5
DJNZ R3;显示1000次DPLOP: MOV
A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ,#21RE20,41HRRC AMOV C,A_BIT ;取个位数MOVC ATEMPER_L EQU 29H
.2MOV R1;然后拉高数据线NOPNOPNOPMOV R0,#25HTSR2;等待DS18B20回应DJNZ R0,TSR2LJMP TSR4 ,ALCALL DISPLAY;调用数码管显示子程序
AJMP MAININIT_次没完循环DJNZ
R0,DP11 ;4个100次没完循环RET;1MS延时D1MS: MOV R7,#80DJNZ R7,$RETNUMTAB: DB
040H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,00H,10HEND;显示1msSETB
R1,DPLOP ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:
MOV R2; 延时TSR3,B_BIT ;取十位数MOVC A.2
MOV R3,RE20
DJNZ R2,RE01
DJNZ R4,#10
B_BIT;个位在bMOV
DPTR,#NUMTAB ,42HRRC AMOV C.2
MOV P2.2,C
MOV R3,#21
RETREAD_18200: ; 读DS18B20的程序,43HRRC AMOV 29H:MOV R2,#8; 清标志位,#8;数据一共有8位RE01:
SETB P2.6 ;开十位显示ACALL
DJNZ R3;送出个位的7段代码CLR
P2;显示子程序DISPLAY: MOV
A,29H;将29H中的十六进制数转换成10进制
A;送出十位的7段代码CLR
R1,#8RE10:
DJNZ R3,RE10
MOV C,P2,#117TSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间TSR7:SETB P2.2RETGET_TEMPER,TSR1SETB P2,A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820
LCALL DISPLAYLCALL INIT_1820;准备读温度前先复位MOV A,29HMOV C,40H;将28H中的最低位移入CRRC AMOV C: SETB P2.2 LCALL INIT_1820;先复位DS18B20JB FLAG1,#3TSR1: MOV R0,#107DJNZ R0,$DJNZ R1,@A+DPTR ;查十位数的7段代码MOV
P0:JNB P2.2,TSR3,#29H .7 ;开个位显示ACALL
D1MS ;显示1msSETB
RET,A:SETB FLAG1 .2
MOV R3,@A+DPTR ;查个位数的7段代码MOV
P0,A ;十位在aMOV
A_BIT,B ,#250 ;数码管个位数存放内存位置B_BIT
EQU 21H数码管十位数存放内存位置ORG
0000HMAIN:; 这是DS18B20复位初始化子程序SETB P2.2NOPCLR P2,$
DJNZ R2,WR1
SETB P2,从DS18B20中读出两个字节的温度数据
MOV R4,#2 ; 将温度高位和低位从DS18B20中读出
MOV R1; 发出读温度命令LCALL WRITE_1820LCALL READ_18200; 将读出的温度数据保存到35H&#47;36HRET
WRITE_1820; 置标志位:
LCALL GET_TEMPER调用读温度子程序
MOV A;是否检测到DS18B20标志位A_BIT
EQU 20H用于保存读出温度的低8位TEMPER_H EQU 28H用于保存读出温度的高8位FLAG1
html#here" target="_blank">http可以参考一下:///question/:
html#here" target="_blank">http可以参考一下:///question/:
第三步错了,给我加分啊
没有死循环的,你看到读数值会变,就没错了,单步很慢的。计数要到溢出时,TF0才由硬件置1 ,程序转到...
在keil uvision3中选择AT89S52编译时,若在工程中加入启动文件STARTUP,则编译...
end 只代表文本代码的结束,你这样用是不对的,编译器可能会将跳转到end变为跳转到程序初始区,你可...
我有一个程序和你的电路设计不是太一样,大体上的功能差不多,就是我上大学时做的,标注太少程序比较乱。为...
我的单片机是零基础,希望各位高手可以通俗而详细的讲一下,谢谢各位!...51单片机可以很多下载软件 ...
ORG 0000H LJMP MAIN ORG 0030H LJMP LP1 ORG 000BH M...
51单片机汇编语言如何声明局部变量? --用 EQU 伪指令,即可。 51单片机定义或声明一个变量在...
请单片机高手们帮我看下以下流程,如何写程序,我写的程序总是有... 1
求分啊求分啊
你可能感兴趣的内容?Bad Request (Invalid Hostname)

我要回帖

更多关于 单片机的应用 的文章

 

随机推荐