⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1

📁 RM51单片机实验板配套实验例程库
💻
📖 第 1 页 / 共 5 页
字号:
057F 202020 CHINESE6:  Db "--05.11.19制作       "                                        ;℃
            ;
            ;********************************************************************************
            ;
            ;
            ;**********************************************************
            ;以下温度测量子程序区
            ;
            ;**********************************************************
            ;       RESET DS18B20
            ;**********************************************************
0582 D293   INITDS1820:	SETB	TEMPDIN			;
0584 00     		NOP				;
0585 00     		NOP				;
0586 C293   		CLR	TEMPDIN			;
0588 7EA0   		MOV	R6, #0A0H		; DELAY 480us
058A DEFE   		DJNZ	R6, $
058C 7EA0                   MOV	R6, #0A0H
058E DEFE                   DJNZ	R6, $			;
0590 D293   		SETB	TEMPDIN			;
0592 7E32   		MOV	R6, #32H		; DELAY 70us
0594 DEFE   		DJNZ	R6, $			;
0596 7E3C                   MOV     R6,#3CH
0598 A293   LOOP1820:       MOV	C, TEMPDIN		;
059A 4009   		JC	INITDS1820OUT		;
059C DEFA                   DJNZ    R6,LOOP1820
059E 7E64                   MOV	R6, #064H		; DELAY 200us
05A0 DEFE   		DJNZ	R6, $			;
05A2 80DE   		SJMP	INITDS1820		;
05A4 22     		RET				;
            ;
05A5 D293   INITDS1820OUT:	SETB	TEMPDIN			;
05A7 22     		RET				;
            ;
            ;
            ;**********************************************************
            ;       读DS18B20的程序, 从DS18B20中读出一个字节的数据
            ;**********************************************************
05A8 7F08   READDS1820:     MOV	R7, #08H		;
05AA D293   		SETB	TEMPDIN			;
05AC 00     		NOP				;
05AD 00     		NOP				;


D:\温度时钟器示范程序\25.ASM                                    
 
                                                                    页    18
                                                                    11-20-05
                                                                    09:53:56
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

05AE C293   READDS1820LOOP:	CLR	TEMPDIN			;
05B0 00     		NOP				;
05B1 00     		NOP				;
05B2 00     		NOP				;
05B3 D293   		SETB 	TEMPDIN			;
05B5 7E07   		MOV    	R6, #07H		; DELAY 15us
05B7 DEFE          		DJNZ    R6, $			;
05B9 A293   	        MOV     C, TEMPDIN		;
05BB 7E3C   		MOV	R6, #3CH		; DELAY 120us
05BD DEFE   		DJNZ    R6, $			;
05BF 13     		RRC 	A			;
05C0 D293                   SETB 	TEMPDIN			;
05C2 DFEA   		DJNZ    R7, READDS1820LOOP	;
05C4 7E3C   		MOV	R6, #3CH		; DELAY 120us
05C6 DEFE   		DJNZ	R6, $			;
05C8 22     		RET				;
            ;
            ;
            ;**********************************************************
            ;       写DS18B20的程序, 从DS18B20中写一个字节的数据
            ;**********************************************************
05C9 7F08   WRITEDS1820:    MOV	R7, #08H		;
05CB D293   		SETB	TEMPDIN			;
05CD 00     		NOP				;
05CE 00     		NOP				;
05CF C293   WRITEDS1820LOP:	CLR	TEMPDIN			;
05D1 7E07   		MOV    	R6, #07H		; DELAY 15us
05D3 DEFE          		DJNZ    R6, $			;
05D5 13     	        RRC 	A			;
05D6 9293   	        MOV	TEMPDIN, C		;
05D8 7E34   	        MOV	R6, #34H		; DELAY 104us
05DA DEFE   	        DJNZ	R6, $			;
05DC D293   	        SETB	TEMPDIN			;
05DE DFEF   	        DJNZ    R7, WRITEDS1820LOP	;
05E0 22     		RET				;
            ;
            ;
            ;**********************************************************
            ;       READ TEMP
            ;**********************************************************
05E1 120582 READTEMP:	LCALL	INITDS1820		;
05E4 74CC   		MOV	A, #0CCH		;
05E6 1205C9 		LCALL	WRITEDS1820		; SKIP ROM
05E9 7E34   		MOV	R6, #34H		; DELAY 104us
05EB DEFE   		DJNZ	R6, $			;
05ED 7444   		MOV	A, #44H			;
05EF 1205C9 		LCALL	WRITEDS1820		; START CONVERSION
05F2 7E34   		MOV	R6, #34H		; DELAY 104us


