void delayms(int t)//51單片機常用延時子程序 毫秒級延時 { int i; //聲明變量i--內循環變量 int j; //聲明變量j--外循環變量 for(j=0;j<t;j++) { for (i=0;i<150;i++);//循環加法計算,消耗CPU時間,達到延時的目的 }
}
uchar ADC(void) //adc 子程序, 本程序針對常用并行8位AD芯片ADC0804 { uchar ADCRes; //聲明一個uchar(無符號單字節變量,用于保存AD轉換結果) P0=0xFF;//拉高P0數據總線,為讀做準備(51單片機中,讀取IO端口時,必須先拉高對應端口)
WR=0;//把ADC0804的WR腳拉低 delayms(1);
WR=1;//把ADC0804的WR腳拉高
delayms(1);//延時1毫秒 RD=0;//把ADC0804的WR腳拉低 delayms(1);//延時1毫秒 ADCRes=P0;//讀取AD轉換結果到ADCRes變量 delayms(1);//延時1毫秒 RD=1;//拉高ADC0804 RD腳
return ADCRes;//返回AD轉換結果 }
void jkc_Dac(void) //dac 子程序,輸出階梯波,本程序采用常用8位DAC芯片--DAC0832 {
uchar i; P2=0XFF;//拉高P2 DAC_CS=1;//拉高DAC0832片選 DAC_WR=1;//接高DAC0832寫
for (i=0;i<25;i++)//25次循環,每次電壓增加10/255*Vref(參考電壓,這里是5伏)伏,形成階梯電壓 {
P0=i*10; DAC_CS=0; DAC_WR=0; _nop_(); _nop_(); DAC_WR=1; delayms(1);
}
}
完整程序請看附件
分享簡潔51單片機常用子程序.rar
(91.22 KB, 下載次數: 266)
2011-6-15 01:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|