给我一份基于单片机与PC机RS232串口通信的温度测试系统的论文,要的不啊

如题所述

第1个回答  2013-04-12
DQ BIT P3.7 ; 1 wire line
swpH equ 0d2H
swpL equ 0ffH
WDLSB DATA 30H ;
WDMSB DATA 31H ;
;***************************************************************
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TMR0 ; Timer0 isr

;********************************************************
; Timer0 Interrupt Service Routine
TMR0: MOV TH0,#swpH
MOV TL0,#swpL
JB 21H,DSL
MOV P0,42H
ORL P0,#00100000B
SJMP EXIT
DSL:
MOV P0,43H
ORL P0,#00010000B
EXIT:
CPL 21H
RETI

; Main program
MAIN:
TOINIT:
CLR EA
MOV TMOD,#01H
MOV TH0,#swpH
MOV TL0,#swpL
SETB EA
SETB ET0
SETB TR0

;***********************************************************
;
MOV R2,#2
MOV R0,#42H ;
OVER:
MOV @R0,#00H;
INC R0
DJNZ R2,OVER

LOOP:
LCALL DSWD ;
SJMP LOOP

;**********************************************************
; Read a temperature from the DS18B20
DSWD:
LCALL RSTSNR ; Init of the DS18B20
JNB F0,KEND
MOV R0,#0CCH
LCALL SEND_BYTE
MOV R0,#44H
LCALL SEND_BYTE ; Send a Convert Command
SETB EA
MOV 48H,#1
SS2:
MOV 49H,#255
SS1:
MOV 4AH,#255
SS0:
DJNZ 4AH,SS0
DJNZ 49H,SS1
DJNZ 48H,SS2
CLR EA
LCALL RSTSNR
JNB F0,KEND
MOV R0,#0CCH
LCALL SEND_BYTE
MOV R0,#0BEH
LCALL SEND_BYTE ; Send Read Scratchpad command
LCALL READ_BYTE ; Read the low byte from scratchpad
MOV WDLSB,A ; Save the temperature (low byte)
LCALL READ_BYTE ; Read the high byte from scratchpad
MOV WDMSB,A ; Save the temperature (high byte)
LCALL TRANS12
KEND:
SETB EA
RET
;**********************************************************
;
TRANS12:
MOV A,30H
ANL A,#0F0H
MOV 3AH,A
MOV A,31H
ANL A,#0FH
ORL A,3AH
SWAP A
MOV B,#10
DIV AB
;MOV 42H,A
MOV 43H,B ;
MOV b,#10
DIV ab
MOV 42H,B
MOV 41H,A
RET
;*************************************************
; Send a byte to the 1 wire line
SEND_BYTE: ;
MOV A,R0
MOV R5,#8
SEN3: CLR C
RRC A
JC SEN1
LCALL WRITE_0
SJMP SEN2
SEN1: LCALL WRITE_1
SEN2: DJNZ R5,SEN3 ;
RET
;*************************************************
; Read a byte from the 1 wire line
READ_BYTE:
MOV R5,#8
READ1: LCALL READ
RRC A
DJNZ R5,READ1 ;
MOV R0,A
RET
;*************************************************
; Reset 1 wire line
RSTSNR: SETB DQ
NOP
NOP
CLR DQ
MOV R6,#250 ;
DJNZ R6,$
MOV R6,#50
DJNZ R6,$
SETB DQ ;
MOV R6,#15
DJNZ R6,$
CALL CHCK ;
MOV R6,#60
DJNZ R6,$
SETB DQ
RET

;*************************************************
; low level subroutines
CHCK: MOV C,DQ
JC RST0
SETB F0 ;
SJMP CHCK0
RST0: CLR F0 ;
CHCK0: RET

;*************************************************
WRITE_0:
CLR DQ
MOV R6,#30
DJNZ R6,$
SETB DQ
RET
;*************************************************
WRITE_1:
CLR DQ
NOP
NOP
NOP
NOP
NOP
SETB DQ
MOV R6,#30
DJNZ R6,$
RET

;*************************************************
READ: SETB DQ ;
NOP
NOP
CLR DQ
NOP
NOP
SETB DQ ;
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,DQ
MOV R6,#23
DJNZ R6,$
RET

;**********************************************
DELAY10: MOV R4,#20
D2: MOV R5,#30
DJNZ R5,$
DJNZ R4,D2
RET

end
第2个回答  2013-04-12

    你这个题目,不管知网也好!

    万方学术论坛也好!

    都有很多类似的,甚至百度文库都有不少的!   

==================论文写作方法===========================


    论文网上没有免费的,与其花人民币,还不如自己写,万一碰到骗人的,就不上算了。

    写作论文的简单方法,首先大概确定自己的选题,然后在网上查找几份类似的文章,通读一遍,对这方面的内容有个大概的了解!

    参照论文的格式,列出提纲,补充内容,实在不会,把这几份论文综合一下,从每篇论文上复制一部分,组成一篇新的文章!

    然后把按自己的语言把每一部分换下句式或词,经过换词不换意的办法处理后,网上就查不到了,祝你顺利完成论文!

本回答被提问者和网友采纳
相似回答
大家正在搜