D:\温度时钟器示范程序\25.ASM                                    
 
                                                                    页    19
                                                                    11-20-05
                                                                    09:53:56
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

05F4 DEFE   		DJNZ	R6, $		;
05F6 22     		RET				;
            ;
05F7 120582 READTEMP1:	LCALL	INITDS1820		;
05FA 74CC   		MOV	A, #0CCH		;
05FC 1205C9 		LCALL	WRITEDS1820		; SKIP ROM
05FF 7E34   		MOV	R6, #34H		; DELAY 104us
0601 DEFE   		DJNZ	R6, $			;
0603 74BE   		MOV	A, #0BEH		;
0605 1205C9 		LCALL	WRITEDS1820		; SCRATCHPAD
0608 7E34   		MOV	R6, #34H		; DELAY 104us
060A DEFE   		DJNZ	R6, $			;
060C 7D09   		MOV	R5, #09H		;
060E 7830   		MOV	R0, #TEMPHEAD		;
0610 75F000                 MOV     B,#00H
0613 1205A8 READTEMP2:	LCALL	READDS1820		;
0616 F6     		MOV	@R0, A			;
0617 08     		INC	R0			;
0618 120710 READTEMP21:     LCALL	CRC8CAL			;
061B DDF6   		DJNZ	R5, READTEMP2		;
061D E5F0   		MOV	A, B			;
061F 7008   		JNZ	READTEMPOUT		;
0621 E530   		MOV	A, TEMPHEAD + 0		;
0623 F526   		MOV	TEMPL, A		;
0625 E531   		MOV	A, TEMPHEAD + 1		;
0627 F527   		MOV	TEMPH, A		;
0629 22     READTEMPOUT:	RET				;
            ;
            ;
            ;**********************************************************
            ;	处理温度 BCD 码子程序
            ;**********************************************************
062A E527   CONVTEMP:	MOV	A, TEMPH		;
062C 5480   		ANL	A, #80H			;
062E 6014   		JZ	TEMPC1			;
0630 C3     		CLR	C			;
0631 E526   		MOV	A, TEMPL		;
0633 F4     		CPL	A			;
0634 2401   		ADD	A, #01H			;
0636 F526   		MOV	TEMPL, A		;
0638 E527   		MOV	A, TEMPH		; -
063A F4     		CPL	A			;
063B 3400   		ADDC	A, #00H			;
063D F527   		MOV	TEMPH, A		; TEMPHC HI = 符号位
063F 752810 		MOV	TEMPHC, #10H		;
0642 8003   		SJMP	TEMPC11			;
            ;
0644 75280F TEMPC1:		MOV	TEMPHC, #0FH		; +


D:\温度时钟器示范程序\25.ASM                                    
 
                                                                    页    20
                                                                    11-20-05
                                                                    09:53:56
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0647 E528   TEMPC11:        MOV     A,TEMPHC
0649 C4                     SWAP    A
064A F528                   MOV     TEMPHC,A
064C E526                   MOV	A, TEMPL		;
064E 540F   		ANL	A, #0FH			; 乘 0.0625
0650 900688 		MOV	DPTR, #TEMPDOTTAB	;
0653 93     		MOVC	A, @A + DPTR		;
0654 F529   		MOV	TEMPLC, A		; TEMPLC LOW = 小数部分 BCD
            ;
0656 E526   		MOV	A, TEMPL		; 整数部分
0658 54F0   		ANL	A, #0F0H		;
065A C4     		SWAP	A			;
065B F526   		MOV	TEMPL, A		;
065D E527   		MOV	A, TEMPH		;
065F 540F   		ANL	A, #0FH			;
0661 C4     		SWAP	A			;
0662 4526   		ORL	A, TEMPL		;
0664 120702 		LCALL	HEX2BCD1		;
0667 F526   		MOV	TEMPL, A		;
0669 54F0   		ANL	A, #0F0H		;
066B C4     		SWAP	A			;
066C 4528   		ORL	A, TEMPHC		; TEMPHC LOW = 十位数 BCD
066E F528   		MOV	TEMPHC, A		;
0670 E526   		MOV	A, TEMPL		;
0672 540F   		ANL	A, #0FH			;
0674 C4     		SWAP	A			; TEMPLC HI = 个位数 BCD
0675 4529   		ORL	A, TEMPLC		;
0677 F529   		MOV	TEMPLC, A		;
0679 EF     		MOV	A, R7			;
067A 600B   		JZ	TEMPC12			;
067C 540F   		ANL	A, #0FH			;
067E C4     		SWAP	A			;
067F FF     		MOV	R7, A			;
0680 E528   		MOV	A, TEMPHC		; TEMPHC HI = 百位数 BCD
0682 540F   		ANL	A, #0FH			;
0684 4F     		ORL	A, R7			;
0685 F528   		MOV	TEMPHC, A		;
0687 22     TEMPC12:	RET				;
            ;
            ;**********************************************************
            ;	小数部分码表
            ;**********************************************************
