单片机课设
参考文献
[1] 张毅坤,陈善久.单片微型计算机原理及应用[M].西安:西安电子科技大学出版社,2002.
[2] 张友德,赵志英,徐时亮.单片微机原理应用与实验[M].上海:复旦大学出版社,2000.
[3] 蔡美琴,张为民,沈新群,张荣娟.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,1992.
单片机课设
附录1 整体电路图
单片机课设
附录2 源程序
TEMPH EQU 35H TEMPL EQU 34H
DQ EQU P1.2 ;18B20 BIT_COUNT EQU 30H TIMER EQU 31H TEN EQU 32H DATA_IN EQU 20H DATA_OUT EQU 21H TIMER1 EQU 33H DAT BIT P1.0 CLK BIT P1.1 CS BIT P1.3 ORG 0000H AJMP START ORG 0003H LJMP INT0 ORG 0030H MAIN:
MOV SP,#60H MOV P1,#11011101 START:
LCALL GET_TEMPER
LCALL CHULI_1 LCALL DELAY LCALL DELAY
SETB P1.4 CLR P1.5 AJMP START
;-------------------------------------------- GET_TEMPER: SETB DQ
LCALL INIT_1820 ;36H-37H-38H存有温度值 ;报警灯灭 ;报警铃停 ;复位
单片机课设
MOV A,0CCH ;跳过ROM LCALL WRITE_1820 MOV A,#44H LCALL WRITE_1820 LCALL DELAY
LCALL INIT_1820 ;复位 MOV A,0CCH LCALL WRITE_1820
MOV A,#0BEH LCALL WRITE_1820
LCALL READ_1820 ;29H(低),28H(高) RET
;---------------------------------------- INT0: PUSH PSW PUSH ACC MOV DATA_OUT,#15H LCALL SEND LCALL RECEIVE SETB CS
MOV R2,DATA_IN POP ACC POP PSW RETI
;-------------发射子程------------------ SEND:
MOV BIT_COUNT,#8 CLR CS
CALL LONG_DELAY SEND_LOOP:
MOV C,DATA_OUT.7 MOV DAT,C SETB CLK MOV A,DATA_OUT
;跳过ROM ;读取温度值
单片机课设
RL A
MOV DATA_OUT,A CALL SHOUT_DELAY CLR CLK
CALL SHOUT_DELAY
DJNZ BIT_COUNT,SEND_LOOP CLR DAT RET
;--------------------------------------- RECEIVE:
MOV BIT_COUNT,#8 SETB DAT
CALL LONG_DELAY RECEIVE_LOOP: SETB CLK
CALL SHOUT_DELAY MOV A,DATA_IN RL A
MOV DATA_IN,A MOV C,DAT MOV DATA_IN.0,C CLR CLK
CALL SHOUT_DELAY
DJNZ BIT_COUNT,RECEIVE_LOOP CLR DAT RET
;------------------------------------- LONG_DELAY:
MOV TIMER,#25 ;50US DELAY_LOOP:
DJNZ TIMER,DELAY_LOOP RET
SHOUT_DELAY: MOV TIMER,#4 ;8US
单片机课设
DELAY_LOOP1:
DJNZ TIMER,DELAY_LOOP1 RET
;-------------处理的数据从36H 起始------------- CHULI_1: MOV 36H,#00H MOV 37H,#00H MOV 38H,#00H MOV C,28H.7 JC FUSHU
MOV TEMPH,28H MOV TEMPL,29H INC TEMPH S1: MOV A,36H ADD A,#25H DA A MOV 36H,A MOV A,37H ADDC A,#06H DA A MOV 37H,A MOV A,38H ADDC A,#00H DA A MOV 38H,A DJNZ TEMPL,S1 DJNZ TEMPH,S1 LCALL DISPLAY_1 RET FUSHU:
MOV TEMPH,28H MOV TEMPL,29H
XRL TEMPL,#0FFH ;高位 ;低位 ;修正 ;变为原码
单片机课设
XRL TEMPH,#0FFH MOV A,TEMPL ADD A,#01H MOV TEMPL,A MOV A,TEMPH ADDC A,#00H MOV TEMPH,A
INC TEMPH S2: MOV A,36H ADD A,#25H DA A MOV 36H,A MOV A,37H ADDC A,#06H DA A MOV 37H,A MOV A,38H ADDC A,#00H DA A MOV 38H,A DJNZ TEMPL,S2 DJNZ TEMPH,S2 LCALL DISPLAY_2 RET
;----------------------复位子程序---------------- INIT_1820: SETB DQ NOP CLR DQ ;主机发出延时480微秒的复位低脉冲
MOV R1,#3
TSR1: MOV R0,#80
修正 ;