資源簡介
此為ADS1115的全部代碼,包括一個主函數,一個ADS1115的函數,一個12864的函數

代碼片段和文件信息
/*
?*?ads1115.c
?*
?*??Created?on:?2019年7月19日
?*??????Author:?Administrator
?*/
#include“ads1115.h“
/*************************
?*?1?delay
?*************************/
void?delay(void)
{
????uchar?i;
????for(i=0;i<5;i++)
????????_NOP();?//延時一個機器周期
}
/******************************
?*?2?start?i2c?啟動
?****************************/
void?start()
{
????SCL_H;
????SDA_H;
????delay();
????SDA_L;
????delay();
????SCL_L;
}
/********************************
?*?3??結束?I2c
?********************************/
void?stop()??//////////和例程不太一樣!
{
????SCL_L;
????SDA_L;
????delay();
????SCL_H;
????delay();
????SDA_H;
}
/******************
?*?4?i2c主機應答操作
?*******************/
void?mack(void)
{
????SDA_L;
????_NOP();
????_NOP();
????SCL_H;
????delay();
????SCL_L;
????_NOP();
????_NOP();
????SDA_H;
????delay();
}
/**********************
?*?5?i2c?主機無應答操作
?*******************/
void?mnack()
{
????SDA_H;
????_NOP();
????_NOP();
????SCL_H;
????delay();
????SCL_L;
????_NOP();
????_NOP();
????SDA_L;
????delay();
}
/*************
?*?6
?*/
void?ack()
{
????uchar?i=0;
????SDA_in;
????SCL_H;
????delay();
????while((P3IN&BIT5)&&(i<250))
????????i++;
????SDA_out;
????SCL_L;
????delay();
}
/************************
?*?7??寫1
?*************************/
void?write1()
{
????SDA_H;
????delay();
????SCL_H;
????delay();
????SCL_L;
????delay();
}
/********************8
?*?8??寫0
?*/
void?write0()
{
????SDA_L;
????delay();
????SCL_H;
????delay();
????SCL_L;
????delay();
}
/*************
?*?9??寫字節
?*/
void?write1byte(uchar?data)
{
????uchar?i;
????for(i=8;i>0;i--)
????{
????????if(data&0x80)
????????????write1();
????????else
????????????write0();
????????data<<=1;
????}
????SDA_H;
????_NOP();
}
/**************
?*???讀字節
?*/
uchar?read1byte(void)
{
?uchar??rdata?=?0x00i;
????uchar?flag;
?????for(i?=?0;i?8;i++)
?????{
??????SDA_H;
??????SCL_H;
??????SDA_in;
??????flag?=?SDA_val;
??????rdata?<<=?1;
??????if(flag)
??????????rdata?|=?0x01;
???????SDA_out;
????????SCL_L;
?????}
return?rdata;
}
/*
?*?1115寫寄存器
?*/
void?Confige1115(uchar?channel)
{
????uchar?a_channel;
????switch(channel)
????{
????case?0:
????????a_channel=0xC0;???//單通道輸入
????????break;
????case?1:
??????????a_channel=0xD0;
??????????break;
????case?2:
??????????a_channel=0xE0;
??????????break;
????case?3:
??????????a_channel=0xF0;
??????????break;
????case?4:
????????a_channel=0x84;????//差分輸入?的指令
????default?:
??????????break;
????}
????start();
????write1byte(address);
????ack();
????write1byte(config);
????ack();
????write1byte(a_channel);
????ack();
????write1byte(Lsiwei);
????ack();
????stop();
}
/*
?*?讀取數值
?*/
uint?read1115(void)
{
??uchar?result_lresult_h;
??uint?result;
??start();
??write1byte(address);
??ack();
???write1byte(conversion);
??ack();
??stop();
??start();
??write1byte(address+1);
???ack();
??result_h=re
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1823??2019-08-03?19:44??LCD12864.c
?????文件????????519??2019-08-20?11:17??LCD12864.h
?????文件???????1108??2019-08-20?16:05??main.c
?????文件???????3492??2019-08-20?16:05??ads1115.c
?????文件???????1111??2019-08-20?11:10??ads1115.h
-----------?---------??----------?-----??----
?????????????????8053????????????????????5
- 上一篇:無人駕駛車輛模型預測控制-龔建偉 書中代碼
- 下一篇:微信第三方支付視頻教學
評論
共有 條評論