文档详情

DS18B20汇编程序(完整版).doc

发布:2017-05-06约1.02万字共10页下载文档
文本预览下载声明
DS18B20汇编程序 ;实验目的:熟悉DS18B20的使用 ;六位数码管显示温度结果,其中整数部分2位,小数部分4位 ;每次按下RB0键后进行一次温度转换。 ;硬件要求:把DS18B20插在18B20插座上 ; 拨码开关S10第1位置ON,其他位置OFF ; 拨码开关S5、S6全部置ON,其他拨码开关全部置OFF ;*****************以下是暂存器的定义***************************** #INCLUDEP16F877A.INC #DEFINE DQ PORTA,0 ;18B20数据口 __CONFIG _DEBUG_OFF_CP_ALL_WRT_HALF_CPD_ON_LVP_OFF_BODEN_OFF_PWRTE_ON_WDT_OFF_HS_OSC CBLOCK 20H DQ_DELAY1 DQ_DELAY2 TEMP TEMP1 TEMP2 ;存放采样到的温度值 TEMP3 COUNT COUNT1 ENDC TMR0_VALUE EQU 0AH ;寄存器初值为6,预分频比1:4,中断一次时间为4*(256-6)=1000us DQ_DELAY_VALUE1 EQU 0FAH DQ_DELAY_VALUE2 EQU 4H ;**********************以下是程序的开始************************ ORG 00H NOP GOTO MAIN ;入口地址 ORG 04H RETFIE ;在中断入口出放置一条中断返回指令,防止干扰产生中断 TABLE ADDWF PCL,1 RETLW 0C0H ;0的编码(公阳极数码管) RETLW 0F9H ;1的编码 RETLW 0A4H ;2的编码 RETLW 0B0H ;3的编码 RETLW 99H ;4的编码 RETLW 92H ;5的编码 RETLW 082H ;6 RETLW 0F8H ;7 RETLW 080H ;8 RETLW 090H ;9 ;***************************主程序******************************* MAIN CLRF PORTA CLRF PORTB BANKSEL TRISA CLRF TRISA ;A口所有先设置为输出 CLRF TRISD MOVLW 01H MOVWF TRISB ;B0口为输入,其他为输出 MOVLW 06H MOVWF ADCON1 ;关闭所有A/D口 MOVLW 01H MOVWF OPTION_REG ;分频比1:4,定时器,内部时钟源 BCF STATUS,RP0 CLRF TEMP CLRF TEMP1 CLRF TEMP2 ;清零临时寄存器 MOVLW 8H MOVWF COUNT MOVLW 38H MOVWF FSR CLRF INDF INCF FSR,1 DECFSZ COUNT,1 GOTO $-3 ;****************************循环处理部分************************ ;先启动18B20温度转换程序,在判断温度转换是否完成(需750us) ;未完成则调用显示子程序,直到完成温度转换 ;完成后读取温度值 ;送LCD显示 LOOP
显示全部
相似文档