久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機驅動ADS1115的程序
[打印本頁]
作者:
maizimingdou
時間:
2018-5-24 10:12
標題:
單片機驅動ADS1115的程序
#include <reg52.h>
#include <intrins.h>
sbit SCL=P1^0; //SCL
sbit SDA=P1^1; //SDA
sbit led0 = P1^2;
sbit led1 = P1^3;
unsigned char Initdata[4]={0};
code unsigned char seg7code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //不帶小數點的共陽數碼管段碼
code unsigned char seg7codeB[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff}; //帶小數點的共陽數碼管段碼
unsigned int date;
unsigned char cnt;
//******************延時子程序 *******************************
void delay(unsigned char i)
{
for(i;i>0;i--);
}
void delay1ms(unsigned char t)
{
unsigned char i;
unsigned char j;
for(i=124;i>0;i--);
for(j=0;j<t;j++);
}
/****************************開始ADC通信*************************/
void StartADcom()
{
SDA =0;
SCL=1;
delay(100);
SDA =1;
delay(20);
SDA =0;
SCL=0;
delay(10);
}
/***********************************停止ADC通信**************************************/
void StopADcom()
{
SDA=0;
delay(10);
SCL=1;
delay(20);
SDA=1;
delay(10);
}
/********************************單字節I2C傳輸**************************************/
void Send_Byte(unsigned char byte)
{
unsigned char i;
for(i=0;i<8;i++)
{
if((byte<<i)&0x80)
SDA=1;
else
SDA=0;
delay(5);
SCL=1;
delay(10);
SCL=0;
delay(10);
}
delay(5);
SDA=1;
delay(5);
SCL=1;
delay(10);
SCL=0;
delay(10);
}
/*************************讀取一個字節*****************************/
unsigned char Read_Byte()
{
unsigned char temp=0;
unsigned char i;
for(i=0;i<8;i++)
{
temp=temp<<1; //shift left to receive next bit
SCL=0; //set clock high
delay(10);
SCL=1;
_nop_();
delay(5);
if(SDA==1) //check if Data=high
temp|=0x01; //yes - set bit high
_nop_();
delay(10);
}
SCL=0;
delay(5);
SDA=0;
delay(5);
SCL=1;
delay(20);
SCL=0;
delay(5);
SDA=1;
return temp;
}
/**************************配置ADC轉換芯片*************************************/
void Confige1115(unsigned char channel_x)
{
unsigned char i=0;
unsigned char a_channel;
switch(channel_x)
{
case 1:
a_channel=0x42;
break;
case 2:
a_channel=0x52;
break;
case 3:
a_channel=0x62;
break;
case 4:
a_channel=0x72;
break;
default:
break;
}
Initdata[0] =0x90;
Initdata[1] =0x01;
Initdata[2]=a_channel;
Initdata[3] =0x83;
SCL=1;
StartADcom();
for(i=0;i<4;i++)
{
Send_Byte(Initdata[i]);
delay(20);
}
StopADcom();
}
/********指向轉換結果寄存器**************************/
void Pointregister(void)
{
unsigned char i=0;
Initdata[0] =0x90;
Initdata[1] =0x00;
SCL=1;
StartADcom();
for(i=0;i<2;i++)
{
Send_Byte(Initdata[i]);
delay(20);
}
StopADcom();
delay(10);
}
/*****************讀取ADC轉換結果*******************/
unsigned int Read1115(void)
{
unsigned char ResultL,ResultH;
unsigned int Result;
Initdata[0] =0x91;
SCL=1;
StartADcom();
delay(10);
Send_Byte(Initdata[0]);
delay(20);
ResultH=Read_Byte();
delay(10);
ResultL=Read_Byte();
StopADcom();
Result=ResultH*256+ResultL;
return Result;
}
/*****ADC模擬量采集轉化為數字量*********/
unsigned int Ad_1115(unsigned char channel_Ad)
{
unsigned int adc_value;
Confige1115(channel_Ad);
delay1ms(1);
Pointregister();
delay(10);
adc_value=Read1115();
return adc_value;
}
//********************顯示函數****************
void display()
{
P2=0xfe; //P1.0=0,選通第一位
P0=seg7codeB[date/10000]; //十位數,查表,輸出
delay1ms(1);
P0=0xff; //消隱
P2=0xfd; //P1.1=0,選通第二位,個位數
P0=seg7code[date%10000/1000];
delay1ms(1);
P0=0xff; //消隱
P2=0xfb; //P1.3=0,選通第三位,小數點第一位
P0=seg7code[date%1000/100];
delay1ms(1);
P0=0xff; //消隱
P2=0xf7; //P1.3=0,選通第四位,小數點第二位
P0=seg7code[date%100/10];
delay1ms(1);
P0=0xff; //消隱
}
void Timer1Init(void)
{
TMOD &= 0x0F;
TMOD |= 0x10;
TL1 = 0x00;
TH1 = 0xff;
TF1 = 0;
TR1 = 1;
}
//**************************** //主程序
main()
{
Timer1Init();
EA = 1;
ET1 = 1;
while(1)
{
//date=Ad_1115(1) * 1.2;
display();
if(date>40000)
{
led0 = 1;
led1 = 0;
}
else if(date>35000)
{
led0 = 0;
delay(50);
led0 = 1;
led1 = 0;
}
else if(date>15000)
{
led0 = 0;
led1 = 1;
}
else
{
led0 = 0;
delay(1);
led0 = 1;
led1 = 1;
}
}
}
void Timer1_isr(void) interrupt 3
{
ET1 = 0;
TH0=0x00;
TL0=0xff;
cnt = cnt + 1;
if(cnt == 1)
{
cnt = 0;
date=Ad_1115(1) * 1.2;
//display();
}
ET1 = 1;
}
作者:
軍志
時間:
2018-7-20 16:12
能不能發個原理圖出來啊
作者:
bifxv
時間:
2019-9-30 16:01
同上,確實只有代碼看著暈。
作者:
孫琪123
時間:
2019-10-16 15:33
我把這個程序進行了編譯,那示波器看這個SCL和SDA,兩條線都統一被拉高了,沒有數據變化呀
作者:
七彩的夢想
時間:
2025-5-24 00:07
測試了一下,好像不能用
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91社区在线观看
|
久草精品在线
|
日韩二三区
|
国产成人精品亚洲日本在线观看
|
久草福利
|
av黄色在线
|
久久久久久99
|
日韩一区二区在线视频
|
大象视频一区二区
|
日韩一区二区成人
|
国产成人精品一区二
|
免费看黄色国产
|
成人影院在线观看
|
午夜免费福利影院
|
国产精品99精品久久免费
|
亚洲第一色av
|
欧美国产中文字幕
|
午夜视频在线观看网址
|
日韩精品成人
|
午夜免费精品视频
|
www日
|
91偷拍精品一区二区三区
|
三级黄色片在线观看
|
99re视频这里只有精品
|
精品国产一区二区三区在线观看
|
美女国内精品自产拍在线播放
|
欧美日韩高清免费
|
一区二区三区四区视频
|
久久国产精品首页
|
久久久久久久久久爱
|
国产免费一级片
|
国产激情自拍视频
|
国产精品久久国产精品
|
欧美一级做性受免费大片免费
|
亚洲欧美日本在线
|
成人午夜激情
|
成人伊人
|
欧美专区日韩专区
|
精品国产欧美一区二区三区不卡
|
天堂综合网
|
精品在线一区二区
|