欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
TLC1543數模轉換驅動程序(C語言版)
[打印本頁]
作者:
hongniu
時間:
2015-6-24 21:18
標題:
TLC1543數模轉換驅動程序(C語言版)
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit TLC1543_CLK=P3^3; //TLC1543硬件連接
sbit TLC1543_DIN = P3^4;
sbit TLC1543_DOUT= P3^5;
sbit TLC1543_CS = P3^7;
sbit TLC1543_EOC = P3^2; //這里沒用到中斷
//*****************************************************************
//數碼管顯示子程序,將一個數num顯示到某一位weixuan數碼管
//*****************************************************************
void numdis(uchar num,uchar weixuan,uchar brightness )
{
while(brightness--)P0=num*0x10+weixuan*0x01;
P0=0xFF;
}
//*****************************************************************
//將讀到的溫度顯示在六個數碼管上,只顯示整數部分,即顯示精度為一度
//*****************************************************************
void display(uint num)
{
numdis(num/10000, 4,20);
numdis(num%10000/1000, 3,20);
numdis(num%1000/100, 2,20);
numdis(num%100/10, 1,20);
numdis(num%10, 0,20);
}
uint read1543(uchar channel) //從TLC1543讀取采樣值,形參channel是采樣的通道號
{
uint data ad;
uint data i;
uchar data al=0,ah=0;
TLC1543_CLK = 0;
TLC1543_CS = 0;
for (i=0;i<4;i++) //把通道號打入1543
{
TLC1543_DIN=(channel&0x0f);
TLC1543_CLK=1;
TLC1543_CLK=0;
channel<<=1;
}
for (i=0;i<6;i++) //填充6個TLC1543_CLK
{
TLC1543_CLK=1;
TLC1543_CLK=0;
}
TLC1543_CS=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
TLC1543_CS=0; //等待AD轉換
_nop_();_nop_();_nop_();
for (i=0;i<2;i++) //取D9,D8
{
TLC1543_DOUT=1;
TLC1543_CLK=1;
ah<<=1;
if(TLC1543_DOUT) ah|=0x01;
TLC1543_CLK=0;
}
for (i=0;i<8;i++) //取D7--D0
{
TLC1543_DOUT=1;
TLC1543_CLK=1;
al<<=1;
if (TLC1543_DOUT) al|=0x01;
TLC1543_CLK=0;
}
TLC1543_CS=1;
ad=(uint)ah;
ad<<=8;
ad|=(uint)al; //得到AD值
return (ad);
}
uint volt_convert(uchar channel)
{
uint temp_volt[4];
ulong sum_volt=0;
uchar i;
for(i=0;i<4;i++)
{
temp_volt[i] = read1543(channel);
sum_volt += temp_volt[i];
}
return (((sum_volt/4)*500)/1023);
}
main()
{
while(1)
{
display(volt_convert(2));
}
}
復制代碼
作者:
1160440028
時間:
2018-7-23 09:23
收到,很好的資料,學習了
作者:
zuoshen
時間:
2019-8-7 20:33
學習了
作者:
隨心1110
時間:
2019-8-7 23:45
優秀,前一段時間找了好久,不過很強
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1