void delayms(int t)//51單片機常用延時子程序 毫秒級延時
{
int i; //聲明變量i--內(nèi)循環(huán)變量
int j; //聲明變量j--外循環(huán)變量
for(j=0;j<t;j++)
{
for (i=0;i<150;i++);//循環(huán)加法計算,消耗CPU時間,達到延時的目的
}
}
uchar ADC(void) //adc 子程序, 本程序針對常用并行8位AD芯片ADC0804
{
uchar ADCRes; //聲明一個uchar(無符號單字節(jié)變量,用于保存AD轉(zhuǎn)換結(jié)果)
P0=0xFF;//拉高P0數(shù)據(jù)總線,為讀做準備(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轉(zhuǎn)換結(jié)果到ADCRes變量
delayms(1);//延時1毫秒
RD=1;//拉高ADC0804 RD腳
return ADCRes;//返回AD轉(zhuǎn)換結(jié)果
}
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次循環(huán),每次電壓增加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, 下載次數(shù): 266)
很好啊,學習一下
| 歡迎光臨 (http://www.denmoz.com/bbs/) | Powered by Discuz! X3.1 |