电路设计,软件开发,专业项目团队承接电子产品开发!


ISPRO下载型编程器
火爆销售中

RS232/TTL转换器
全IC串口窃电

RS232/TTL转换线
全IC串口窃电

ByteBlasterMV Cable
CPLD/FPGA并口下载线

ByteBlaster II Cable ISPRO下载型编程器
支持S51/AVR/PIC
超级51开发板套件
前卫实用超值

PC/MCU/CPLD
三合一学习套件

全新万年历方案
AVR单片机开发板
 

Min51单片机仿真机
迷你型

ARM7开发板
仅售260元!
 

RS-232/RS-485双向接口电平转换器  

51单片机升级STM32
火爆销售中
MPLAB-ICD2
火爆销售中
LED51开发板
玩具又名图文显示棒

面板模块/开发板
经济危机明智决择

       

GSM MODEM GSM猫

SMS短信模块 工业级/全自动
火爆销售中

大功率数传电台

高速数传电台

您当前位置:电子技术资料 -> PIC -> 外围驱动 ->

祝您阅读愉快!

ISPRO下载型编程器

MPLAB-ICD2 PIC仿真/烧写器
↑↑本文相关产品介绍↑↑

DS1820的PIC单片机接口程序


类别:技术文章
来源:未知
作者:未知
关键字:DS1820
加入日期:2002-12-3

DS1820的PIC单片机接口程序


  说明:DS1820是美国DALAS公司推出的单线串行数字温度计,测量范围为-50至+125摄氏度,精度为0.5摄氏度。DS1820的三端口分别是地,数据,电源。DS1820遵循严格的单线串行通信协议,每一个DS1820在出厂时都用激光进行了调较,并具有唯一的64位序列号。

PORTA EQU 0X05 ;端口A
PORTB EQU 0X06 ;端口B
PCL EQU 2 ;程序计数器PCL
DCOMMAND EQU 0X0C ;发送命令DCOMMAND
DDATA EQU 0X0D ;发送数据DDATA
COUNT0 EQU 0X0E   ;通用寄存器
COUNT1  EQU 0X0F
COUNT2  EQU 0X10
COUNT3  EQU 0X11
COUNT4  EQU 0X12
COUNT5  EQU 0X13
FLAG   EQU 0X14 ;标志位
TEMP   EQU 0X15 ;由DS1820 测出的温度
;PORTA的RA0 是与DS1820通信的数据线
Reset
movlw b'00000000'
movwf PORTB
tris PORTB
START
call Reset1820
btfss FLAG,5
goto START
call Delay1ms
call Delay1ms
call Delay1ms
call Delay1ms
movlw 0xcc
movwf DCOMMAND
call WR1820
call Delay1ms
movlw 0x44
movwf DCOMMAND
call WR1820
bsf PORTA,0
call Delay1s
call Delay1s
START1
call Reset1820
btfss FLAG,5
goto START1
call Delay1ms
call Delay1ms
call Delay1ms
call Delay1ms
movlw 0xcc
movwf DCOMMAND
call WR1820
movlw 0xbe
movwf DCOMMAND
call WR1820
call Delay1ms
call RD1820
movf TEMP,w
movwf PORTB
call Delay1s
call Delay1s
call Delay1s
clrw
movwf PORTB
goto START
;读取所测量温度的子程序
;测出的温度存放在变量TEMP
RD1820
Clrf TEMP
RD18201
movlw 0x08
movwf COUNT4
RD18202
movlw b'11111110'
tris PORTA
nop
bcf PORTA,0
call Delay15us
movlw b'11111111'
tris PORTA
nop
bcf TEMP,7
btfsc PORTA,0
bsf TEMP,7
rrf TEMP,1
decfsz COUNT4,1
goto RD18202
return
WR1820 ;IN :DCOMMAND
movlw 0x08
movwf COUNT4
movlw b'11111110'
tris PORTA
WR18201
bcf PORTA,0
call Delay15us
nop
btfsc DCOMMAND,0
bsf PORTA,0
rrf DCOMMAND,1
call Delay15us
bsf PORTA,0
decfsz COUNT4,1
goto WR18201
bsf PORTA,0
return
Reset1820
movlw b'11111110'
tris PORTA
bcf PORTA,0
call Delay500us
bsf PORTA,0
movlw b'11111111'
tris PORTA
call Delay15us
call Delay15us
call Delay15us
call Delay15us
bcf FLAG,5
btfss PORTA,0
bsf FLAG,5
return
;以下是延时子程序组
Delay15us
nop ;-nop- Delay 11us
nop ;-call- and -return- Delay 2*2=4us
nop ;total Delay 4+11=15us
nop
nop
nop
nop
nop
nop
nop
nop
return
Delay500us
movlw 0x19 ;0x14 = 20D
movwf COUNT0
Delay500usLoop1
movlw 0x05
movwf COUNT1
Delay500usLoop2 ;100 * 5 = 500 us, but it is 506us in fact.
decfsz COUNT1,1
goto Delay500usLoop2
clrwdt
decfsz COUNT0,1
goto Delay500usLoop1
return
Delay1ms
movlw 0x28 ;0x25 = 40D = 28H
movwf COUNT0
Delay1ms_loop1
movlw 0x05
movwf COUNT1
Delay1ms_loop2 ;40 * 25 = 1000 us = 1ms
clrwdt ;清看门狗
decfsz COUNT1,1
goto Delay1ms_loop2
decfsz COUNT0,1
goto Delay1ms_loop1
return
Delay1s
movlw 0xce ;every time use 4.85ms, 1000/4.85=206.1D=CEH
movwf COUNT2
Delay1s_loop1
movlw 0x05
movwf COUNT3
Delay1s_loop2 ;4.85 ms * 206 = 1 s
call Delay1ms
decfsz COUNT3,1
goto Delay1s_loop2
decfsz COUNT2,1
goto Delay1s_loop1
return
;Delay program end
end


您可能还会关注的相关技术资料:

中国电子网
www.EC66.com
QQ:34740080 EMAIL:iloveaoe@163.com
最佳浏览:1024*768
Copyright (C) 2001-2010 EC66.COM All Rights Reserved
Aoe/帝国 制作维护
粤ICP备18061901号