欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機數控電源 tlc5615+tlc1543程序
[打印本頁]
作者:
19960601
時間:
2017-3-21 19:18
標題:
51單片機數控電源 tlc5615+tlc1543程序
數控電源,51單片機+tlc5615+tlc1543
源程序:
/*最大電流為6A,最大電壓為40V*/
#include<reg52.h>
sbit sclk5615=P1^0; /*dac tlc5615串行時鐘*/
sbit din5615=P1^1; /*dac tlc5615串行數據輸入*/
sbit cs5615=P1^2; /*dac tlc5615片選*/
sbit dout5615=P1^3; /*dac tlc5615串行數據輸出*/
sbit eoc1543=P3^0;
sbit sclk1543=P3^1;
sbit addr1543=P3^2;
sbit dout1543=P3^3;
sbit cs1543=P3^4;
void Delayms(unsigned int t) //延時毫秒函數:
{
unsigned int x,y;
for(x=t;x>0;x--)
for(y=120;y>0;y--);
}
void TLC1543_init(void)
{
cs1543=1;
sclk1543=0;
}
unsigned int ReadADC_TLC1543(unsigned char ch)
{
unsigned char temp;
unsigned int adc_value=0;
ch<<=4;
cs1543=0;
for(temp=0;temp<10;temp++) // 將判斷語句改為 temp<12
{ // 程序可移殖至 TLC2543.
adc_value<<=1;
ch<<=1;
addr1543=CY;
if(dout1543)
adc_value+=1;
sclk1543=1;
Delayms(1);
sclk1543=0;
}
cs1543=1;
return adc_value;
}
void WriteTLC5615(unsigned int wdata) //寫TLC5615數據函數:
{
unsigned char i;
cs5615=0; //片選使能
wdata<<=2; //將數據左移兩位,補兩位擴展位,組成12位數據寫入
for(i=0;i<12;i++) //寫入12位數據
{
sclk5615=0;
din5615=(wdata&0x0800)?1:0; //取出最高位(第11位)寫入
sclk5615=1; //上升沿送數據
wdata<<=1; //下一位移到最高位
}
cs5615=1; //片選禁止
}
float get_average(unsigned char ch,unsigned char time)
{
unsigned char i;
float v;
v=ReadADC_TLC1543(ch);
for(i=0;i<time;i++)
{
v+=v;
Delayms(5);
}
return v/time;
}
/*unsigned char KEY_Scan()
{
unsigned char temp=0;
unsigned char com=0x55,com1=0,com2=0;
P2=0xf0;
if(P2!=0xf0)
{
com1=P2;
P2=0x0f;
com2=P2;
}
P2=0xf0;
while(P2!=0xf0);
temp=com1|com2;
switch(temp)
{
case 0xee:com=0;break;
case 0xed:com=1;break;
case 0xeb:com=2;break;
case 0xe7:com=3;break;
case 0xde:com=4;break;
case 0xdd:com=5;break;
case 0xdb:com=6;break;
case 0xd7:com=7;break;
case 0xbe:com=8;break;
case 0xbd:com=9;break;
case 0xbb:com=10;break;
case 0xb7:com=11;break;
case 0x7e:com=12;break;
case 0x7d:com=13;break;
case 0x7b:com=14;break;
case 0x77:com=15;break;
}
return(com);
}*/
void main(void)
{
float dat1,dat2,volt,current;
TLC1543_init();
while(1)
{
WriteTLC5615(100);/*向dac寫入數據*/
dat1=get_average(0,10);/*通道0測電壓*/
dat2=get_average(1,10);/*通道1測電流*/
volt=dat1*8;/*最大電壓為40v,分壓為5v,分壓倍數為8倍*/
current=dat2*6/5;/*最大電流6A,采樣電阻為1mΩ,采樣電阻上面最大電壓為6mv,差分放大100倍,即最大電壓為6v,分壓電阻分壓后變成5v*/
…………余下代碼請下載附件…………
復制代碼
0.png
(43.5 KB, 下載次數: 66)
下載附件
2017-3-21 19:47 上傳
下載:
電源.zip
(30.14 KB, 下載次數: 62)
2017-3-21 19:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
963373449
時間:
2018-3-23 19:54
大神,有proteus仿真圖嗎?多謝
作者:
jiangming1313
時間:
2018-6-16 20:42
有沒有電路圖
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1