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

📄 温度采集4.asm

📁 完全调好的18B20温度显示的程序
💻 ASM
字号:
                ORG 0000H
                lJMP MAIN
                ORG 0030H
/*****************************主机复位子程序*********************/
RESET:          NOP
L0:             CLR P1.7
                MOV R2,#200
L1:             NOP
                DJNZ R2,L1
                SETB P1.7
                MOV R2,#30
L4:             DJNZ R2,L4
                CLR C
                ORL C,P1.7
                JC L3
                MOV R6,#80
L5:             ORL C,P1.7
                JC L3
                DJNZ R6,L5
                SJMP L0
L3:             MOV R2,#250
L2:             DJNZ R2,L2
                RET
/*****************************写一个字节*************************/
WRITE:          MOV R3,#8
WRI1:           SETB P1.7
                MOV R4,#8
                RRC A
                CLR P1.7
WRI2:           DJNZ R4,WRI2
                MOV P1.7,C
                MOV R4,#20
WRI3:           DJNZ R4,WRI3
                DJNZ R3,WRI1
                SETB P1.7
                RET
/**************************读一个字节**************************/
READ:           MOV R6,#8
RE1:            CLR P1.7
                MOV R4,#6
                NOP
                SETB P1.7
RE2:            DJNZ R4,RE2
                MOV C,P1.7
                RRC A
                MOV R5,#30
RE3:            DJNZ R5,RE3
                DJNZ R6,RE1
                MOV 3DH,A
                SETB P1.7
                RET           
/**************************主程序****************************/
MAIN:           MOV 31H,#1
                MOV 30H,#0
                MOV 37H,#0
                MOV 38H,#0
MAIN1:          CLR RS1
                CLR RS0
                LCALL RESET
                MOV A,#0CCH
                LCALL WRITE
                MOV A,#44H
                LCALL WRITE
                MOV R7,#10
                
/********************调用显示延时**********************/
K1:             MOV 3AH,30H       ;显示整数的十位
                MOV 39H,#0FEH
                LCALL DISPLAY
                LCALL DEL_1MS
                MOV 3AH,31H       ;显示整数的个位
                MOV 39H,#0FDH
                MOV A,39H
                MOV DPTR,#7FFFH
                MOVX @DPTR,A   ;送位码
                MOV DPTR,#TAB
                MOV A,3AH
                MOVC A,@A+DPTR
                ORL A,#80H
                MOV DPTR,#0BFFFH
                MOVX @DPTR,A             ;送段码
                LCALL DEL_1MS
                MOV 3AH,37H       ;显示小数的十位
                MOV 39H,#0FBH
                
                LCALL DISPLAY
                LCALL DEL_1MS
                MOV 3AH,38H       ;显示小数的个位
                MOV 39H,#0F7H
                LCALL DISPLAY
                LCALL DEL_1MS
                DJNZ R7,K1
K00:            LCALL RESET
                MOV A,#0CCH
                LCALL WRITE
                MOV A,#0BEH
                LCALL WRITE
                LCALL READ
                MOV A,3DH
                MOV 30H,A               ;读到低8位 处理整数位时用  
                MOV 20H,A               ;处理小数位时用
                LCALL READ
                MOV A,3DH               ;读到高8位
                MOV 31H,A               ;处理整数位时用
/**********************处理整数位***************************/  
ZHENGSHU:       ANL 30H,#0F0H
                ANL 31H,#0FH
                MOV A,30H
                ORL A,31H               ;得到整数位
                SWAP A
                MOV B,#10
                DIV AB
                MOV 30H,A               ;商入30H  得整数的十位   
                MOV 31H,B               ;余数入31H  整数的个位
/********************处理小数位***************************/
                NOP
                NOP
                NOP
                MOV 33H,#00H
                MOV 34H,#00H
                MOV 35H,#00H
                MOV 36H,#00H
                MOV A,20H
                JNB ACC.0,K0
                ADD A,#06H
                MOV 33H,A
K0:             MOV A,20H
                JNB ACC.1,K2
                MOV A,33H
                ADD A,#06H
                MOV 34H,A
K2:             MOV A,20H
                JNB ACC.2,K3
                MOV A,34H
                ADD A,#13H
                MOV 35H,A                
K3:             MOV A,20H
                JNB ACC.3,K4            
                MOV A,35H
                ADD A,#25H
                DA A
K4:             MOV 36H,A        ;小数位和存在36H中
                MOV A,36H
                MOV B,#10
                DIV AB
                MOV 37H,A       ;商存于37H中 小数的十位
                MOV 38H,B       ;余数存于38H中  小数的个位
                MOV 3AH,30H       ;显示整数的十位
                MOV 39H,#0FEH
                LCALL DISPLAY
                LCALL DEL_1MS
                MOV 3AH,31H       ;显示整数的个位
                MOV 39H,#0FDH
                MOV A,39H
                MOV DPTR,#7FFFH
                MOVX @DPTR,A   ;送位码
                MOV DPTR,#TAB
                MOV A,3AH
                MOVC A,@A+DPTR
                ORL A,#80H
                MOV DPTR,#0BFFFH
                MOVX @DPTR,A             ;送段码
                LCALL DEL_1MS
                MOV 3AH,37H       ;显示小数的十位
                MOV A,3AH
                MOV 39H,#0FBH
                LCALL DISPLAY
                LCALL DEL_1MS
                MOV 3AH,38H       ;显示小数的个位
                MOV 39H,#0F7H
                LCALL DISPLAY
                LCALL DEL_1MS
                LJMP MAIN1
/**********************显示子程序**************************/ 
DISPLAY:        MOV A,39H
                MOV DPTR,#7FFFH
                MOVX @DPTR,A   ;送位码
                MOV DPTR,#TAB
                MOV A,3AH
                MOVC A,@A+DPTR
JUMP:           MOV DPTR,#0BFFFH
                MOVX @DPTR,A             ;送段码
                RET
DEL_1MS:        MOV 40H,#02H
DE1:            MOV 41H,#50H
DE2:            DJNZ 41H,DE2
                DJNZ 40H,DE1
                RET                   
TAB:            DB 3FH,06H,5BH,4FH
                DB 66H,6DH,7DH,07H
                DB 7FH,6FH
                END
                                                                                   

⌨️ 快捷键说明

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