0688 000101 
068B 020303 
068E 040405 
0691 06     TEMPDOTTAB:	DB	00H, 01H, 01H, 02H, 03H, 03H, 04H, 04H, 05H, 06H
            ;
0692 060708 


D:\温度时钟器示范程序\25.ASM                                    
 
                                                                    页    21
                                                                    11-20-05
                                                                    09:53:56
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0695 080909 		DB	06H, 07H, 08H, 08H, 09H, 09H
            ;
0698 22     		RET
            ;
            TEMPP:
0699 7490           MOV  A,#90H	       ;第二行左第一个字开始
069B 12044B 	LCALL WRITE_COM
069E 90053F 	MOV  DPTR,#CHINESE3     ;16*16点阵“温度-----”
06A1 1204D7 	LCALL WRITE_HZ
06A4 22             RET
            ;
            ;**********************************************************
            ;	温度值涮新子程序
            ;**********************************************************
            ;
06A5 E529   DISPTEMP:       MOV	A, TEMPLC		;
06A7 540F   		ANL	A, #0FH			;
06A9 F566   		MOV	66H, A		        ;
06AB E529   		MOV	A, TEMPLC		;
06AD C4     		SWAP	A			;
06AE 540F   		ANL	A, #0FH			;
06B0 F564   		MOV	64H, A		        ;
06B2 E528   		MOV	A, TEMPHC		;
06B4 540F   		ANL	A, #0FH			;
06B6 F563   		MOV	63H, A		        ;
06B8 E528   		MOV	A, TEMPHC		;
06BA C4     		SWAP	A			;
06BB 540F   		ANL	A, #0FH			;
06BD F562   		MOV	62H, A		        ;
06BF E528   		MOV	A, TEMPHC		;
06C1 54F0   		ANL	A, #0F0H		;
06C3 B41002 		CJNE	A, #010H, DISPBCD0	;
06C6 8010   		SJMP	DISPBCD2		;
            ;
06C8 E528   DISPBCD0:	MOV	A, TEMPHC		;
06CA 540F   		ANL	A, #0FH			;
            
06CC 700A   		JNZ	DISPBCD2		; 十位数是零
06CE E528   		MOV	A, TEMPHC		;
06D0 C4     		SWAP	A			;
06D1 540F   		ANL	A, #0FH			;
06D3 75620F 		MOV	62H, #0FH	        ; 符号位不显示
06D6 F563   		MOV	63H, A		        ; 十位数显示符号
            DISPBCD2:					;
06D8 75600A                 MOV     60H,#0AH                ;  :
06DB 75610F                 MOV     61H,#0FH                ;  空
06DE 756511                 MOV     65H,#11H                ;  小数点.
06E1 75670F                 MOV     67H,#0FH                ;  空


D:\温度时钟器示范程序\25.ASM                                    
 
                                                                    页    22
                                                                    11-20-05
                                                                    09:53:56
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            
            ;
            ;以下将60H-67H温度信息写入液晶LCD
06E4 C0D0   TEMPUP: PUSH  PSW
06E6 75D008         MOV   PSW,#08H
06E9 7492           MOV  A,#92H	       ;第二行左第3个字开始
06EB 12044B 	LCALL WRITE_COM
06EE 7960           MOV   R1,#60H           ;将60-67H时间数据查出字码写入LCD
06F0 9004F9         MOV   DPTR,#TABLE1
06F3 7A08           MOV   R2,#08H          ; 查8次
06F5 7400           MOV   A,#00H
06F7 E7     TEMPLOP:MOV   A,@R1            ;
06F8 93             MOVC  A,@A+DPTR
06F9 120484         LCALL WRITE_DAT
06FC 09             INC   R1
06FD DAF8           DJNZ  R2,TEMPLOP       ;
06FF D0D0           POP   PSW
0701 22             RET
            ;
            ;**********************************************************
            ;	单字节 16 进制转 BCD
            ;**********************************************************
0702 75F064 HEX2BCD1:	MOV	B, #064H		; 16 进制 -> BCD
0705 84     		DIV	AB			; B = A % 100
0706 FF     		MOV	R7, A			; R7 = 百位数
0707 740A   		MOV	A, #0AH			;
0709 C5F0   		XCH	A, B			;
070B 84     		DIV	AB			; B = A % B
070C C4     		SWAP	A			;
070D 45F0   		ORL	A, B			;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -