標題: cc2530 溫度傳感器 [打印本頁]
作者: 99067559 時間: 2018-1-8 09:21
標題: cc2530 溫度傳感器
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit fm=P2^3;
sbit DS=P2^2; //define interface 定義連接
uint temp; // variable of temperature 溫度變化
uchar flag1; // sign of the result positive or negative 表明結果的正確與否
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,};
unsigned char code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,
0x78,0x00,0x10};
void delay(uint count) //delay
{
uint i;
while(count)
{
i=200;
while(i>0)
i--;
count--;
}
}
void dsreset(void) //send reset and initialization command 重置初始數據
{
uint i;
DS=0;
i=103;
while(i>0)i--;
DS=1;
i=4;
while(i>0)i--;
}
bit tmpreadbit(void) //read a bit 讀點
{
uint i;
bit dat;
DS=0;i++; //i++ for delay
DS=1;i++;i++;
dat=DS;
i=8;while(i>0)i--;
return (dat);
}
uchar tmpread(void) //read a byte date 讀一個字節數據
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tmpreadbit();
dat=(j<<7)|(dat>>1); //讀出的數據最低位在最前面,這樣剛好一個字節在DAT里
}
return(dat);
}
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //write 1
{
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
else
{
DS=0; //write 0
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
}
}
void tmpchange(void) //DS18B20 begin change
{
dsreset();
delay(1);
tmpwritebyte(0xcc); // address all drivers on bus
tmpwritebyte(0x44); // initiates a single temperature conversion
}
uint tmp() //get the temperature
{
float tt;
uchar a,b;
dsreset();
delay(1);
tmpwritebyte(0xcc);
tmpwritebyte(0xbe);
a=tmpread();
b=tmpread();
temp=b;
temp<<=8; //two byte compose a int variable
temp=temp|a;
tt=temp*0.0625;
temp=tt*10+0.5;
return temp;
}
void readrom() //read the serial
{
uchar sn1,sn2;
dsreset();
delay(1);
tmpwritebyte(0x33);
sn1=tmpread();
sn2=tmpread();
}
void delay10ms() //delay
{
uchar a,b;
for(a=10;a>0;a--)
for(b=60;b>0;b--);
}
void display(uint temp) //顯示程序
{
uchar A0,A1,A2,A2t,A3,ser;
ser=temp/10;
SBUF=ser;
A0=temp/1000;
A1=(temp/100)%10;
A2t=temp%100;
A2=A2t/10;
A3=A2t%10;
P1=0x01;
P0=table[A0];//顯示百位
delay(1);
P1=0X02;
P0=table[A1]; //顯示十位
delay(1);
P1=0X04;
P0=table1[A2]; //顯示個位
delay(1);
P1=0X08;
P0=table[A3]; //顯示十分位
delay(1);
}
void main()
{
uc
har a;
do
{
tmpchange();
// delay(200);
for(a=10;a>0;a--)
{
display(tmp());
if(temp>300|temp<270)
fm=0;
else
fm=1;
}
}while(1);
}
窗體頂端
窗體底端
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
超碰av在线
|
91精品国产91久久久久久丝袜
|
精品国产乱码久久久久久88av
|
国产精品免费在线
|
成人在线影视
|
永久精品|
日日日操
|
国产在线一级片
|
国产精品不卡
|
99热热精品
|
久久综合狠狠综合久久综合88
|
欧美久久精品一级黑人c片
91免费在线视频
|
一级黄色录像片子
|
青青草社区
|
天天干夜夜操
|
精品欧美黑人一区二区三区
|
成人网视频|
一区二区三区回区在观看免费视频
|
91精品国产一区二区三区
|
亚洲一区二区电影在线观看
|
免费视频一区
|
精品亚洲一区二区
|
久久久综合
|
91免费电影
|
日本黄色的视频
|
久久机热
|
精品熟人一区二区三区四区
|
久草热线|
亚洲一级毛片
|
久久精品国产免费
|
黄视频网站在线
|
香蕉视频黄色
|
久久一二|
97色在线视频
|
另类一区
|
精品国产一区二区国模嫣然
|
91精品一区二区三区久久久久
|
夜夜操天天操
|
91久久久久久久久
|
一级做a爰片性色毛片16美国
|
国产成人99久久亚洲综合精品
|