arm力天电子 lpc2148 基于DS18b20的温度采集实验程序详解

本文详细介绍了使用LPC2148微控制器进行DS18B20温度传感器的温度采集实验。通过发送特定命令,如跳过ROM地址和启动温度转换,实现对DS18B20的控制。转换完成后,读取内部RAM的9字节数据获取温度值。
摘要由CSDN通过智能技术生成
1#include <NXP/iolpc2148.h>
2#include <stdio.h>
3#include "uart.h"

//系统时钟
4#define Fosc        12000000UL        //晶振时钟 【Hz】
5#define Fcclk       (Fosc * 5)         //系统频率,必须为Fosc的整数倍(1~32),且<=60MHZ
6#define Fcco     (Fcclk * 4)       //CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz~320MHz
7#define Fpclk       (Fcclk / 4) * 4   // VPB时钟频率,只能为(Fcclk / 4)的1 ~ 4倍

//接口声明
8#define DS_OUT() IO0DIR_bit.P0_19 = 1   //设置为输出
9#define DS_IN() IO0DIR_bit.P0_19 = 0    //设置为输入
10#define DS_L() IO0CLR_bit.P0_19 = 1     //端口底电平
11#define DS_H() IO0SET_bit.P0_19 = 1     //端口高电平
12#define DS_R() IO0PIN_bit.P0_19         //读入端口数据

//函数声明
13void PLL_Init(void);
14void Tmp_Change(void);
15void Delayn(unsigned long n);
16void DelaynUs(unsigned int n);
17float tmp(void);
18void DS_Reset(void);

//主函数
19void main(void)
20{
21  char buf[100];
22  float a;
 23 PLL_Init();   //初始化系统时钟
24  InitUart0();  //初始化串口
  
25  PINSEL1_bit.P0_19 = 0; //初始化端口 
 26 DS_IN();
  
  //定时器1初始化,产生定时基准
27  T1IR = 0xFF;                 // reset match and capture event interrupts
28  T1TC = 0;                      // Clear timer counter
29  T1PR = 0;                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值