導航:首頁 > 編程語言 > c8051f35024位ad轉換程序

c8051f35024位ad轉換程序

發布時間:2023-10-18 16:23:57

A. 51單片機與AD轉換程序

/*
此程序通過對DAC0832操作,實現D/A轉換。按INT1鍵DAC0832輸出電壓變高,按s3鍵DAC0832電壓變低。
輸出介面是"D/A OUT"
*/
#include<reg51.h>

//////////////////////
sbit le1=P1^0;/*ic1 74hc373使能端*/
sbit dac0832_cs=P3^7;
sbit dac0832_wr=P1^1;
sbit int1_k=P3^3;
sbit s3_k=P3^6;
sbit blight=P0^6;
void s_q00();
void s_q01();
void s_q02();
void s_q03();
void s_q04();
void s_q05();
void s_q06();
void s_q07();

void c_q00();
void c_q01();
void c_q02();
void c_q03();
void c_q04();
void c_q05();
void c_q06();
void c_q07();

//void delay1();
void delayms(unsigned int i);

void delay100us() ;
void initi_lcd();
void initi();
void c_rw();
void s_rw();
void c_e();
void s_e();
void c_rs(void);
void s_rs(void);
void display(unsigned int addr,char a);
void out_74ls164(unsigned char i);

unsigned char q1=0;
unsigned char da_out_74ls164=0,pwm1=0;

void d_to_a(unsigned char dat)//DAC0832寫函數。
{

out_74ls164(dat);
//c_q14(); /*片選*/
dac0832_cs=0;
//c_q13(); /*寫數據*/
//s_q13();
dac0832_wr=0;
dac0832_wr=1;
// s_q14();/*禁止轉換*/
dac0832_cs=1;

}
main()
{
unsigned char dat=0;
initi_lcd();

display(0,'o');
display(1,'u');
display(2,'t');
display(3,'p');
display(4,'u');
display(5,'t');
display(6,':');
display(7,0x30+dat/100);display(8,0x30+dat%100/10);display(9,0x30+dat%10);
while(1)
{

if(int1_k==0) {dat++;display(7,0x30+dat/100);display(8,0x30+dat%100/10);display(9,0x30+dat%10);}
if(s3_k==0) {dat--;display(7,0x30+dat/100);display(8,0x30+dat%100/10);display(9,0x30+dat%10);}
blight=1;
d_to_a(dat);

delayms(60);
}

}

void display(unsigned int addr,char a)
{
s_e();
c_rs();
c_rw();
// P0=0x80+i;
out_74ls164(0x80+addr); /*寫地址*/
c_e();
delay100us();
s_e();
s_rs();
//P0=a;
out_74ls164(a);/*寫數據*/
c_e();
delay100us();
s_e();
}

void delayms(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=100;j>0;j--);
}

void initi_lcd()
{
delayms(10);
c_rw();
s_e();
c_rs();
// P0=0x01;
out_74ls164(0x01);
c_e();
delayms(5);
s_e();
c_rs();
// P0=0x38;
out_74ls164(0x38);

c_e();
delayms(5);
s_e();
//P0=0x0f;
out_74ls164(0x0f);
c_e();
delayms(5);
s_e();
// P0=0x04;
out_74ls164(0x04);
c_e();
delayms(5);
s_e();

}

void out_74ls164(unsigned char i)
{
unsigned char j,i_tem;
// s_q27();
for(j=0;j<8;j++)
{
i_tem=i<<j;
if(i_tem&0x80)s_q01();/*74ls164數據*/
else c_q01();
c_q00();/*74ls164時鍾*/
s_q00();
}

}
void s_rs(){s_q05();}
void c_rs(){c_q05();}
void s_rw(){s_q06();}
void c_rw(){c_q06();}
void s_e(){s_q07();}
void c_e(){c_q07();}

void delay100us() { unsigned int i=2; for(;i>0;i--); }

///////////////////////////////////////////////////////
//////////////////////////////////////////////////
/*74hc373擴展介面函數:s表示置1,c表示置0,q1表示ic1 74hc373 ,
q2表示ic2 74hc373 ,僅接著的數字表示相應輸出Q的序號 */

void s_q00(){q1=q1|0x01; P0=q1; le1=1; le1=0; }
void s_q01(){q1=q1|0x02; P0=q1; le1=1; le1=0; }
void s_q02(){q1=q1|0x04; P0=q1; le1=1; le1=0; }
//void s_q03(){q1=q1|0x08; P0=q1; le1=1; le1=0; }
void s_q04(){q1=q1|0x10; P0=q1; le1=1; le1=0; }
void s_q05(){q1=q1|0x20; P0=q1; le1=1; le1=0; }
void s_q06(){q1=q1|0x40; P0=q1; le1=1; le1=0; }
void s_q07(){q1=q1|0x80; P0=q1; le1=1; le1=0; }

void c_q00(){q1=q1&(~0x01); P0=q1; le1=1; le1=0;}
void c_q01(){q1=q1&(~0x02); P0=q1; le1=1; le1=0;}
void c_q02(){q1=q1&(~0x04); P0=q1; le1=1; le1=0;}
//void c_q03(){q1=q1&(~0x08); P0=q1; le1=1; le1=0;}
void c_q04(){q1=q1&(~0x10); P0=q1; le1=1; le1=0;}
void c_q05(){q1=q1&(~0x20); P0=q1; le1=1; le1=0;}
void c_q06(){q1=q1&(~0x40); P0=q1; le1=1; le1=0;}
void c_q07(){q1=q1&(~0x80); P0=q1; le1=1; le1=0;}

一塊實驗板的例子,DA轉換(DAC0832),自己詳細分析一下就可以了

B. 求51單片機控制AD轉換及串口數據發送的程序

AD採集到0-5V電壓信號轉換為數值信號,經過單片機處理
通過串口發送給電腦,電腦用串口助手

這個問題不是很慢解決啊,網上沒有現成的程序的
需要解決說明編寫的啊

可以交流

C. 單片機AD轉換用的這段程序意思是什麼

ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch ;//開始轉換

這是用STC單片機內部A/D轉換電路進行A/D轉換時,要給A/D控制寄存器ADC_CONTR寫啟動轉換命令,ADC_CONTR是ADC控制寄存器,其中的每一位的作用見下圖,而這行語句前面肯定要有定義每一位狀態的語句,或用#define宏定義了各位的值。

閱讀全文

與c8051f35024位ad轉換程序相關的資料

熱點內容
java將數字轉換成字母 瀏覽:854
c盤中的哪些是系統文件夾 瀏覽:668
分布式服務如何跨庫統計數據 瀏覽:829
力控轉發數據客戶端模式如何建立 瀏覽:200
怎麼樣讓自己的網站不被別人看到 瀏覽:711
編程擴展效果如何 瀏覽:335
榮耀暢玩手環同步qq 瀏覽:475
怎麼向sql中添加資料庫 瀏覽:596
錄歌失敗重啟app什麼意思 瀏覽:522
壓縮文件包怎麼在微信發送 瀏覽:432
mysql資料庫怎麼插入時間值 瀏覽:191
微信視頻不能轉發朋友圈 瀏覽:596
影視後期的app有哪些 瀏覽:956
電子保單數據出錯什麼意思 瀏覽:368
如何以文件下載音樂 瀏覽:438
計算機網路章節練習 瀏覽:999
單片機的外部中斷程序 瀏覽:48
表格批量更名找不到指定文件 瀏覽:869
js的elseif 瀏覽:584
3dmaxvray視頻教程 瀏覽:905

友情鏈接