• 大小: 2.49MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-20
  • 语言: 其他
  • 标签: TM4C  18B20  代码  

资源简介

本人最近在学习TI公司的TM4C123C单片机,使用该单片机测试温度,调试成功,在这里分享给大家!

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include “inc/tm4c123gh6pm.h“
#include “inc/hw_memmap.h“
#include “inc/hw_types.h“
#include “driverlib/pin_map.h“
#include “driverlib/gpio.h“
#include “driverlib/ssi.h“
#include “driverlib/sysctl.h“
#include “driverlib/rom.h“
#include “driverlib/rom_map.h“
#include “utils/uartstdio.h“
#include “driverlib/interrupt.h“
#include “inc/hw_ints.h“
#include “driverlib/uart.h“

#define DS18B20_PORT_base        GPIO_PORTA_base
#define DS18B20_PIN              GPIO_PIN_3
#define DS18B20_1                GPIOPinWrite(DS18B20_PORT_baseDS18B20_PIN DS18B20_PIN)
#define DS18B20_0                GPIOPinWrite(DS18B20_PORT_baseDS18B20_PIN 0)
#define DS18B20_Val              GPIOPinRead (DS18B20_PORT_base DS18B20_PIN)
#define DS18B20_Input            GPIOPinTypeGPIOInput(DS18B20_PORT_base DS18B20_PIN)
#define DS18B20_Output           GPIOPinTypeGPIOOutput(DS18B20_PORT_base DS18B20_PIN)

int fdat=0;
char str[5];

void Delay1ms(unsigned long y)
{
  SysCtlDelay(SysCtlClockGet()/(3000/y));
}

void Delay1us(unsigned long y)
{
   SysCtlDelay(SysCtlClockGet()/(3000000/y));
}

unsigned char DS18B20_Init()
{

    DS18B20_Output;
    DS18B20_1;
    Delay1us(15);
    DS18B20_0;    //将总线拉低480us~960us
    Delay1us(600);
    DS18B20_1;   //然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低
    Delay1us(15);
    DS18B20_Input;
    Delay1us(75);
    if(DS18B20_Val)
     return 0;//初始化失败
    Delay1us(300);
    DS18B20_Output;
    DS18B20_1;
    Delay1us(2);
    return 1;//初始化成功
}

/*******************************************************************************
* 函数名         : Ds18b20WriteByte
* 函数功能     : 向18B20写入一个字节
* 输入           : com
* 输出           : 无
*******************************************************************************/
void DS18B20_WriteByte(unsigned char dat)
{
unsigned long j;
DS18B20_Output;
for(j=8;j>0;j--)
{
DS18B20_0;   //每写入一位数据之前先把总线拉低1us
Delay1us (3);
if(dat&0x01)           //然后写入一个数据,从最低位开始
DS18B20_1;
else
DS18B20_0;
Delay1us (65);           //持续时间最少60us
DS18B20_1; //然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值
Delay1us (2);
dat>>=1;
}
}

/*******************************************************************************
* 函数名         : DS18B20_ReadByte
* 函数功能     : 读取一个字节
* 输入           : com
* 输出           : 无
*******************************************************************************/
unsigned char DS18B20_ReadByte()
{
unsigned char dat=0;
unsigned long j;
for(j=8;j>0;j--)
{
dat >>= 1;
DS18B20_0;//先将总线拉低1us
Delay1us (2);
DS18B20_1;
DS18B20_Input; //然后释放总线
Delay1us (15);//延时等待数据稳定
if (DS18B20_Val)
{
dat |= 0x80;
}
Delay1us (45);
DS18B20_Output;
DS18B20_1;
}
return dat;
}


/*******************************************************************************
* 函数名         : Ds18b20ReadTemp
* 函数功能          : 读取温度
* 输入       

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         646  2016-10-25 21:07  .ccsproject
     文件       26369  2017-02-18 20:39  .cproject
     目录           0  2016-10-27 08:19  .launches\
     文件        4523  2016-11-03 19:35  .launches\ds18b20.launch
     文件         985  2016-10-25 21:07  .project
     目录           0  2016-10-25 21:15  .settings\
     文件          62  2016-10-25 21:01  .settings\org.eclipse.cdt.codan.core.prefs
     文件         123  2016-10-25 21:01  .settings\org.eclipse.cdt.debug.core.prefs
     文件         208  2016-10-25 21:15  .settings\org.eclipse.core.resources.prefs
     目录           0  2017-02-19 12:33  Debug\
     文件          96  2017-02-19 12:35  Debug\ccsObjs.opt
     文件       16454  2017-02-19 12:33  Debug\ds18b20.map
     文件       73452  2017-02-19 12:33  Debug\ds18b20.out
     文件      138509  2017-02-19 12:33  Debug\ds18b20_linkInfo.xml
     文件        4039  2017-02-19 12:35  Debug\makefile
     文件        2511  2017-02-19 12:33  Debug\mian.d
     文件       18912  2017-02-19 12:33  Debug\mian.obj
     文件         248  2017-02-19 12:33  Debug\objects.mk
     文件        2073  2017-02-19 12:35  Debug\sources.mk
     文件        1515  2017-02-19 12:35  Debug\subdir_rules.mk
     文件         737  2017-02-19 12:35  Debug\subdir_vars.mk
     文件         261  2017-02-19 12:33  Debug\tm4c123gh6pm_startup_ccs.d
     文件       10300  2017-02-19 12:33  Debug\tm4c123gh6pm_startup_ccs.obj
     文件     2277266  2016-09-09 21:17  driverlib.lib
     文件        5173  2016-11-03 19:41  mian.c
     目录           0  2016-10-25 21:01  targetConfigs\
     文件         806  2016-10-25 21:01  targetConfigs\readme.txt
     文件        1083  2016-10-25 21:07  targetConfigs\Tiva TM4C123GH6PM.ccxml
     文件        1528  2016-10-25 21:01  tm4c123gh6pm.cmd
     文件       14591  2016-10-25 21:01  tm4c123gh6pm_startup_ccs.c

评论

共有 条评论